<?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=Alfredo.rodriguez</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=Alfredo.rodriguez"/>
	<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php/Especial:Contribuciones/Alfredo.rodriguez"/>
	<updated>2026-04-30T06:10:57Z</updated>
	<subtitle>Contribuciones del usuario</subtitle>
	<generator>MediaWiki 1.33.0</generator>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_de_vFlow&amp;diff=17298</id>
		<title>Manual de operación de vFlow</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_de_vFlow&amp;diff=17298"/>
		<updated>2026-03-27T06:58:45Z</updated>

		<summary type="html">&lt;p&gt;Alfredo.rodriguez: /* Puesta en marcha de nodo vFlow */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Descripción general vFlow ==&lt;br /&gt;
&lt;br /&gt;
vFlow es un módulo de conexión a sistemas de inteligencia artifical para sistemas de comunicaciones unificadas, ya sean sistemas corporativos o contact center&lt;br /&gt;
Gracias a vFlow, las plataformas de UC dispondrán de una solución para comunicarse con sistemas IA utilizando un mismo mecanismo independientemente de la solución de inteligencia artificial que se utilice&lt;br /&gt;
&lt;br /&gt;
Para proporcionar el servicio de manera completa, vFlow (en concreto el orquestador) se conectará a sistemas de inteligencia artificial (LLM) que permitirán desarrollar los agentes definidos en los orquestadores&lt;br /&gt;
&lt;br /&gt;
'''Conceptos:'''&lt;br /&gt;
* Plataforma&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Plataforma de comunicaciones unificadas; por ejemplo Omnisuite o VIVAit Call&lt;br /&gt;
* Orquestador&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Plataforma agéntica de IA (por ejemplo Flowise)&lt;br /&gt;
* vFlowProxy&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Módulo VIVAit que conecta multiples plataformas con múltiples orquestadores&lt;br /&gt;
* LLM&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Modelo de lenguaje natural que usará un orquestadores&lt;br /&gt;
* Agente&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Cada uno de los flujos creados en vFlow; corresponde a un par plataforma/agentflow de orquestador&lt;br /&gt;
* Servicio&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Cada elemento de negocio en la plataforma de CU (por ejemplo VDN)&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Arquitectura Vflow - v2.jpg|1000px|center|Arquitecura de vFlow]]&lt;br /&gt;
&lt;br /&gt;
Los '''módulos principales''' de vFlow son:&lt;br /&gt;
* vFlowProxy: Recibe las conexiones de los sistemas de comunicaciones unificadas, y conecta con los orquestadores de Inteligencia Artificial de manera segura y adaptada al tipo de servicio; el acceso a vFlow Proxy desde las plataformas se realizará mediante:&lt;br /&gt;
* Programa cliente: Se utiliza en el sistema de comunicaciones unificadas (actualmente VIVAit Call y Omnsisuite) para invocar a vFlow&lt;br /&gt;
* API REST: Alternativa al programa cliente, vFlowProxy proporciona una API REST que facilita que cualquier plataforma pueda comunicarse mediante un procedimiento estándar y documentado&lt;br /&gt;
* Portal de administración vFlow: Permite visualizar las interaciones realizadas y configurar el sistema&lt;br /&gt;
* Orquestador de IA: Herramienta de Inteligencia Artificial que permitirá la creación de aplicaciones personalizadas (agentes)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Otros elementos''' relevantes serán:&lt;br /&gt;
* Base de datos vFlow:&lt;br /&gt;
:* Almacena información sobre sesiones y transacciones realizadas&lt;br /&gt;
:* Almacena información de configuración sobre vFlow&lt;br /&gt;
:* Gestiona el RAG de las inteligencias artificiales a usar&lt;br /&gt;
&lt;br /&gt;
== Puesta en marcha de nodo vFlow ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Existe un nodo vFlow en los repositorios habituales proporcionados&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para '''dar de alta nodo vflow en un cliente''' hay que:&lt;br /&gt;
* Configurar IP (por defecto la maquina va configurada por DHCP)&lt;br /&gt;
* Adaptar el firewall, para ello REVISAR el fichero &amp;lt;code&amp;gt;/etc/firewall/vars.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
* Certificados validos en apache&lt;br /&gt;
* REVISAR ficheros &amp;lt;code&amp;gt;/etc/apache2/sites-enabled/flowise.conf&amp;lt;/code&amp;gt; y &amp;lt;code&amp;gt;/etc/apache2/sites-enabled/vFlow.conf&amp;lt;/code&amp;gt; la variable &amp;lt;code&amp;gt;ServerName&amp;lt;/code&amp;gt; (nombre valido de la maquina)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Accesos vFlow''' (se debe cambiar tras instalación):&lt;br /&gt;
* Usuario ssh y de SO por defecto es sat y clave a proporcionar.&lt;br /&gt;
* Para el portal de flowise las credenciales son usuario: vfloadmin@vflow.com clave: A proporcionar&lt;br /&gt;
* Para el portal de vflow las credenciales son usaurio sat y clave a proporcionar.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Accesos BBDD vFlow'''&lt;br /&gt;
* Para acceder a la base de datos desde el workbenck solo desde localhost (o tunel):&lt;br /&gt;
* BBDD Vlfow (admin)  vflowadmin // clave a proporcionar&lt;br /&gt;
* BBDD Vlfow (no_admin)  vflow //  clave a proporcionar&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Portal orquestador Flowise'''&lt;br /&gt;
&lt;br /&gt;
ubicado en https://host.cliente.xx:4567&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #fef6e7; border: 1px solid #fbd68a; padding: 1em; border-radius: 4px;width: fit-content; margin-left: 50px&amp;quot;&amp;gt;&lt;br /&gt;
'''⚠️ ATENCION !!'''&lt;br /&gt;
'''Los cambios en tablas de configuración de BBDD de vFlow (orquestadores, plataformas, agentes) requieren reinicio del servicio vFlowProxy'''&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', 'Monaco', 'Courier New', monospace;&amp;quot;&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service status&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service stop&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service start&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El fichero de configuración del demonio &amp;lt;code&amp;gt;vFlowProxy&amp;lt;/code&amp;gt; se encuentra en &amp;lt;code&amp;gt;/etc/MDtel/vFlowProxy.conf&amp;lt;/code&amp;gt;, si bien este fichero de configuración no se modificará habitualmente (los parámetros generales de configuración de vFlowProxy se encuentran en la BBDD de vFlow)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Relevante para poder '''poner en marcha un loader''':&lt;br /&gt;
* Subir el fichero inicial previamente a la carpeta destino según entorno (p. ej &amp;lt;code&amp;gt;/var/www/html/storages/production&amp;lt;/code&amp;gt;&lt;br /&gt;
* Tipo de loader --&amp;gt; API&lt;br /&gt;
* Método --&amp;gt; GET&lt;br /&gt;
* URL --&amp;gt; (ejemplo: http://172.25.129.242/storages/test/fichero-pru.txt)&lt;br /&gt;
::* Existirán URL &amp;quot;production&amp;quot;, &amp;quot;staging&amp;quot; y &amp;quot;test&amp;quot;&lt;br /&gt;
* Text Splitter: Recursive&lt;br /&gt;
* Qdrant --&amp;gt; localhost:6333 (requiere crear credencial)&lt;br /&gt;
&amp;lt;div style=&amp;quot;display:none;&amp;quot;&amp;gt;* Record Manager --&amp;gt; SQLite}}&amp;lt;/div&amp;gt;&lt;br /&gt;
* Record Manager --&amp;gt; MySQL (requiere crear credencial)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Se adjunta imagen a modo de ejemplo&lt;br /&gt;
[[Archivo:Alta loader vflow.png|1000px|miniaturadeimagen|centro|alta loader vFlow|link=]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gestión en vFlow ==&lt;br /&gt;
vFlow prevé la existencia de tres entornos que permita hacer una gestión segura de agentes y RAG:&lt;br /&gt;
&lt;br /&gt;
* Producción&lt;br /&gt;
* Preproducción&lt;br /&gt;
* Pruebas&lt;br /&gt;
&lt;br /&gt;
Para cada agente o store de RAG se podrá desplegar un entorno (producción), dos o los tres entornos&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #f0fff4; border: 3px solid #c6f6d5; padding: 1em; border-radius: 4px;width: fit-content; margin-left: 0px&amp;quot;&amp;gt;&lt;br /&gt;
✅ '''Recomendación'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En la mayoría de los casos con disponer de entorno de producción y preproducción tanto para agente como para RAG será suficiente&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Para realizar una gestión completa en vFlow (suponiendo tres entornos y gestión de agentes y RAG), deberemos tener&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Archivo:Gestión RAG.png|1000px|miniaturadeimagen|centro|Gestión RAG en vFlow|link=]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''En orquestador'''&lt;br /&gt;
* Crear '''tres stores''' (pro/pre/pru); en cada store:&lt;br /&gt;
::* En total '''tres loaders'''. Crear un loader por entorno (p.ej /pro/nombrefich). &lt;br /&gt;
::* Subir un primer &amp;quot;nombrefich&amp;quot;&lt;br /&gt;
::::* tipo texto (versión 0)&lt;br /&gt;
::::* el mismo para todos los entornos&lt;br /&gt;
::::* se sube por medios convencionales (p. ej SCP)&lt;br /&gt;
* Asegurar que los stores queden totalmente creados (estado &amp;quot;UPSERTED&amp;quot;)&lt;br /&gt;
* Crear '''tres agentes''' (pro/pre/pru)&lt;br /&gt;
::* Asociar a stores (pro/pre/pru)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''En flow'''&lt;br /&gt;
* Crear '''un agente'''&lt;br /&gt;
::* Vincularlo a los tres agentes de orquestador (pro/pre/pru)&lt;br /&gt;
* Crear '''un store'''&lt;br /&gt;
::* Vinculado a los tres stores de orquestador (pro/pre/pru)&lt;br /&gt;
* Crear '''un loader'''&lt;br /&gt;
::* Loader vinculado a agente de vflow&lt;br /&gt;
::* C_NAME loader coincidirá con los de orquestador (p.ej &amp;quot;nombrefich&amp;quot;)&lt;br /&gt;
::* Subir nueva versión v1 (&amp;quot;.txt&amp;quot;, &amp;quot;.pdf&amp;quot;, &amp;quot;.doc&amp;quot;, &amp;quot;.docx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Diagnósticos ==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/vFlowProxy/vFlowProxy.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En nodo vFlowProxy&lt;br /&gt;
::para cualquier canal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
nc localhost 1131&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En nodo vFlowProxy&lt;br /&gt;
::Monitoriza estado del proceso vflowProxy&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
  &amp;quot;proceso&amp;quot;: {&lt;br /&gt;
    &amp;quot;nombre&amp;quot;: &amp;quot;vFlowProxy&amp;quot;,&lt;br /&gt;
    &amp;quot;version&amp;quot;: &amp;quot;00.00.01&amp;quot;,&lt;br /&gt;
    &amp;quot;inicio_ts&amp;quot;: 1771315153,&lt;br /&gt;
    &amp;quot;inicio_cad&amp;quot;: &amp;quot;20260217 085913&amp;quot;,&lt;br /&gt;
    &amp;quot;log_alarmas_val&amp;quot;: 8,&lt;br /&gt;
    &amp;quot;log_alarma_ultimo_ts&amp;quot;: 1771970401,&lt;br /&gt;
    &amp;quot;log_alarma_ultimo_ts_cad&amp;quot;: &amp;quot;20260224 230001&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;diagnostico&amp;quot;: {&lt;br /&gt;
    &amp;quot;gmp&amp;quot;: {&lt;br /&gt;
      &amp;quot;msj_val&amp;quot;: 1022,&lt;br /&gt;
      &amp;quot;msj_max&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;buf_val&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;buf_max&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;tarea_val&amp;quot;: 7,&lt;br /&gt;
      &amp;quot;tarea_max&amp;quot;: 15&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;tiempo&amp;quot;: {&lt;br /&gt;
      &amp;quot;uptime&amp;quot;: 716665,&lt;br /&gt;
      &amp;quot;uptime_dias&amp;quot;: 8,&lt;br /&gt;
      &amp;quot;uptime_horas&amp;quot;: 7,&lt;br /&gt;
      &amp;quot;uptime_minutos&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;uptime_segundos&amp;quot;: 25&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;wws&amp;quot;: {&lt;br /&gt;
      &amp;quot;conexiones_val&amp;quot;: 0,&lt;br /&gt;
      &amp;quot;conexiones_max_periodo&amp;quot;: 0,&lt;br /&gt;
      &amp;quot;hilos_val&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;hilos_max&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;wsi_cad&amp;quot;: &amp;quot;sesiones=0/200&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;alarmas_nivel_max&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;alarmas&amp;quot;: []&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es relevante la monitorización de sesiones  &amp;lt;code&amp;gt;&amp;quot;wsi_cad&amp;quot;: &amp;quot;sesiones=0/200&amp;quot;&amp;lt;/code&amp;gt; (usadas/máximas)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
asterisk -rv | grep callsquare_name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::en nodo Omnisuite&lt;br /&gt;
::para canal voz&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/xcally/agi-combined.yyyy-mm-dd.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::en nodo Omnisuite&lt;br /&gt;
::para canal voz&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/xcally/routing-combined.yyyy-mm-dd.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::para canal voz&lt;br /&gt;
&lt;br /&gt;
== Para probar desde vFlow ==&lt;br /&gt;
&lt;br /&gt;
En /home/sat/vFlowProxy hay scripts de prueba (se configuran en el vars.sh); para usar los scripts de prueba tendremos que tener también &amp;quot;.ini&amp;quot; en vFlow&lt;br /&gt;
&lt;br /&gt;
Es útil comenzar con&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/home/sat/vFlowProxy/vFlowGetInfo.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
que sin parámetros adicionales confirma el correcto estado de vFlowProxy&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
  &amp;quot;app&amp;quot;: &amp;quot;vFlowProxy&amp;quot;,&lt;br /&gt;
  &amp;quot;version&amp;quot;: &amp;quot;00.00.01&amp;quot;,&lt;br /&gt;
  &amp;quot;sessions_opened&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;sessions_limit&amp;quot;: 200,&lt;br /&gt;
  &amp;quot;sessions_sleep_timeout_s&amp;quot;: 3600,&lt;br /&gt;
  &amp;quot;alarms&amp;quot;: 8&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Integración de vFlow desde Omnisuite ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Descripción general ===&lt;br /&gt;
En Omnisuite, la integración con vFlow, se realiza con el programa vFlowOmnisuite, que podrá ser invocado como ejecutable (más rápido, para debian), o como Python (más universal)&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
    /usr/local/sbin/vFlowOmnisuite (OPCIÓN PREFERENTE)&lt;br /&gt;
    /usr/local/sbin/vFlowOmnisuite.py (LEGACY)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Asociado al programa existen los siguientes ficheros de configuración (.ini):&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; de plataforma''' Omnisuite en vFlow --&amp;gt; Solo contiene uuid de la plataforma; se entrega un &amp;quot;.ini&amp;quot; a modo de ejemplo en &amp;lt;code&amp;gt;/etc/MDtel/vFlow/platform.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE PLATAFORMA&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
   [uuids]&lt;br /&gt;
   platform=1d111530-e22d-11f0-b0f2-5254008bef96&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; por agente''' en vFlow --&amp;gt; Solo contiene uuid del agente según su identificación en vFlow ('''NO''' en un orquestador, por ejemplo flowise); se entrega un &amp;quot;.ini&amp;quot; asociado a un agente &amp;quot;loop&amp;quot; existente en Flowise &amp;lt;code&amp;gt;/etc/MDtel/vFlow/agent_loop_01.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE AGENTE&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
   [uuids]&lt;br /&gt;
   agent=1a3a1020-ea1d-11f0-b4a5-5254008bef96&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; por servicio''' --&amp;gt; Configuración de cada servicio en Omnisuite; se entrega un &amp;quot;.ini&amp;quot; a modo de ejemplo en &amp;lt;code&amp;gt;/etc/MDtel/vFlow/service.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
En cada fichero de servicio configuraremos&lt;br /&gt;
::* Donde está Vflow&lt;br /&gt;
::* Agente&lt;br /&gt;
::* Plataforma&lt;br /&gt;
::* timeout_s --&amp;gt; Importante, es afectado por el LLM&lt;br /&gt;
::* channel_text_type --&amp;gt; IMPORTANTE si el servicio es de texto que esté bien (vacio solo si el servicio es de texto, NO COMENTARLO)&lt;br /&gt;
::* environment --&amp;gt; production, staging, test&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE SERVICIO&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
  [arch_uuids]&lt;br /&gt;
  agent=/etc/MDtel/vFlow/agent_loop_01.ini&lt;br /&gt;
  platform=/etc/MDtel/vFlow/platform.ini&lt;br /&gt;
&lt;br /&gt;
  [vflow]&lt;br /&gt;
  host_port=172.25.129.242:7900&lt;br /&gt;
  timeout_s=20&lt;br /&gt;
  # channel_type=[voice|chat|email]&lt;br /&gt;
  channel_type=chat&lt;br /&gt;
  # environment=[production|staging|test]&lt;br /&gt;
  environment=production&lt;br /&gt;
  language=es&lt;br /&gt;
&lt;br /&gt;
  [omnisuite]&lt;br /&gt;
  # channel_text_type=[chat|mail|sms|whatsup]&lt;br /&gt;
  channel_text_type=chat&lt;br /&gt;
  service_id=vflow_service_id&lt;br /&gt;
  service_name=vflow_service_name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La imagen siguiente muestra el esquema de relación entre orquestador/plataforma/agente/servicio en la plataforma y en vFlow&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Relaciones vFlow plat orq ag serv.png|800px|miniaturadeimagen|centro|Relación orquestador-plataforma-agente-servicio]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Invocación ===&lt;br /&gt;
==== Generales ====&lt;br /&gt;
&lt;br /&gt;
===== Ver configuración =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; configPrint&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
Configuration:&lt;br /&gt;
  agent_arch_uuid=/etc/MDtel/vFlow/agent_fse_rapido.ini&lt;br /&gt;
  agent_uuid=3487af28-1d14-11f1-803c-525400ef204c&lt;br /&gt;
  platform_arch_uuid=/etc/MDtel/vFlow/platform_labomsui.ini&lt;br /&gt;
  platform_uuid=9a54ea74-f050-11f0-bdf1-5254008bef96&lt;br /&gt;
&lt;br /&gt;
  vflow_host_port=labvflow.mdnova.local&lt;br /&gt;
  vflow_timeout_s=50&lt;br /&gt;
  vflow_environment=production&lt;br /&gt;
  vflow_channel_type=voice&lt;br /&gt;
  vflow_language=es&lt;br /&gt;
&lt;br /&gt;
  omnisuite_channel_text_type=chat&lt;br /&gt;
  omnisuite_service_id=287&lt;br /&gt;
  omnisuite_service_name=desarrollo&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;errorCad&amp;quot;: &amp;quot;OK&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Ver versión =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite version&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
00.00.02&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Para canales de texto ====&lt;br /&gt;
&lt;br /&gt;
Para canales de texto en Omnisuite existe un único Comando de invocación &amp;quot;omnisuiteText&amp;quot;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; omnisuiteText &amp;lt;omnisuite_id&amp;gt; &amp;lt;omnisuite_websiteId&amp;gt; &amp;lt;omnisuite_createdAt&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt; &amp;lt;question&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros ( Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Obligatoriedad !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;config_arch&amp;gt;` || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_id&amp;gt;` || OBLIGATORIO || Identificativo de la interacción en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_websiteId&amp;gt;` || OBLIGATORIO || Identificativo del servicio en Omnisuite (ej. website id en chat)&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_createdAt&amp;gt;` || OBLIGATORIO || Creación de la interacción&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_id&amp;gt;` || OPCIONAL || Id de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_phone_number&amp;gt;` || OPCIONAL || Telf de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_email&amp;gt;` || OPCIONAL || Email de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;question&amp;gt;` || OBLIGATORIO || Texto a enviar al orquestado (p. ej. Flowise)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
 &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
 &amp;quot;session&amp;quot;: &amp;quot;e926548d-fdcf-11f0-a793-525400ef204c&amp;quot;,&lt;br /&gt;
 &amp;quot;language&amp;quot;: &amp;quot;es&amp;quot;,&lt;br /&gt;
 &amp;quot;response&amp;quot;: &amp;quot;HOLA&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Para canales de voz ====&lt;br /&gt;
Para  canales de voz, existen comandos para &amp;quot;abrir sesión&amp;quot;, &amp;quot;enviar texto&amp;quot; y &amp;quot;cerrar sesión&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Abrir sesión =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; sessionOpen &amp;lt;omnisuite_UniqueId&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros (Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Requisito !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;omnisuite_UniqueId&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Unique_ID de asterisk de la llamada en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_id&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Id de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_phone_number&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Telf de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_email&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Email de cliente en Omnisuite&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
    &amp;quot;session&amp;quot;: &amp;quot;ec73df29-f08a-11f0-a8ec-525400ef204c&amp;quot;,&lt;br /&gt;
    &amp;quot;platform_id&amp;quot;: &amp;quot;146&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''El value correspondiente al key &amp;quot;session&amp;quot; deberá ser guardado en una variable para siguientes invocaciones'''&lt;br /&gt;
&lt;br /&gt;
===== Enviar texto =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; textRequest &amp;lt;vflow_session_uuid&amp;gt; &amp;lt;question&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Requisito !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_session_uuid&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Variable &amp;quot;session&amp;quot; almacenada en el &amp;quot;sessionOpen&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;question&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Texto a enviar al orquestado (p. ej. Flowise) (normal, abandoned, other)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
    &amp;quot;session&amp;quot;: &amp;quot;c6f6fad7-f6c1-11f0-a793-525400ef204c&amp;quot;,&lt;br /&gt;
    &amp;quot;language&amp;quot;: &amp;quot;ES&amp;quot;,&lt;br /&gt;
    &amp;quot;response&amp;quot;: &amp;quot;Cristóbal Colón.&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Cerrar sesión=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; sessionClose &amp;lt;vflow_session_uuid&amp;gt; &amp;lt;vflow_cause&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros  (Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Estado !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_session_uuid&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Variable &amp;quot;session&amp;quot; almacenada en el &amp;quot;sessionOpen&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_cause&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || (normal, abandoned, expired, other)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 104,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;Wrong session&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ejemplos para omnisuite ===&lt;br /&gt;
&lt;br /&gt;
==== Ejemplo de chat ====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_chat.ini&amp;quot; &amp;quot;omnisuiteText&amp;quot; &amp;quot;{{interaction.id}}&amp;quot; &amp;quot;{{account.id}}&amp;quot; &amp;quot;{{interaction.createdAt}}&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;{{message.body}}&amp;quot; | jq -r '.response'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Ejemplo de voz ====&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen cally square.jpg|1024px|none|miniatura|Ejemplo de flujo de Cally Square]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_voice.ini&amp;quot; &amp;quot;sessionOpen&amp;quot; &amp;quot;{UNIQUEID}&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; |  jq -r '.session' &amp;lt;/pre&amp;gt;&lt;br /&gt;
::&amp;lt;small&amp;gt;salida del comando almacenado en variable &amp;quot;vflow_sessionopen_response&amp;quot; para su posterior uso en cally square&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen sessionopen.jpg|550px|center|miniatura|Abrir sesión en vFlow]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_desa_voz.ini&amp;quot; &amp;quot;textRequest&amp;quot; &amp;quot;{vflow_sessionopen_response}&amp;quot; &amp;quot;{OPENAI_WHISPER_TRANSCRIPT}&amp;quot; | jq -r '.response'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::&amp;lt;small&amp;gt;la voz se ha transcrito con OpenAI, por eso se usa como parámetro {OPENAI_WHISPER_TRANSCRIPT})&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen textrequest.jpg|550px|center|miniatura|Enviar texto en vFlow]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt; &lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_desa_voz.ini&amp;quot; &amp;quot;sessionClose&amp;quot; &amp;quot;{{vflow_sessionopen_response}}&amp;quot; &amp;quot;normal&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen sessionclose.jpg|900px|center|miniatura|Cerrar sesión en vFlow]]&lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:VIVAit Call]]&lt;br /&gt;
[[Category:Omnisuite]]&lt;br /&gt;
[[Category:IA]]&lt;/div&gt;</summary>
		<author><name>Alfredo.rodriguez</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_de_vFlow&amp;diff=17297</id>
		<title>Manual de operación de vFlow</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_de_vFlow&amp;diff=17297"/>
		<updated>2026-03-27T06:56:57Z</updated>

		<summary type="html">&lt;p&gt;Alfredo.rodriguez: /* Puesta en marcha de nodo vFlow */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Descripción general vFlow ==&lt;br /&gt;
&lt;br /&gt;
vFlow es un módulo de conexión a sistemas de inteligencia artifical para sistemas de comunicaciones unificadas, ya sean sistemas corporativos o contact center&lt;br /&gt;
Gracias a vFlow, las plataformas de UC dispondrán de una solución para comunicarse con sistemas IA utilizando un mismo mecanismo independientemente de la solución de inteligencia artificial que se utilice&lt;br /&gt;
&lt;br /&gt;
Para proporcionar el servicio de manera completa, vFlow (en concreto el orquestador) se conectará a sistemas de inteligencia artificial (LLM) que permitirán desarrollar los agentes definidos en los orquestadores&lt;br /&gt;
&lt;br /&gt;
'''Conceptos:'''&lt;br /&gt;
* Plataforma&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Plataforma de comunicaciones unificadas; por ejemplo Omnisuite o VIVAit Call&lt;br /&gt;
* Orquestador&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Plataforma agéntica de IA (por ejemplo Flowise)&lt;br /&gt;
* vFlowProxy&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Módulo VIVAit que conecta multiples plataformas con múltiples orquestadores&lt;br /&gt;
* LLM&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Modelo de lenguaje natural que usará un orquestadores&lt;br /&gt;
* Agente&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Cada uno de los flujos creados en vFlow; corresponde a un par plataforma/agentflow de orquestador&lt;br /&gt;
* Servicio&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Cada elemento de negocio en la plataforma de CU (por ejemplo VDN)&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Arquitectura Vflow - v2.jpg|1000px|center|Arquitecura de vFlow]]&lt;br /&gt;
&lt;br /&gt;
Los '''módulos principales''' de vFlow son:&lt;br /&gt;
* vFlowProxy: Recibe las conexiones de los sistemas de comunicaciones unificadas, y conecta con los orquestadores de Inteligencia Artificial de manera segura y adaptada al tipo de servicio; el acceso a vFlow Proxy desde las plataformas se realizará mediante:&lt;br /&gt;
* Programa cliente: Se utiliza en el sistema de comunicaciones unificadas (actualmente VIVAit Call y Omnsisuite) para invocar a vFlow&lt;br /&gt;
* API REST: Alternativa al programa cliente, vFlowProxy proporciona una API REST que facilita que cualquier plataforma pueda comunicarse mediante un procedimiento estándar y documentado&lt;br /&gt;
* Portal de administración vFlow: Permite visualizar las interaciones realizadas y configurar el sistema&lt;br /&gt;
* Orquestador de IA: Herramienta de Inteligencia Artificial que permitirá la creación de aplicaciones personalizadas (agentes)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Otros elementos''' relevantes serán:&lt;br /&gt;
* Base de datos vFlow:&lt;br /&gt;
:* Almacena información sobre sesiones y transacciones realizadas&lt;br /&gt;
:* Almacena información de configuración sobre vFlow&lt;br /&gt;
:* Gestiona el RAG de las inteligencias artificiales a usar&lt;br /&gt;
&lt;br /&gt;
== Puesta en marcha de nodo vFlow ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Existe un nodo vFlow en los repositorios habituales proporcionados&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para '''dar de alta nodo vflow en un cliente''' hay que:&lt;br /&gt;
* Configurar IP (por defecto la maquina va configurada por DHCP)&lt;br /&gt;
* Adaptar el firewall, para ello REVISAR el fichero &amp;lt;code&amp;gt;/etc/firewall/vars.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
* Certificados validos en apache&lt;br /&gt;
* REVISAR ficheros &amp;lt;code&amp;gt;/etc/apache2/sites-enabled/flowise.conf&amp;lt;/code&amp;gt; y &amp;lt;code&amp;gt;/etc/apache2/sites-enabled/vFlow.conf&amp;lt;/code&amp;gt; la variable &amp;lt;code&amp;gt;ServerName&amp;lt;/code&amp;gt; (nombre valido de la maquina)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Accesos vFlow''' (se debe cambiar tras instalación):&lt;br /&gt;
* Usuario ssh y de SO por defecto es sat y clave a proporcionar.&lt;br /&gt;
* Para el portal de flowise las credenciales son usuario: vfloadmin@vflow.com clave: A proporcionar&lt;br /&gt;
* Para el portal de vflow las credenciales son usaurio sat y clave a proporcionar.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Accesos BBDD vFlow'''&lt;br /&gt;
* Para acceder a la base de datos desde el workbenck solo desde localhost (o tunel):&lt;br /&gt;
* BBDD Vlfow (admin)  vflowadmin // clave a proporcionar&lt;br /&gt;
* BBDD Vlfow (no_admin)  vflow //  clave a proporcionar&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Portal orquestador Flowise'''&lt;br /&gt;
&lt;br /&gt;
ubicado en https://host.cliente.xx:4567&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #fef6e7; border: 1px solid #fbd68a; padding: 1em; border-radius: 4px;width: fit-content; margin-left: 50px&amp;quot;&amp;gt;&lt;br /&gt;
'''⚠️ ATENCION !!'''&lt;br /&gt;
'''Los cambios en tablas de configuración de BBDD de vFlow (orquestadores, plataformas, agentes) requieren reinicio del servicio vFlowProxy'''&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', 'Monaco', 'Courier New', monospace;&amp;quot;&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service status&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service stop&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service start&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El fichero de configuración del demonio &amp;lt;cvode&amp;gt;vFlowProxy&amp;lt;/code&amp;gt; se encuentra en &amp;lt;code&amp;gt;/etc/MDtel/vFlowProxy.conf&amp;lt;/code&amp;gt;, si bien este fichero de configuración no se modificará habitualmente (los parámetros generales de configuración de vFlowProxy se encuentran en la BBDD de vFlow)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Relevante para poder '''poner en marcha un loader''':&lt;br /&gt;
* Subir el fichero inicial previamente a la carpeta destino según entorno (p. ej &amp;lt;code&amp;gt;/var/www/html/storages/production&amp;lt;/code&amp;gt;&lt;br /&gt;
* Tipo de loader --&amp;gt; API&lt;br /&gt;
* Método --&amp;gt; GET&lt;br /&gt;
* URL --&amp;gt; (ejemplo: http://172.25.129.242/storages/test/fichero-pru.txt)&lt;br /&gt;
::* Existirán URL &amp;quot;production&amp;quot;, &amp;quot;staging&amp;quot; y &amp;quot;test&amp;quot;&lt;br /&gt;
* Text Splitter: Recursive&lt;br /&gt;
* Qdrant --&amp;gt; localhost:6333&lt;br /&gt;
&amp;lt;div style=&amp;quot;display:none;&amp;quot;&amp;gt;* Record Manager --&amp;gt; SQLite}}&amp;lt;/div&amp;gt;&lt;br /&gt;
* Record Manager --&amp;gt; MySQL&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Se adjunta imagen a modo de ejemplo&lt;br /&gt;
[[Archivo:Alta loader vflow.png|1000px|miniaturadeimagen|centro|alta loader vFlow|link=]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gestión en vFlow ==&lt;br /&gt;
vFlow prevé la existencia de tres entornos que permita hacer una gestión segura de agentes y RAG:&lt;br /&gt;
&lt;br /&gt;
* Producción&lt;br /&gt;
* Preproducción&lt;br /&gt;
* Pruebas&lt;br /&gt;
&lt;br /&gt;
Para cada agente o store de RAG se podrá desplegar un entorno (producción), dos o los tres entornos&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #f0fff4; border: 3px solid #c6f6d5; padding: 1em; border-radius: 4px;width: fit-content; margin-left: 0px&amp;quot;&amp;gt;&lt;br /&gt;
✅ '''Recomendación'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En la mayoría de los casos con disponer de entorno de producción y preproducción tanto para agente como para RAG será suficiente&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Para realizar una gestión completa en vFlow (suponiendo tres entornos y gestión de agentes y RAG), deberemos tener&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Archivo:Gestión RAG.png|1000px|miniaturadeimagen|centro|Gestión RAG en vFlow|link=]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''En orquestador'''&lt;br /&gt;
* Crear '''tres stores''' (pro/pre/pru); en cada store:&lt;br /&gt;
::* En total '''tres loaders'''. Crear un loader por entorno (p.ej /pro/nombrefich). &lt;br /&gt;
::* Subir un primer &amp;quot;nombrefich&amp;quot;&lt;br /&gt;
::::* tipo texto (versión 0)&lt;br /&gt;
::::* el mismo para todos los entornos&lt;br /&gt;
::::* se sube por medios convencionales (p. ej SCP)&lt;br /&gt;
* Asegurar que los stores queden totalmente creados (estado &amp;quot;UPSERTED&amp;quot;)&lt;br /&gt;
* Crear '''tres agentes''' (pro/pre/pru)&lt;br /&gt;
::* Asociar a stores (pro/pre/pru)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''En flow'''&lt;br /&gt;
* Crear '''un agente'''&lt;br /&gt;
::* Vincularlo a los tres agentes de orquestador (pro/pre/pru)&lt;br /&gt;
* Crear '''un store'''&lt;br /&gt;
::* Vinculado a los tres stores de orquestador (pro/pre/pru)&lt;br /&gt;
* Crear '''un loader'''&lt;br /&gt;
::* Loader vinculado a agente de vflow&lt;br /&gt;
::* C_NAME loader coincidirá con los de orquestador (p.ej &amp;quot;nombrefich&amp;quot;)&lt;br /&gt;
::* Subir nueva versión v1 (&amp;quot;.txt&amp;quot;, &amp;quot;.pdf&amp;quot;, &amp;quot;.doc&amp;quot;, &amp;quot;.docx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Diagnósticos ==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/vFlowProxy/vFlowProxy.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En nodo vFlowProxy&lt;br /&gt;
::para cualquier canal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
nc localhost 1131&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En nodo vFlowProxy&lt;br /&gt;
::Monitoriza estado del proceso vflowProxy&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
  &amp;quot;proceso&amp;quot;: {&lt;br /&gt;
    &amp;quot;nombre&amp;quot;: &amp;quot;vFlowProxy&amp;quot;,&lt;br /&gt;
    &amp;quot;version&amp;quot;: &amp;quot;00.00.01&amp;quot;,&lt;br /&gt;
    &amp;quot;inicio_ts&amp;quot;: 1771315153,&lt;br /&gt;
    &amp;quot;inicio_cad&amp;quot;: &amp;quot;20260217 085913&amp;quot;,&lt;br /&gt;
    &amp;quot;log_alarmas_val&amp;quot;: 8,&lt;br /&gt;
    &amp;quot;log_alarma_ultimo_ts&amp;quot;: 1771970401,&lt;br /&gt;
    &amp;quot;log_alarma_ultimo_ts_cad&amp;quot;: &amp;quot;20260224 230001&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;diagnostico&amp;quot;: {&lt;br /&gt;
    &amp;quot;gmp&amp;quot;: {&lt;br /&gt;
      &amp;quot;msj_val&amp;quot;: 1022,&lt;br /&gt;
      &amp;quot;msj_max&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;buf_val&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;buf_max&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;tarea_val&amp;quot;: 7,&lt;br /&gt;
      &amp;quot;tarea_max&amp;quot;: 15&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;tiempo&amp;quot;: {&lt;br /&gt;
      &amp;quot;uptime&amp;quot;: 716665,&lt;br /&gt;
      &amp;quot;uptime_dias&amp;quot;: 8,&lt;br /&gt;
      &amp;quot;uptime_horas&amp;quot;: 7,&lt;br /&gt;
      &amp;quot;uptime_minutos&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;uptime_segundos&amp;quot;: 25&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;wws&amp;quot;: {&lt;br /&gt;
      &amp;quot;conexiones_val&amp;quot;: 0,&lt;br /&gt;
      &amp;quot;conexiones_max_periodo&amp;quot;: 0,&lt;br /&gt;
      &amp;quot;hilos_val&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;hilos_max&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;wsi_cad&amp;quot;: &amp;quot;sesiones=0/200&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;alarmas_nivel_max&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;alarmas&amp;quot;: []&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es relevante la monitorización de sesiones  &amp;lt;code&amp;gt;&amp;quot;wsi_cad&amp;quot;: &amp;quot;sesiones=0/200&amp;quot;&amp;lt;/code&amp;gt; (usadas/máximas)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
asterisk -rv | grep callsquare_name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::en nodo Omnisuite&lt;br /&gt;
::para canal voz&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/xcally/agi-combined.yyyy-mm-dd.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::en nodo Omnisuite&lt;br /&gt;
::para canal voz&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/xcally/routing-combined.yyyy-mm-dd.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::para canal voz&lt;br /&gt;
&lt;br /&gt;
== Para probar desde vFlow ==&lt;br /&gt;
&lt;br /&gt;
En /home/sat/vFlowProxy hay scripts de prueba (se configuran en el vars.sh); para usar los scripts de prueba tendremos que tener también &amp;quot;.ini&amp;quot; en vFlow&lt;br /&gt;
&lt;br /&gt;
Es útil comenzar con&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/home/sat/vFlowProxy/vFlowGetInfo.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
que sin parámetros adicionales confirma el correcto estado de vFlowProxy&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
  &amp;quot;app&amp;quot;: &amp;quot;vFlowProxy&amp;quot;,&lt;br /&gt;
  &amp;quot;version&amp;quot;: &amp;quot;00.00.01&amp;quot;,&lt;br /&gt;
  &amp;quot;sessions_opened&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;sessions_limit&amp;quot;: 200,&lt;br /&gt;
  &amp;quot;sessions_sleep_timeout_s&amp;quot;: 3600,&lt;br /&gt;
  &amp;quot;alarms&amp;quot;: 8&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Integración de vFlow desde Omnisuite ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Descripción general ===&lt;br /&gt;
En Omnisuite, la integración con vFlow, se realiza con el programa vFlowOmnisuite, que podrá ser invocado como ejecutable (más rápido, para debian), o como Python (más universal)&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
    /usr/local/sbin/vFlowOmnisuite (OPCIÓN PREFERENTE)&lt;br /&gt;
    /usr/local/sbin/vFlowOmnisuite.py (LEGACY)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Asociado al programa existen los siguientes ficheros de configuración (.ini):&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; de plataforma''' Omnisuite en vFlow --&amp;gt; Solo contiene uuid de la plataforma; se entrega un &amp;quot;.ini&amp;quot; a modo de ejemplo en &amp;lt;code&amp;gt;/etc/MDtel/vFlow/platform.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE PLATAFORMA&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
   [uuids]&lt;br /&gt;
   platform=1d111530-e22d-11f0-b0f2-5254008bef96&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; por agente''' en vFlow --&amp;gt; Solo contiene uuid del agente según su identificación en vFlow ('''NO''' en un orquestador, por ejemplo flowise); se entrega un &amp;quot;.ini&amp;quot; asociado a un agente &amp;quot;loop&amp;quot; existente en Flowise &amp;lt;code&amp;gt;/etc/MDtel/vFlow/agent_loop_01.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE AGENTE&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
   [uuids]&lt;br /&gt;
   agent=1a3a1020-ea1d-11f0-b4a5-5254008bef96&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; por servicio''' --&amp;gt; Configuración de cada servicio en Omnisuite; se entrega un &amp;quot;.ini&amp;quot; a modo de ejemplo en &amp;lt;code&amp;gt;/etc/MDtel/vFlow/service.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
En cada fichero de servicio configuraremos&lt;br /&gt;
::* Donde está Vflow&lt;br /&gt;
::* Agente&lt;br /&gt;
::* Plataforma&lt;br /&gt;
::* timeout_s --&amp;gt; Importante, es afectado por el LLM&lt;br /&gt;
::* channel_text_type --&amp;gt; IMPORTANTE si el servicio es de texto que esté bien (vacio solo si el servicio es de texto, NO COMENTARLO)&lt;br /&gt;
::* environment --&amp;gt; production, staging, test&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE SERVICIO&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
  [arch_uuids]&lt;br /&gt;
  agent=/etc/MDtel/vFlow/agent_loop_01.ini&lt;br /&gt;
  platform=/etc/MDtel/vFlow/platform.ini&lt;br /&gt;
&lt;br /&gt;
  [vflow]&lt;br /&gt;
  host_port=172.25.129.242:7900&lt;br /&gt;
  timeout_s=20&lt;br /&gt;
  # channel_type=[voice|chat|email]&lt;br /&gt;
  channel_type=chat&lt;br /&gt;
  # environment=[production|staging|test]&lt;br /&gt;
  environment=production&lt;br /&gt;
  language=es&lt;br /&gt;
&lt;br /&gt;
  [omnisuite]&lt;br /&gt;
  # channel_text_type=[chat|mail|sms|whatsup]&lt;br /&gt;
  channel_text_type=chat&lt;br /&gt;
  service_id=vflow_service_id&lt;br /&gt;
  service_name=vflow_service_name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La imagen siguiente muestra el esquema de relación entre orquestador/plataforma/agente/servicio en la plataforma y en vFlow&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Relaciones vFlow plat orq ag serv.png|800px|miniaturadeimagen|centro|Relación orquestador-plataforma-agente-servicio]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Invocación ===&lt;br /&gt;
==== Generales ====&lt;br /&gt;
&lt;br /&gt;
===== Ver configuración =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; configPrint&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
Configuration:&lt;br /&gt;
  agent_arch_uuid=/etc/MDtel/vFlow/agent_fse_rapido.ini&lt;br /&gt;
  agent_uuid=3487af28-1d14-11f1-803c-525400ef204c&lt;br /&gt;
  platform_arch_uuid=/etc/MDtel/vFlow/platform_labomsui.ini&lt;br /&gt;
  platform_uuid=9a54ea74-f050-11f0-bdf1-5254008bef96&lt;br /&gt;
&lt;br /&gt;
  vflow_host_port=labvflow.mdnova.local&lt;br /&gt;
  vflow_timeout_s=50&lt;br /&gt;
  vflow_environment=production&lt;br /&gt;
  vflow_channel_type=voice&lt;br /&gt;
  vflow_language=es&lt;br /&gt;
&lt;br /&gt;
  omnisuite_channel_text_type=chat&lt;br /&gt;
  omnisuite_service_id=287&lt;br /&gt;
  omnisuite_service_name=desarrollo&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;errorCad&amp;quot;: &amp;quot;OK&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Ver versión =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite version&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
00.00.02&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Para canales de texto ====&lt;br /&gt;
&lt;br /&gt;
Para canales de texto en Omnisuite existe un único Comando de invocación &amp;quot;omnisuiteText&amp;quot;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; omnisuiteText &amp;lt;omnisuite_id&amp;gt; &amp;lt;omnisuite_websiteId&amp;gt; &amp;lt;omnisuite_createdAt&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt; &amp;lt;question&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros ( Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Obligatoriedad !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;config_arch&amp;gt;` || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_id&amp;gt;` || OBLIGATORIO || Identificativo de la interacción en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_websiteId&amp;gt;` || OBLIGATORIO || Identificativo del servicio en Omnisuite (ej. website id en chat)&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_createdAt&amp;gt;` || OBLIGATORIO || Creación de la interacción&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_id&amp;gt;` || OPCIONAL || Id de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_phone_number&amp;gt;` || OPCIONAL || Telf de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_email&amp;gt;` || OPCIONAL || Email de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;question&amp;gt;` || OBLIGATORIO || Texto a enviar al orquestado (p. ej. Flowise)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
 &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
 &amp;quot;session&amp;quot;: &amp;quot;e926548d-fdcf-11f0-a793-525400ef204c&amp;quot;,&lt;br /&gt;
 &amp;quot;language&amp;quot;: &amp;quot;es&amp;quot;,&lt;br /&gt;
 &amp;quot;response&amp;quot;: &amp;quot;HOLA&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Para canales de voz ====&lt;br /&gt;
Para  canales de voz, existen comandos para &amp;quot;abrir sesión&amp;quot;, &amp;quot;enviar texto&amp;quot; y &amp;quot;cerrar sesión&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Abrir sesión =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; sessionOpen &amp;lt;omnisuite_UniqueId&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros (Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Requisito !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;omnisuite_UniqueId&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Unique_ID de asterisk de la llamada en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_id&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Id de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_phone_number&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Telf de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_email&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Email de cliente en Omnisuite&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
    &amp;quot;session&amp;quot;: &amp;quot;ec73df29-f08a-11f0-a8ec-525400ef204c&amp;quot;,&lt;br /&gt;
    &amp;quot;platform_id&amp;quot;: &amp;quot;146&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''El value correspondiente al key &amp;quot;session&amp;quot; deberá ser guardado en una variable para siguientes invocaciones'''&lt;br /&gt;
&lt;br /&gt;
===== Enviar texto =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; textRequest &amp;lt;vflow_session_uuid&amp;gt; &amp;lt;question&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Requisito !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_session_uuid&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Variable &amp;quot;session&amp;quot; almacenada en el &amp;quot;sessionOpen&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;question&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Texto a enviar al orquestado (p. ej. Flowise) (normal, abandoned, other)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
    &amp;quot;session&amp;quot;: &amp;quot;c6f6fad7-f6c1-11f0-a793-525400ef204c&amp;quot;,&lt;br /&gt;
    &amp;quot;language&amp;quot;: &amp;quot;ES&amp;quot;,&lt;br /&gt;
    &amp;quot;response&amp;quot;: &amp;quot;Cristóbal Colón.&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Cerrar sesión=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; sessionClose &amp;lt;vflow_session_uuid&amp;gt; &amp;lt;vflow_cause&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros  (Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Estado !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_session_uuid&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Variable &amp;quot;session&amp;quot; almacenada en el &amp;quot;sessionOpen&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_cause&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || (normal, abandoned, expired, other)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 104,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;Wrong session&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ejemplos para omnisuite ===&lt;br /&gt;
&lt;br /&gt;
==== Ejemplo de chat ====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_chat.ini&amp;quot; &amp;quot;omnisuiteText&amp;quot; &amp;quot;{{interaction.id}}&amp;quot; &amp;quot;{{account.id}}&amp;quot; &amp;quot;{{interaction.createdAt}}&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;{{message.body}}&amp;quot; | jq -r '.response'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Ejemplo de voz ====&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen cally square.jpg|1024px|none|miniatura|Ejemplo de flujo de Cally Square]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_voice.ini&amp;quot; &amp;quot;sessionOpen&amp;quot; &amp;quot;{UNIQUEID}&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; |  jq -r '.session' &amp;lt;/pre&amp;gt;&lt;br /&gt;
::&amp;lt;small&amp;gt;salida del comando almacenado en variable &amp;quot;vflow_sessionopen_response&amp;quot; para su posterior uso en cally square&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen sessionopen.jpg|550px|center|miniatura|Abrir sesión en vFlow]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_desa_voz.ini&amp;quot; &amp;quot;textRequest&amp;quot; &amp;quot;{vflow_sessionopen_response}&amp;quot; &amp;quot;{OPENAI_WHISPER_TRANSCRIPT}&amp;quot; | jq -r '.response'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::&amp;lt;small&amp;gt;la voz se ha transcrito con OpenAI, por eso se usa como parámetro {OPENAI_WHISPER_TRANSCRIPT})&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen textrequest.jpg|550px|center|miniatura|Enviar texto en vFlow]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt; &lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_desa_voz.ini&amp;quot; &amp;quot;sessionClose&amp;quot; &amp;quot;{{vflow_sessionopen_response}}&amp;quot; &amp;quot;normal&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen sessionclose.jpg|900px|center|miniatura|Cerrar sesión en vFlow]]&lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:VIVAit Call]]&lt;br /&gt;
[[Category:Omnisuite]]&lt;br /&gt;
[[Category:IA]]&lt;/div&gt;</summary>
		<author><name>Alfredo.rodriguez</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_de_vFlow&amp;diff=17296</id>
		<title>Manual de operación de vFlow</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_de_vFlow&amp;diff=17296"/>
		<updated>2026-03-27T06:55:56Z</updated>

		<summary type="html">&lt;p&gt;Alfredo.rodriguez: /* Puesta en marcha de nodo vFlow */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Descripción general vFlow ==&lt;br /&gt;
&lt;br /&gt;
vFlow es un módulo de conexión a sistemas de inteligencia artifical para sistemas de comunicaciones unificadas, ya sean sistemas corporativos o contact center&lt;br /&gt;
Gracias a vFlow, las plataformas de UC dispondrán de una solución para comunicarse con sistemas IA utilizando un mismo mecanismo independientemente de la solución de inteligencia artificial que se utilice&lt;br /&gt;
&lt;br /&gt;
Para proporcionar el servicio de manera completa, vFlow (en concreto el orquestador) se conectará a sistemas de inteligencia artificial (LLM) que permitirán desarrollar los agentes definidos en los orquestadores&lt;br /&gt;
&lt;br /&gt;
'''Conceptos:'''&lt;br /&gt;
* Plataforma&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Plataforma de comunicaciones unificadas; por ejemplo Omnisuite o VIVAit Call&lt;br /&gt;
* Orquestador&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Plataforma agéntica de IA (por ejemplo Flowise)&lt;br /&gt;
* vFlowProxy&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Módulo VIVAit que conecta multiples plataformas con múltiples orquestadores&lt;br /&gt;
* LLM&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Modelo de lenguaje natural que usará un orquestadores&lt;br /&gt;
* Agente&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Cada uno de los flujos creados en vFlow; corresponde a un par plataforma/agentflow de orquestador&lt;br /&gt;
* Servicio&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Cada elemento de negocio en la plataforma de CU (por ejemplo VDN)&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Arquitectura Vflow - v2.jpg|1000px|center|Arquitecura de vFlow]]&lt;br /&gt;
&lt;br /&gt;
Los '''módulos principales''' de vFlow son:&lt;br /&gt;
* vFlowProxy: Recibe las conexiones de los sistemas de comunicaciones unificadas, y conecta con los orquestadores de Inteligencia Artificial de manera segura y adaptada al tipo de servicio; el acceso a vFlow Proxy desde las plataformas se realizará mediante:&lt;br /&gt;
* Programa cliente: Se utiliza en el sistema de comunicaciones unificadas (actualmente VIVAit Call y Omnsisuite) para invocar a vFlow&lt;br /&gt;
* API REST: Alternativa al programa cliente, vFlowProxy proporciona una API REST que facilita que cualquier plataforma pueda comunicarse mediante un procedimiento estándar y documentado&lt;br /&gt;
* Portal de administración vFlow: Permite visualizar las interaciones realizadas y configurar el sistema&lt;br /&gt;
* Orquestador de IA: Herramienta de Inteligencia Artificial que permitirá la creación de aplicaciones personalizadas (agentes)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Otros elementos''' relevantes serán:&lt;br /&gt;
* Base de datos vFlow:&lt;br /&gt;
:* Almacena información sobre sesiones y transacciones realizadas&lt;br /&gt;
:* Almacena información de configuración sobre vFlow&lt;br /&gt;
:* Gestiona el RAG de las inteligencias artificiales a usar&lt;br /&gt;
&lt;br /&gt;
== Puesta en marcha de nodo vFlow ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Existe un nodo vFlow en los repositorios habituales proporcionados&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para '''dar de alta nodo vflow en un cliente''' hay que:&lt;br /&gt;
* Configurar IP (por defecto la maquina va configurada por DHCP)&lt;br /&gt;
* Adaptar el firewall, para ello REVISAR el fichero &amp;lt;code&amp;gt;/etc/firewall/vars.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
* Certificados validos en apache&lt;br /&gt;
* REVISAR ficheros &amp;lt;code&amp;gt;/etc/apache2/sites-enabled/flowise.conf&amp;lt;/code&amp;gt; y &amp;lt;code&amp;gt;/etc/apache2/sites-enabled/vFlow.conf&amp;lt;/code&amp;gt; la variable &amp;lt;code&amp;gt;ServerName&amp;lt;/code&amp;gt; (nombre valido de la maquina)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Accesos vFlow''' (se debe cambiar tras instalación):&lt;br /&gt;
* Usuario ssh y de SO por defecto es sat y clave a proporcionar.&lt;br /&gt;
* Para el portal de flowise las credenciales son usuario: vfloadmin@vflow.com clave: A proporcionar&lt;br /&gt;
* Para el portal de vflow las credenciales son usaurio sat y clave a proporcionar.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Accesos BBDD vFlow'''&lt;br /&gt;
* Para acceder a la base de datos desde el workbenck solo desde localhost (o tunel):&lt;br /&gt;
* BBDD Vlfow (admin)  vflowadmin // clave a proporcionar&lt;br /&gt;
* BBDD Vlfow (no_admin)  vflow //  clave a proporcionar&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Portal orquestador Flowise'''&lt;br /&gt;
&lt;br /&gt;
ubicado en https://host.cliente.xx:4567&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #fef6e7; border: 1px solid #fbd68a; padding: 1em; border-radius: 4px;width: fit-content; margin-left: 50px&amp;quot;&amp;gt;&lt;br /&gt;
'''⚠️ ATENCION !!'''&lt;br /&gt;
'''Los cambios en tablas de configuración de BBDD de vFlow (orquestadores, plataformas, agentes) requieren reinicio del servicio vFlowProxy'''&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', 'Monaco', 'Courier New', monospace;&amp;quot;&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service status&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service stop&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service start&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El fichero de configuración del demonio &amp;lt;cvode&amp;gt;vFlowProxy&amp;lt;/code&amp;gt; se encuentra en &amp;lt;code&amp;gt;/etc/MDtel/vFlowProxy.conf&amp;lt;/code&amp;gt;, si bien este fichero de configuración no se modificará habitualmente (los parámetros generales de configuración de vFlowProxy se encuentran en la BBDD de vFlow)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Relevante para poder '''poner en marcha un loader''':&lt;br /&gt;
* Subir el fichero inicial previamente a la carpeta destino según entorno (p. ej &amp;lt;code&amp;gt;/var/www/html/storages/production&amp;lt;/code&amp;gt;&lt;br /&gt;
* Tipo de loader --&amp;gt; API&lt;br /&gt;
* Método --&amp;gt; GET&lt;br /&gt;
* URL --&amp;gt; (ejemplo: http://172.25.129.242/storages/test/fichero-pru.txt)&lt;br /&gt;
::* Existirán URL &amp;quot;production&amp;quot;, &amp;quot;staging&amp;quot; y &amp;quot;test&amp;quot;&lt;br /&gt;
* Text Splitter: Recursive&lt;br /&gt;
* Qdrant --&amp;gt; localhost:6333&lt;br /&gt;
&amp;lt;div style=&amp;quot;display:none;&amp;quot;&amp;gt;* Record Manager --&amp;gt; SQLite}}&amp;lt;/div&amp;gt;&lt;br /&gt;
* Record Manager --&amp;gt; MySQL&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Se adjunta imagen a modo de ejemplo&lt;br /&gt;
[[Archivo:Alta loader vflow.png|800px|miniaturadeimagen|no|alta loader vFlow|link=]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gestión en vFlow ==&lt;br /&gt;
vFlow prevé la existencia de tres entornos que permita hacer una gestión segura de agentes y RAG:&lt;br /&gt;
&lt;br /&gt;
* Producción&lt;br /&gt;
* Preproducción&lt;br /&gt;
* Pruebas&lt;br /&gt;
&lt;br /&gt;
Para cada agente o store de RAG se podrá desplegar un entorno (producción), dos o los tres entornos&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #f0fff4; border: 3px solid #c6f6d5; padding: 1em; border-radius: 4px;width: fit-content; margin-left: 0px&amp;quot;&amp;gt;&lt;br /&gt;
✅ '''Recomendación'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En la mayoría de los casos con disponer de entorno de producción y preproducción tanto para agente como para RAG será suficiente&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Para realizar una gestión completa en vFlow (suponiendo tres entornos y gestión de agentes y RAG), deberemos tener&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Archivo:Gestión RAG.png|1000px|miniaturadeimagen|centro|Gestión RAG en vFlow|link=]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''En orquestador'''&lt;br /&gt;
* Crear '''tres stores''' (pro/pre/pru); en cada store:&lt;br /&gt;
::* En total '''tres loaders'''. Crear un loader por entorno (p.ej /pro/nombrefich). &lt;br /&gt;
::* Subir un primer &amp;quot;nombrefich&amp;quot;&lt;br /&gt;
::::* tipo texto (versión 0)&lt;br /&gt;
::::* el mismo para todos los entornos&lt;br /&gt;
::::* se sube por medios convencionales (p. ej SCP)&lt;br /&gt;
* Asegurar que los stores queden totalmente creados (estado &amp;quot;UPSERTED&amp;quot;)&lt;br /&gt;
* Crear '''tres agentes''' (pro/pre/pru)&lt;br /&gt;
::* Asociar a stores (pro/pre/pru)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''En flow'''&lt;br /&gt;
* Crear '''un agente'''&lt;br /&gt;
::* Vincularlo a los tres agentes de orquestador (pro/pre/pru)&lt;br /&gt;
* Crear '''un store'''&lt;br /&gt;
::* Vinculado a los tres stores de orquestador (pro/pre/pru)&lt;br /&gt;
* Crear '''un loader'''&lt;br /&gt;
::* Loader vinculado a agente de vflow&lt;br /&gt;
::* C_NAME loader coincidirá con los de orquestador (p.ej &amp;quot;nombrefich&amp;quot;)&lt;br /&gt;
::* Subir nueva versión v1 (&amp;quot;.txt&amp;quot;, &amp;quot;.pdf&amp;quot;, &amp;quot;.doc&amp;quot;, &amp;quot;.docx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Diagnósticos ==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/vFlowProxy/vFlowProxy.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En nodo vFlowProxy&lt;br /&gt;
::para cualquier canal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
nc localhost 1131&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En nodo vFlowProxy&lt;br /&gt;
::Monitoriza estado del proceso vflowProxy&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
  &amp;quot;proceso&amp;quot;: {&lt;br /&gt;
    &amp;quot;nombre&amp;quot;: &amp;quot;vFlowProxy&amp;quot;,&lt;br /&gt;
    &amp;quot;version&amp;quot;: &amp;quot;00.00.01&amp;quot;,&lt;br /&gt;
    &amp;quot;inicio_ts&amp;quot;: 1771315153,&lt;br /&gt;
    &amp;quot;inicio_cad&amp;quot;: &amp;quot;20260217 085913&amp;quot;,&lt;br /&gt;
    &amp;quot;log_alarmas_val&amp;quot;: 8,&lt;br /&gt;
    &amp;quot;log_alarma_ultimo_ts&amp;quot;: 1771970401,&lt;br /&gt;
    &amp;quot;log_alarma_ultimo_ts_cad&amp;quot;: &amp;quot;20260224 230001&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;diagnostico&amp;quot;: {&lt;br /&gt;
    &amp;quot;gmp&amp;quot;: {&lt;br /&gt;
      &amp;quot;msj_val&amp;quot;: 1022,&lt;br /&gt;
      &amp;quot;msj_max&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;buf_val&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;buf_max&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;tarea_val&amp;quot;: 7,&lt;br /&gt;
      &amp;quot;tarea_max&amp;quot;: 15&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;tiempo&amp;quot;: {&lt;br /&gt;
      &amp;quot;uptime&amp;quot;: 716665,&lt;br /&gt;
      &amp;quot;uptime_dias&amp;quot;: 8,&lt;br /&gt;
      &amp;quot;uptime_horas&amp;quot;: 7,&lt;br /&gt;
      &amp;quot;uptime_minutos&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;uptime_segundos&amp;quot;: 25&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;wws&amp;quot;: {&lt;br /&gt;
      &amp;quot;conexiones_val&amp;quot;: 0,&lt;br /&gt;
      &amp;quot;conexiones_max_periodo&amp;quot;: 0,&lt;br /&gt;
      &amp;quot;hilos_val&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;hilos_max&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;wsi_cad&amp;quot;: &amp;quot;sesiones=0/200&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;alarmas_nivel_max&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;alarmas&amp;quot;: []&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es relevante la monitorización de sesiones  &amp;lt;code&amp;gt;&amp;quot;wsi_cad&amp;quot;: &amp;quot;sesiones=0/200&amp;quot;&amp;lt;/code&amp;gt; (usadas/máximas)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
asterisk -rv | grep callsquare_name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::en nodo Omnisuite&lt;br /&gt;
::para canal voz&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/xcally/agi-combined.yyyy-mm-dd.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::en nodo Omnisuite&lt;br /&gt;
::para canal voz&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/xcally/routing-combined.yyyy-mm-dd.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::para canal voz&lt;br /&gt;
&lt;br /&gt;
== Para probar desde vFlow ==&lt;br /&gt;
&lt;br /&gt;
En /home/sat/vFlowProxy hay scripts de prueba (se configuran en el vars.sh); para usar los scripts de prueba tendremos que tener también &amp;quot;.ini&amp;quot; en vFlow&lt;br /&gt;
&lt;br /&gt;
Es útil comenzar con&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/home/sat/vFlowProxy/vFlowGetInfo.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
que sin parámetros adicionales confirma el correcto estado de vFlowProxy&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
  &amp;quot;app&amp;quot;: &amp;quot;vFlowProxy&amp;quot;,&lt;br /&gt;
  &amp;quot;version&amp;quot;: &amp;quot;00.00.01&amp;quot;,&lt;br /&gt;
  &amp;quot;sessions_opened&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;sessions_limit&amp;quot;: 200,&lt;br /&gt;
  &amp;quot;sessions_sleep_timeout_s&amp;quot;: 3600,&lt;br /&gt;
  &amp;quot;alarms&amp;quot;: 8&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Integración de vFlow desde Omnisuite ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Descripción general ===&lt;br /&gt;
En Omnisuite, la integración con vFlow, se realiza con el programa vFlowOmnisuite, que podrá ser invocado como ejecutable (más rápido, para debian), o como Python (más universal)&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
    /usr/local/sbin/vFlowOmnisuite (OPCIÓN PREFERENTE)&lt;br /&gt;
    /usr/local/sbin/vFlowOmnisuite.py (LEGACY)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Asociado al programa existen los siguientes ficheros de configuración (.ini):&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; de plataforma''' Omnisuite en vFlow --&amp;gt; Solo contiene uuid de la plataforma; se entrega un &amp;quot;.ini&amp;quot; a modo de ejemplo en &amp;lt;code&amp;gt;/etc/MDtel/vFlow/platform.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE PLATAFORMA&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
   [uuids]&lt;br /&gt;
   platform=1d111530-e22d-11f0-b0f2-5254008bef96&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; por agente''' en vFlow --&amp;gt; Solo contiene uuid del agente según su identificación en vFlow ('''NO''' en un orquestador, por ejemplo flowise); se entrega un &amp;quot;.ini&amp;quot; asociado a un agente &amp;quot;loop&amp;quot; existente en Flowise &amp;lt;code&amp;gt;/etc/MDtel/vFlow/agent_loop_01.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE AGENTE&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
   [uuids]&lt;br /&gt;
   agent=1a3a1020-ea1d-11f0-b4a5-5254008bef96&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; por servicio''' --&amp;gt; Configuración de cada servicio en Omnisuite; se entrega un &amp;quot;.ini&amp;quot; a modo de ejemplo en &amp;lt;code&amp;gt;/etc/MDtel/vFlow/service.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
En cada fichero de servicio configuraremos&lt;br /&gt;
::* Donde está Vflow&lt;br /&gt;
::* Agente&lt;br /&gt;
::* Plataforma&lt;br /&gt;
::* timeout_s --&amp;gt; Importante, es afectado por el LLM&lt;br /&gt;
::* channel_text_type --&amp;gt; IMPORTANTE si el servicio es de texto que esté bien (vacio solo si el servicio es de texto, NO COMENTARLO)&lt;br /&gt;
::* environment --&amp;gt; production, staging, test&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE SERVICIO&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
  [arch_uuids]&lt;br /&gt;
  agent=/etc/MDtel/vFlow/agent_loop_01.ini&lt;br /&gt;
  platform=/etc/MDtel/vFlow/platform.ini&lt;br /&gt;
&lt;br /&gt;
  [vflow]&lt;br /&gt;
  host_port=172.25.129.242:7900&lt;br /&gt;
  timeout_s=20&lt;br /&gt;
  # channel_type=[voice|chat|email]&lt;br /&gt;
  channel_type=chat&lt;br /&gt;
  # environment=[production|staging|test]&lt;br /&gt;
  environment=production&lt;br /&gt;
  language=es&lt;br /&gt;
&lt;br /&gt;
  [omnisuite]&lt;br /&gt;
  # channel_text_type=[chat|mail|sms|whatsup]&lt;br /&gt;
  channel_text_type=chat&lt;br /&gt;
  service_id=vflow_service_id&lt;br /&gt;
  service_name=vflow_service_name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La imagen siguiente muestra el esquema de relación entre orquestador/plataforma/agente/servicio en la plataforma y en vFlow&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Relaciones vFlow plat orq ag serv.png|800px|miniaturadeimagen|centro|Relación orquestador-plataforma-agente-servicio]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Invocación ===&lt;br /&gt;
==== Generales ====&lt;br /&gt;
&lt;br /&gt;
===== Ver configuración =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; configPrint&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
Configuration:&lt;br /&gt;
  agent_arch_uuid=/etc/MDtel/vFlow/agent_fse_rapido.ini&lt;br /&gt;
  agent_uuid=3487af28-1d14-11f1-803c-525400ef204c&lt;br /&gt;
  platform_arch_uuid=/etc/MDtel/vFlow/platform_labomsui.ini&lt;br /&gt;
  platform_uuid=9a54ea74-f050-11f0-bdf1-5254008bef96&lt;br /&gt;
&lt;br /&gt;
  vflow_host_port=labvflow.mdnova.local&lt;br /&gt;
  vflow_timeout_s=50&lt;br /&gt;
  vflow_environment=production&lt;br /&gt;
  vflow_channel_type=voice&lt;br /&gt;
  vflow_language=es&lt;br /&gt;
&lt;br /&gt;
  omnisuite_channel_text_type=chat&lt;br /&gt;
  omnisuite_service_id=287&lt;br /&gt;
  omnisuite_service_name=desarrollo&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;errorCad&amp;quot;: &amp;quot;OK&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Ver versión =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite version&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
00.00.02&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Para canales de texto ====&lt;br /&gt;
&lt;br /&gt;
Para canales de texto en Omnisuite existe un único Comando de invocación &amp;quot;omnisuiteText&amp;quot;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; omnisuiteText &amp;lt;omnisuite_id&amp;gt; &amp;lt;omnisuite_websiteId&amp;gt; &amp;lt;omnisuite_createdAt&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt; &amp;lt;question&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros ( Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Obligatoriedad !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;config_arch&amp;gt;` || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_id&amp;gt;` || OBLIGATORIO || Identificativo de la interacción en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_websiteId&amp;gt;` || OBLIGATORIO || Identificativo del servicio en Omnisuite (ej. website id en chat)&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_createdAt&amp;gt;` || OBLIGATORIO || Creación de la interacción&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_id&amp;gt;` || OPCIONAL || Id de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_phone_number&amp;gt;` || OPCIONAL || Telf de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_email&amp;gt;` || OPCIONAL || Email de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;question&amp;gt;` || OBLIGATORIO || Texto a enviar al orquestado (p. ej. Flowise)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
 &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
 &amp;quot;session&amp;quot;: &amp;quot;e926548d-fdcf-11f0-a793-525400ef204c&amp;quot;,&lt;br /&gt;
 &amp;quot;language&amp;quot;: &amp;quot;es&amp;quot;,&lt;br /&gt;
 &amp;quot;response&amp;quot;: &amp;quot;HOLA&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Para canales de voz ====&lt;br /&gt;
Para  canales de voz, existen comandos para &amp;quot;abrir sesión&amp;quot;, &amp;quot;enviar texto&amp;quot; y &amp;quot;cerrar sesión&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Abrir sesión =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; sessionOpen &amp;lt;omnisuite_UniqueId&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros (Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Requisito !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;omnisuite_UniqueId&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Unique_ID de asterisk de la llamada en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_id&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Id de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_phone_number&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Telf de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_email&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Email de cliente en Omnisuite&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
    &amp;quot;session&amp;quot;: &amp;quot;ec73df29-f08a-11f0-a8ec-525400ef204c&amp;quot;,&lt;br /&gt;
    &amp;quot;platform_id&amp;quot;: &amp;quot;146&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''El value correspondiente al key &amp;quot;session&amp;quot; deberá ser guardado en una variable para siguientes invocaciones'''&lt;br /&gt;
&lt;br /&gt;
===== Enviar texto =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; textRequest &amp;lt;vflow_session_uuid&amp;gt; &amp;lt;question&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Requisito !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_session_uuid&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Variable &amp;quot;session&amp;quot; almacenada en el &amp;quot;sessionOpen&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;question&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Texto a enviar al orquestado (p. ej. Flowise) (normal, abandoned, other)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
    &amp;quot;session&amp;quot;: &amp;quot;c6f6fad7-f6c1-11f0-a793-525400ef204c&amp;quot;,&lt;br /&gt;
    &amp;quot;language&amp;quot;: &amp;quot;ES&amp;quot;,&lt;br /&gt;
    &amp;quot;response&amp;quot;: &amp;quot;Cristóbal Colón.&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Cerrar sesión=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; sessionClose &amp;lt;vflow_session_uuid&amp;gt; &amp;lt;vflow_cause&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros  (Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Estado !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_session_uuid&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Variable &amp;quot;session&amp;quot; almacenada en el &amp;quot;sessionOpen&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_cause&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || (normal, abandoned, expired, other)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 104,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;Wrong session&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ejemplos para omnisuite ===&lt;br /&gt;
&lt;br /&gt;
==== Ejemplo de chat ====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_chat.ini&amp;quot; &amp;quot;omnisuiteText&amp;quot; &amp;quot;{{interaction.id}}&amp;quot; &amp;quot;{{account.id}}&amp;quot; &amp;quot;{{interaction.createdAt}}&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;{{message.body}}&amp;quot; | jq -r '.response'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Ejemplo de voz ====&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen cally square.jpg|1024px|none|miniatura|Ejemplo de flujo de Cally Square]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_voice.ini&amp;quot; &amp;quot;sessionOpen&amp;quot; &amp;quot;{UNIQUEID}&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; |  jq -r '.session' &amp;lt;/pre&amp;gt;&lt;br /&gt;
::&amp;lt;small&amp;gt;salida del comando almacenado en variable &amp;quot;vflow_sessionopen_response&amp;quot; para su posterior uso en cally square&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen sessionopen.jpg|550px|center|miniatura|Abrir sesión en vFlow]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_desa_voz.ini&amp;quot; &amp;quot;textRequest&amp;quot; &amp;quot;{vflow_sessionopen_response}&amp;quot; &amp;quot;{OPENAI_WHISPER_TRANSCRIPT}&amp;quot; | jq -r '.response'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::&amp;lt;small&amp;gt;la voz se ha transcrito con OpenAI, por eso se usa como parámetro {OPENAI_WHISPER_TRANSCRIPT})&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen textrequest.jpg|550px|center|miniatura|Enviar texto en vFlow]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt; &lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_desa_voz.ini&amp;quot; &amp;quot;sessionClose&amp;quot; &amp;quot;{{vflow_sessionopen_response}}&amp;quot; &amp;quot;normal&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen sessionclose.jpg|900px|center|miniatura|Cerrar sesión en vFlow]]&lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:VIVAit Call]]&lt;br /&gt;
[[Category:Omnisuite]]&lt;br /&gt;
[[Category:IA]]&lt;/div&gt;</summary>
		<author><name>Alfredo.rodriguez</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_de_vFlow&amp;diff=17294</id>
		<title>Manual de operación de vFlow</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_de_vFlow&amp;diff=17294"/>
		<updated>2026-03-27T06:51:07Z</updated>

		<summary type="html">&lt;p&gt;Alfredo.rodriguez: /* Puesta en marcha de nodo vFlow */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Descripción general vFlow ==&lt;br /&gt;
&lt;br /&gt;
vFlow es un módulo de conexión a sistemas de inteligencia artifical para sistemas de comunicaciones unificadas, ya sean sistemas corporativos o contact center&lt;br /&gt;
Gracias a vFlow, las plataformas de UC dispondrán de una solución para comunicarse con sistemas IA utilizando un mismo mecanismo independientemente de la solución de inteligencia artificial que se utilice&lt;br /&gt;
&lt;br /&gt;
Para proporcionar el servicio de manera completa, vFlow (en concreto el orquestador) se conectará a sistemas de inteligencia artificial (LLM) que permitirán desarrollar los agentes definidos en los orquestadores&lt;br /&gt;
&lt;br /&gt;
'''Conceptos:'''&lt;br /&gt;
* Plataforma&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Plataforma de comunicaciones unificadas; por ejemplo Omnisuite o VIVAit Call&lt;br /&gt;
* Orquestador&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Plataforma agéntica de IA (por ejemplo Flowise)&lt;br /&gt;
* vFlowProxy&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Módulo VIVAit que conecta multiples plataformas con múltiples orquestadores&lt;br /&gt;
* LLM&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Modelo de lenguaje natural que usará un orquestadores&lt;br /&gt;
* Agente&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Cada uno de los flujos creados en vFlow; corresponde a un par plataforma/agentflow de orquestador&lt;br /&gt;
* Servicio&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Cada elemento de negocio en la plataforma de CU (por ejemplo VDN)&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Arquitectura Vflow - v2.jpg|1000px|center|Arquitecura de vFlow]]&lt;br /&gt;
&lt;br /&gt;
Los '''módulos principales''' de vFlow son:&lt;br /&gt;
* vFlowProxy: Recibe las conexiones de los sistemas de comunicaciones unificadas, y conecta con los orquestadores de Inteligencia Artificial de manera segura y adaptada al tipo de servicio; el acceso a vFlow Proxy desde las plataformas se realizará mediante:&lt;br /&gt;
* Programa cliente: Se utiliza en el sistema de comunicaciones unificadas (actualmente VIVAit Call y Omnsisuite) para invocar a vFlow&lt;br /&gt;
* API REST: Alternativa al programa cliente, vFlowProxy proporciona una API REST que facilita que cualquier plataforma pueda comunicarse mediante un procedimiento estándar y documentado&lt;br /&gt;
* Portal de administración vFlow: Permite visualizar las interaciones realizadas y configurar el sistema&lt;br /&gt;
* Orquestador de IA: Herramienta de Inteligencia Artificial que permitirá la creación de aplicaciones personalizadas (agentes)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Otros elementos''' relevantes serán:&lt;br /&gt;
* Base de datos vFlow:&lt;br /&gt;
:* Almacena información sobre sesiones y transacciones realizadas&lt;br /&gt;
:* Almacena información de configuración sobre vFlow&lt;br /&gt;
:* Gestiona el RAG de las inteligencias artificiales a usar&lt;br /&gt;
&lt;br /&gt;
== Puesta en marcha de nodo vFlow ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Existe un nodo vFlow en los repositorios habituales proporcionados&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para '''dar de alta nodo vflow en un cliente''' hay que:&lt;br /&gt;
* Configurar IP (por defecto la maquina va configurada por DHCP)&lt;br /&gt;
* Adaptar el firewall, para ello REVISAR el fichero &amp;lt;code&amp;gt;/etc/firewall/vars.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
* Certificados validos en apache&lt;br /&gt;
* REVISAR ficheros &amp;lt;code&amp;gt;/etc/apache2/sites-enabled/flowise.conf&amp;lt;/code&amp;gt; y &amp;lt;code&amp;gt;/etc/apache2/sites-enabled/vFlow.conf&amp;lt;/code&amp;gt; la variable &amp;lt;code&amp;gt;ServerName&amp;lt;/code&amp;gt; (nombre valido de la maquina)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Accesos vFlow''' (se debe cambiar tras instalación):&lt;br /&gt;
* Usuario ssh y de SO por defecto es sat y clave a proporcionar.&lt;br /&gt;
* Para el portal de flowise las credenciales son usuario: vfloadmin@vflow.com clave: A proporcionar&lt;br /&gt;
* Para el portal de vflow las credenciales son usaurio sat y clave a proporcionar.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Accesos BBDD vFlow'''&lt;br /&gt;
* Para acceder a la base de datos desde el workbenck solo desde localhost (o tunel):&lt;br /&gt;
* BBDD Vlfow (admin)  vflowadmin // clave a proporcionar&lt;br /&gt;
* BBDD Vlfow (no_admin)  vflow //  clave a proporcionar&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Portal orquestador Flowise'''&lt;br /&gt;
&lt;br /&gt;
ubicado en https://host.cliente.xx:4567&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #fef6e7; border: 1px solid #fbd68a; padding: 1em; border-radius: 4px;width: fit-content; margin-left: 50px&amp;quot;&amp;gt;&lt;br /&gt;
'''⚠️ ATENCION !!'''&lt;br /&gt;
'''Los cambios en tablas de configuración de BBDD de vFlow (orquestadores, plataformas, agentes) requieren reinicio del servicio vFlowProxy'''&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', 'Monaco', 'Courier New', monospace;&amp;quot;&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service status&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service stop&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service start&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El fichero de configuración del demonio &amp;lt;cvode&amp;gt;vFlowProxy&amp;lt;/code&amp;gt; se encuentra en &amp;lt;code&amp;gt;/etc/MDtel/vFlowProxy.conf&amp;lt;/code&amp;gt;, si bien este fichero de configuración no se modificará habitualmente (los parámetros generales de configuración de vFlowProxy se encuentran en la BBDD de vFlow)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Relevante para poder '''poner en marcha un loader''':&lt;br /&gt;
* Subir el fichero inicial previamente a la carpeta destino según entorno (p. ej &amp;lt;code&amp;gt;/var/www/html/storages/production&amp;lt;/code&amp;gt;&lt;br /&gt;
* Tipo de loader --&amp;gt; API&lt;br /&gt;
* Método --&amp;gt; GET&lt;br /&gt;
* URL --&amp;gt; (ejemplo: http://172.25.129.242/storages/test/fichero-pru.txt)&lt;br /&gt;
::* Existirán URL &amp;quot;production&amp;quot;, &amp;quot;staging&amp;quot; y &amp;quot;test&amp;quot;&lt;br /&gt;
* Text Splitter: Recursive&lt;br /&gt;
* Qdrant --&amp;gt; localhost:6333&lt;br /&gt;
&amp;lt;div style=&amp;quot;display:none;&amp;quot;&amp;gt;* Record Manager --&amp;gt; SQLite}}&amp;lt;/div&amp;gt;&lt;br /&gt;
* Record Manager --&amp;gt; MySQL&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Se adjunta imagen a modo de ejemplo&lt;br /&gt;
[[Archivo:Alta loader vflow.png|800px|miniaturadeimagen|no|alta loader vFlow|link=]]&lt;br /&gt;
[[Archivo:Alta API Loader mysql|800px|miniaturadeimagen|centro|Alta API Loader_mysql]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gestión en vFlow ==&lt;br /&gt;
vFlow prevé la existencia de tres entornos que permita hacer una gestión segura de agentes y RAG:&lt;br /&gt;
&lt;br /&gt;
* Producción&lt;br /&gt;
* Preproducción&lt;br /&gt;
* Pruebas&lt;br /&gt;
&lt;br /&gt;
Para cada agente o store de RAG se podrá desplegar un entorno (producción), dos o los tres entornos&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #f0fff4; border: 3px solid #c6f6d5; padding: 1em; border-radius: 4px;width: fit-content; margin-left: 0px&amp;quot;&amp;gt;&lt;br /&gt;
✅ '''Recomendación'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En la mayoría de los casos con disponer de entorno de producción y preproducción tanto para agente como para RAG será suficiente&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Para realizar una gestión completa en vFlow (suponiendo tres entornos y gestión de agentes y RAG), deberemos tener&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Archivo:Gestión RAG.png|1000px|miniaturadeimagen|centro|Gestión RAG en vFlow|link=]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''En orquestador'''&lt;br /&gt;
* Crear '''tres stores''' (pro/pre/pru); en cada store:&lt;br /&gt;
::* En total '''tres loaders'''. Crear un loader por entorno (p.ej /pro/nombrefich). &lt;br /&gt;
::* Subir un primer &amp;quot;nombrefich&amp;quot;&lt;br /&gt;
::::* tipo texto (versión 0)&lt;br /&gt;
::::* el mismo para todos los entornos&lt;br /&gt;
::::* se sube por medios convencionales (p. ej SCP)&lt;br /&gt;
* Asegurar que los stores queden totalmente creados (estado &amp;quot;UPSERTED&amp;quot;)&lt;br /&gt;
* Crear '''tres agentes''' (pro/pre/pru)&lt;br /&gt;
::* Asociar a stores (pro/pre/pru)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''En flow'''&lt;br /&gt;
* Crear '''un agente'''&lt;br /&gt;
::* Vincularlo a los tres agentes de orquestador (pro/pre/pru)&lt;br /&gt;
* Crear '''un store'''&lt;br /&gt;
::* Vinculado a los tres stores de orquestador (pro/pre/pru)&lt;br /&gt;
* Crear '''un loader'''&lt;br /&gt;
::* Loader vinculado a agente de vflow&lt;br /&gt;
::* C_NAME loader coincidirá con los de orquestador (p.ej &amp;quot;nombrefich&amp;quot;)&lt;br /&gt;
::* Subir nueva versión v1 (&amp;quot;.txt&amp;quot;, &amp;quot;.pdf&amp;quot;, &amp;quot;.doc&amp;quot;, &amp;quot;.docx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Diagnósticos ==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/vFlowProxy/vFlowProxy.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En nodo vFlowProxy&lt;br /&gt;
::para cualquier canal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
nc localhost 1131&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En nodo vFlowProxy&lt;br /&gt;
::Monitoriza estado del proceso vflowProxy&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
  &amp;quot;proceso&amp;quot;: {&lt;br /&gt;
    &amp;quot;nombre&amp;quot;: &amp;quot;vFlowProxy&amp;quot;,&lt;br /&gt;
    &amp;quot;version&amp;quot;: &amp;quot;00.00.01&amp;quot;,&lt;br /&gt;
    &amp;quot;inicio_ts&amp;quot;: 1771315153,&lt;br /&gt;
    &amp;quot;inicio_cad&amp;quot;: &amp;quot;20260217 085913&amp;quot;,&lt;br /&gt;
    &amp;quot;log_alarmas_val&amp;quot;: 8,&lt;br /&gt;
    &amp;quot;log_alarma_ultimo_ts&amp;quot;: 1771970401,&lt;br /&gt;
    &amp;quot;log_alarma_ultimo_ts_cad&amp;quot;: &amp;quot;20260224 230001&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;diagnostico&amp;quot;: {&lt;br /&gt;
    &amp;quot;gmp&amp;quot;: {&lt;br /&gt;
      &amp;quot;msj_val&amp;quot;: 1022,&lt;br /&gt;
      &amp;quot;msj_max&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;buf_val&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;buf_max&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;tarea_val&amp;quot;: 7,&lt;br /&gt;
      &amp;quot;tarea_max&amp;quot;: 15&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;tiempo&amp;quot;: {&lt;br /&gt;
      &amp;quot;uptime&amp;quot;: 716665,&lt;br /&gt;
      &amp;quot;uptime_dias&amp;quot;: 8,&lt;br /&gt;
      &amp;quot;uptime_horas&amp;quot;: 7,&lt;br /&gt;
      &amp;quot;uptime_minutos&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;uptime_segundos&amp;quot;: 25&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;wws&amp;quot;: {&lt;br /&gt;
      &amp;quot;conexiones_val&amp;quot;: 0,&lt;br /&gt;
      &amp;quot;conexiones_max_periodo&amp;quot;: 0,&lt;br /&gt;
      &amp;quot;hilos_val&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;hilos_max&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;wsi_cad&amp;quot;: &amp;quot;sesiones=0/200&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;alarmas_nivel_max&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;alarmas&amp;quot;: []&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es relevante la monitorización de sesiones  &amp;lt;code&amp;gt;&amp;quot;wsi_cad&amp;quot;: &amp;quot;sesiones=0/200&amp;quot;&amp;lt;/code&amp;gt; (usadas/máximas)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
asterisk -rv | grep callsquare_name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::en nodo Omnisuite&lt;br /&gt;
::para canal voz&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/xcally/agi-combined.yyyy-mm-dd.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::en nodo Omnisuite&lt;br /&gt;
::para canal voz&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/xcally/routing-combined.yyyy-mm-dd.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::para canal voz&lt;br /&gt;
&lt;br /&gt;
== Para probar desde vFlow ==&lt;br /&gt;
&lt;br /&gt;
En /home/sat/vFlowProxy hay scripts de prueba (se configuran en el vars.sh); para usar los scripts de prueba tendremos que tener también &amp;quot;.ini&amp;quot; en vFlow&lt;br /&gt;
&lt;br /&gt;
Es útil comenzar con&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/home/sat/vFlowProxy/vFlowGetInfo.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
que sin parámetros adicionales confirma el correcto estado de vFlowProxy&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
  &amp;quot;app&amp;quot;: &amp;quot;vFlowProxy&amp;quot;,&lt;br /&gt;
  &amp;quot;version&amp;quot;: &amp;quot;00.00.01&amp;quot;,&lt;br /&gt;
  &amp;quot;sessions_opened&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;sessions_limit&amp;quot;: 200,&lt;br /&gt;
  &amp;quot;sessions_sleep_timeout_s&amp;quot;: 3600,&lt;br /&gt;
  &amp;quot;alarms&amp;quot;: 8&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Integración de vFlow desde Omnisuite ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Descripción general ===&lt;br /&gt;
En Omnisuite, la integración con vFlow, se realiza con el programa vFlowOmnisuite, que podrá ser invocado como ejecutable (más rápido, para debian), o como Python (más universal)&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
    /usr/local/sbin/vFlowOmnisuite (OPCIÓN PREFERENTE)&lt;br /&gt;
    /usr/local/sbin/vFlowOmnisuite.py (LEGACY)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Asociado al programa existen los siguientes ficheros de configuración (.ini):&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; de plataforma''' Omnisuite en vFlow --&amp;gt; Solo contiene uuid de la plataforma; se entrega un &amp;quot;.ini&amp;quot; a modo de ejemplo en &amp;lt;code&amp;gt;/etc/MDtel/vFlow/platform.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE PLATAFORMA&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
   [uuids]&lt;br /&gt;
   platform=1d111530-e22d-11f0-b0f2-5254008bef96&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; por agente''' en vFlow --&amp;gt; Solo contiene uuid del agente según su identificación en vFlow ('''NO''' en un orquestador, por ejemplo flowise); se entrega un &amp;quot;.ini&amp;quot; asociado a un agente &amp;quot;loop&amp;quot; existente en Flowise &amp;lt;code&amp;gt;/etc/MDtel/vFlow/agent_loop_01.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE AGENTE&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
   [uuids]&lt;br /&gt;
   agent=1a3a1020-ea1d-11f0-b4a5-5254008bef96&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; por servicio''' --&amp;gt; Configuración de cada servicio en Omnisuite; se entrega un &amp;quot;.ini&amp;quot; a modo de ejemplo en &amp;lt;code&amp;gt;/etc/MDtel/vFlow/service.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
En cada fichero de servicio configuraremos&lt;br /&gt;
::* Donde está Vflow&lt;br /&gt;
::* Agente&lt;br /&gt;
::* Plataforma&lt;br /&gt;
::* timeout_s --&amp;gt; Importante, es afectado por el LLM&lt;br /&gt;
::* channel_text_type --&amp;gt; IMPORTANTE si el servicio es de texto que esté bien (vacio solo si el servicio es de texto, NO COMENTARLO)&lt;br /&gt;
::* environment --&amp;gt; production, staging, test&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE SERVICIO&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
  [arch_uuids]&lt;br /&gt;
  agent=/etc/MDtel/vFlow/agent_loop_01.ini&lt;br /&gt;
  platform=/etc/MDtel/vFlow/platform.ini&lt;br /&gt;
&lt;br /&gt;
  [vflow]&lt;br /&gt;
  host_port=172.25.129.242:7900&lt;br /&gt;
  timeout_s=20&lt;br /&gt;
  # channel_type=[voice|chat|email]&lt;br /&gt;
  channel_type=chat&lt;br /&gt;
  # environment=[production|staging|test]&lt;br /&gt;
  environment=production&lt;br /&gt;
  language=es&lt;br /&gt;
&lt;br /&gt;
  [omnisuite]&lt;br /&gt;
  # channel_text_type=[chat|mail|sms|whatsup]&lt;br /&gt;
  channel_text_type=chat&lt;br /&gt;
  service_id=vflow_service_id&lt;br /&gt;
  service_name=vflow_service_name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La imagen siguiente muestra el esquema de relación entre orquestador/plataforma/agente/servicio en la plataforma y en vFlow&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Relaciones vFlow plat orq ag serv.png|800px|miniaturadeimagen|centro|Relación orquestador-plataforma-agente-servicio]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Invocación ===&lt;br /&gt;
==== Generales ====&lt;br /&gt;
&lt;br /&gt;
===== Ver configuración =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; configPrint&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
Configuration:&lt;br /&gt;
  agent_arch_uuid=/etc/MDtel/vFlow/agent_fse_rapido.ini&lt;br /&gt;
  agent_uuid=3487af28-1d14-11f1-803c-525400ef204c&lt;br /&gt;
  platform_arch_uuid=/etc/MDtel/vFlow/platform_labomsui.ini&lt;br /&gt;
  platform_uuid=9a54ea74-f050-11f0-bdf1-5254008bef96&lt;br /&gt;
&lt;br /&gt;
  vflow_host_port=labvflow.mdnova.local&lt;br /&gt;
  vflow_timeout_s=50&lt;br /&gt;
  vflow_environment=production&lt;br /&gt;
  vflow_channel_type=voice&lt;br /&gt;
  vflow_language=es&lt;br /&gt;
&lt;br /&gt;
  omnisuite_channel_text_type=chat&lt;br /&gt;
  omnisuite_service_id=287&lt;br /&gt;
  omnisuite_service_name=desarrollo&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;errorCad&amp;quot;: &amp;quot;OK&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Ver versión =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite version&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
00.00.02&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Para canales de texto ====&lt;br /&gt;
&lt;br /&gt;
Para canales de texto en Omnisuite existe un único Comando de invocación &amp;quot;omnisuiteText&amp;quot;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; omnisuiteText &amp;lt;omnisuite_id&amp;gt; &amp;lt;omnisuite_websiteId&amp;gt; &amp;lt;omnisuite_createdAt&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt; &amp;lt;question&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros ( Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Obligatoriedad !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;config_arch&amp;gt;` || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_id&amp;gt;` || OBLIGATORIO || Identificativo de la interacción en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_websiteId&amp;gt;` || OBLIGATORIO || Identificativo del servicio en Omnisuite (ej. website id en chat)&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_createdAt&amp;gt;` || OBLIGATORIO || Creación de la interacción&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_id&amp;gt;` || OPCIONAL || Id de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_phone_number&amp;gt;` || OPCIONAL || Telf de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_email&amp;gt;` || OPCIONAL || Email de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;question&amp;gt;` || OBLIGATORIO || Texto a enviar al orquestado (p. ej. Flowise)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
 &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
 &amp;quot;session&amp;quot;: &amp;quot;e926548d-fdcf-11f0-a793-525400ef204c&amp;quot;,&lt;br /&gt;
 &amp;quot;language&amp;quot;: &amp;quot;es&amp;quot;,&lt;br /&gt;
 &amp;quot;response&amp;quot;: &amp;quot;HOLA&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Para canales de voz ====&lt;br /&gt;
Para  canales de voz, existen comandos para &amp;quot;abrir sesión&amp;quot;, &amp;quot;enviar texto&amp;quot; y &amp;quot;cerrar sesión&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Abrir sesión =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; sessionOpen &amp;lt;omnisuite_UniqueId&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros (Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Requisito !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;omnisuite_UniqueId&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Unique_ID de asterisk de la llamada en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_id&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Id de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_phone_number&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Telf de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_email&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Email de cliente en Omnisuite&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
    &amp;quot;session&amp;quot;: &amp;quot;ec73df29-f08a-11f0-a8ec-525400ef204c&amp;quot;,&lt;br /&gt;
    &amp;quot;platform_id&amp;quot;: &amp;quot;146&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''El value correspondiente al key &amp;quot;session&amp;quot; deberá ser guardado en una variable para siguientes invocaciones'''&lt;br /&gt;
&lt;br /&gt;
===== Enviar texto =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; textRequest &amp;lt;vflow_session_uuid&amp;gt; &amp;lt;question&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Requisito !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_session_uuid&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Variable &amp;quot;session&amp;quot; almacenada en el &amp;quot;sessionOpen&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;question&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Texto a enviar al orquestado (p. ej. Flowise) (normal, abandoned, other)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
    &amp;quot;session&amp;quot;: &amp;quot;c6f6fad7-f6c1-11f0-a793-525400ef204c&amp;quot;,&lt;br /&gt;
    &amp;quot;language&amp;quot;: &amp;quot;ES&amp;quot;,&lt;br /&gt;
    &amp;quot;response&amp;quot;: &amp;quot;Cristóbal Colón.&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Cerrar sesión=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; sessionClose &amp;lt;vflow_session_uuid&amp;gt; &amp;lt;vflow_cause&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros  (Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Estado !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_session_uuid&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Variable &amp;quot;session&amp;quot; almacenada en el &amp;quot;sessionOpen&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_cause&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || (normal, abandoned, expired, other)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 104,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;Wrong session&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ejemplos para omnisuite ===&lt;br /&gt;
&lt;br /&gt;
==== Ejemplo de chat ====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_chat.ini&amp;quot; &amp;quot;omnisuiteText&amp;quot; &amp;quot;{{interaction.id}}&amp;quot; &amp;quot;{{account.id}}&amp;quot; &amp;quot;{{interaction.createdAt}}&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;{{message.body}}&amp;quot; | jq -r '.response'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Ejemplo de voz ====&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen cally square.jpg|1024px|none|miniatura|Ejemplo de flujo de Cally Square]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_voice.ini&amp;quot; &amp;quot;sessionOpen&amp;quot; &amp;quot;{UNIQUEID}&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; |  jq -r '.session' &amp;lt;/pre&amp;gt;&lt;br /&gt;
::&amp;lt;small&amp;gt;salida del comando almacenado en variable &amp;quot;vflow_sessionopen_response&amp;quot; para su posterior uso en cally square&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen sessionopen.jpg|550px|center|miniatura|Abrir sesión en vFlow]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_desa_voz.ini&amp;quot; &amp;quot;textRequest&amp;quot; &amp;quot;{vflow_sessionopen_response}&amp;quot; &amp;quot;{OPENAI_WHISPER_TRANSCRIPT}&amp;quot; | jq -r '.response'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::&amp;lt;small&amp;gt;la voz se ha transcrito con OpenAI, por eso se usa como parámetro {OPENAI_WHISPER_TRANSCRIPT})&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen textrequest.jpg|550px|center|miniatura|Enviar texto en vFlow]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt; &lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_desa_voz.ini&amp;quot; &amp;quot;sessionClose&amp;quot; &amp;quot;{{vflow_sessionopen_response}}&amp;quot; &amp;quot;normal&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen sessionclose.jpg|900px|center|miniatura|Cerrar sesión en vFlow]]&lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:VIVAit Call]]&lt;br /&gt;
[[Category:Omnisuite]]&lt;br /&gt;
[[Category:IA]]&lt;/div&gt;</summary>
		<author><name>Alfredo.rodriguez</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Archivo:Alta_loader_vflow.png&amp;diff=17293</id>
		<title>Archivo:Alta loader vflow.png</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Archivo:Alta_loader_vflow.png&amp;diff=17293"/>
		<updated>2026-03-27T06:49:32Z</updated>

		<summary type="html">&lt;p&gt;Alfredo.rodriguez: Alfredo.rodriguez subió una nueva versión de Archivo:Alta loader vflow.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Alta loader vflow&lt;/div&gt;</summary>
		<author><name>Alfredo.rodriguez</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Archivo:Alta_loader_vflow.png&amp;diff=17292</id>
		<title>Archivo:Alta loader vflow.png</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Archivo:Alta_loader_vflow.png&amp;diff=17292"/>
		<updated>2026-03-27T06:48:12Z</updated>

		<summary type="html">&lt;p&gt;Alfredo.rodriguez: Alfredo.rodriguez revirtió Archivo:Alta loader vflow.png a una versión anterior&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Alta loader vflow&lt;/div&gt;</summary>
		<author><name>Alfredo.rodriguez</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Archivo:Alta_loader_vflow.png&amp;diff=17291</id>
		<title>Archivo:Alta loader vflow.png</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Archivo:Alta_loader_vflow.png&amp;diff=17291"/>
		<updated>2026-03-27T06:45:02Z</updated>

		<summary type="html">&lt;p&gt;Alfredo.rodriguez: Alfredo.rodriguez subió una nueva versión de Archivo:Alta loader vflow.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Alta loader vflow&lt;/div&gt;</summary>
		<author><name>Alfredo.rodriguez</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_de_vFlow&amp;diff=17290</id>
		<title>Manual de operación de vFlow</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_de_vFlow&amp;diff=17290"/>
		<updated>2026-03-27T06:44:31Z</updated>

		<summary type="html">&lt;p&gt;Alfredo.rodriguez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Descripción general vFlow ==&lt;br /&gt;
&lt;br /&gt;
vFlow es un módulo de conexión a sistemas de inteligencia artifical para sistemas de comunicaciones unificadas, ya sean sistemas corporativos o contact center&lt;br /&gt;
Gracias a vFlow, las plataformas de UC dispondrán de una solución para comunicarse con sistemas IA utilizando un mismo mecanismo independientemente de la solución de inteligencia artificial que se utilice&lt;br /&gt;
&lt;br /&gt;
Para proporcionar el servicio de manera completa, vFlow (en concreto el orquestador) se conectará a sistemas de inteligencia artificial (LLM) que permitirán desarrollar los agentes definidos en los orquestadores&lt;br /&gt;
&lt;br /&gt;
'''Conceptos:'''&lt;br /&gt;
* Plataforma&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Plataforma de comunicaciones unificadas; por ejemplo Omnisuite o VIVAit Call&lt;br /&gt;
* Orquestador&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Plataforma agéntica de IA (por ejemplo Flowise)&lt;br /&gt;
* vFlowProxy&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Módulo VIVAit que conecta multiples plataformas con múltiples orquestadores&lt;br /&gt;
* LLM&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Modelo de lenguaje natural que usará un orquestadores&lt;br /&gt;
* Agente&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Cada uno de los flujos creados en vFlow; corresponde a un par plataforma/agentflow de orquestador&lt;br /&gt;
* Servicio&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Cada elemento de negocio en la plataforma de CU (por ejemplo VDN)&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Arquitectura Vflow - v2.jpg|1000px|center|Arquitecura de vFlow]]&lt;br /&gt;
&lt;br /&gt;
Los '''módulos principales''' de vFlow son:&lt;br /&gt;
* vFlowProxy: Recibe las conexiones de los sistemas de comunicaciones unificadas, y conecta con los orquestadores de Inteligencia Artificial de manera segura y adaptada al tipo de servicio; el acceso a vFlow Proxy desde las plataformas se realizará mediante:&lt;br /&gt;
* Programa cliente: Se utiliza en el sistema de comunicaciones unificadas (actualmente VIVAit Call y Omnsisuite) para invocar a vFlow&lt;br /&gt;
* API REST: Alternativa al programa cliente, vFlowProxy proporciona una API REST que facilita que cualquier plataforma pueda comunicarse mediante un procedimiento estándar y documentado&lt;br /&gt;
* Portal de administración vFlow: Permite visualizar las interaciones realizadas y configurar el sistema&lt;br /&gt;
* Orquestador de IA: Herramienta de Inteligencia Artificial que permitirá la creación de aplicaciones personalizadas (agentes)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Otros elementos''' relevantes serán:&lt;br /&gt;
* Base de datos vFlow:&lt;br /&gt;
:* Almacena información sobre sesiones y transacciones realizadas&lt;br /&gt;
:* Almacena información de configuración sobre vFlow&lt;br /&gt;
:* Gestiona el RAG de las inteligencias artificiales a usar&lt;br /&gt;
&lt;br /&gt;
== Puesta en marcha de nodo vFlow ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Existe un nodo vFlow en los repositorios habituales proporcionados&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para '''dar de alta nodo vflow en un cliente''' hay que:&lt;br /&gt;
* Configurar IP (por defecto la maquina va configurada por DHCP)&lt;br /&gt;
* Adaptar el firewall, para ello REVISAR el fichero &amp;lt;code&amp;gt;/etc/firewall/vars.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
* Certificados validos en apache&lt;br /&gt;
* REVISAR ficheros &amp;lt;code&amp;gt;/etc/apache2/sites-enabled/flowise.conf&amp;lt;/code&amp;gt; y &amp;lt;code&amp;gt;/etc/apache2/sites-enabled/vFlow.conf&amp;lt;/code&amp;gt; la variable &amp;lt;code&amp;gt;ServerName&amp;lt;/code&amp;gt; (nombre valido de la maquina)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Accesos vFlow''' (se debe cambiar tras instalación):&lt;br /&gt;
* Usuario ssh y de SO por defecto es sat y clave a proporcionar.&lt;br /&gt;
* Para el portal de flowise las credenciales son usuario: vfloadmin@vflow.com clave: A proporcionar&lt;br /&gt;
* Para el portal de vflow las credenciales son usaurio sat y clave a proporcionar.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Accesos BBDD vFlow'''&lt;br /&gt;
* Para acceder a la base de datos desde el workbenck solo desde localhost (o tunel):&lt;br /&gt;
* BBDD Vlfow (admin)  vflowadmin // clave a proporcionar&lt;br /&gt;
* BBDD Vlfow (no_admin)  vflow //  clave a proporcionar&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Portal orquestador Flowise'''&lt;br /&gt;
&lt;br /&gt;
ubicado en https://host.cliente.xx:4567&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #fef6e7; border: 1px solid #fbd68a; padding: 1em; border-radius: 4px;width: fit-content; margin-left: 50px&amp;quot;&amp;gt;&lt;br /&gt;
'''⚠️ ATENCION !!'''&lt;br /&gt;
'''Los cambios en tablas de configuración de BBDD de vFlow (orquestadores, plataformas, agentes) requieren reinicio del servicio vFlowProxy'''&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', 'Monaco', 'Courier New', monospace;&amp;quot;&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service status&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service stop&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service start&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El fichero de configuración del demonio &amp;lt;cvode&amp;gt;vFlowProxy&amp;lt;/code&amp;gt; se encuentra en &amp;lt;code&amp;gt;/etc/MDtel/vFlowProxy.conf&amp;lt;/code&amp;gt;, si bien este fichero de configuración no se modificará habitualmente (los parámetros generales de configuración de vFlowProxy se encuentran en la BBDD de vFlow)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Relevante para poder '''poner en marcha un loader''':&lt;br /&gt;
* Subir el fichero inicial previamente a la carpeta destino según entorno (p. ej &amp;lt;code&amp;gt;/var/www/html/storages/production&amp;lt;/code&amp;gt;&lt;br /&gt;
* Tipo de loader --&amp;gt; API&lt;br /&gt;
* Método --&amp;gt; GET&lt;br /&gt;
* URL --&amp;gt; (ejemplo: http://172.25.129.242/storages/test/fichero-pru.txt)&lt;br /&gt;
::* Existirán URL &amp;quot;production&amp;quot;, &amp;quot;staging&amp;quot; y &amp;quot;test&amp;quot;&lt;br /&gt;
* Text Splitter: Recursive&lt;br /&gt;
* Qdrant --&amp;gt; localhost:6333&lt;br /&gt;
&amp;lt;div style=&amp;quot;display:none;&amp;quot;&amp;gt;* Record Manager --&amp;gt; SQLite}}&amp;lt;/div&amp;gt;&lt;br /&gt;
* Record Manager --&amp;gt; MySQL&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Se adjunta imagen a modo de ejemplo&lt;br /&gt;
[[Archivo:Alta loader vflow.png|800px|miniaturadeimagen|no|alta loader vFlow|link=]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gestión en vFlow ==&lt;br /&gt;
vFlow prevé la existencia de tres entornos que permita hacer una gestión segura de agentes y RAG:&lt;br /&gt;
&lt;br /&gt;
* Producción&lt;br /&gt;
* Preproducción&lt;br /&gt;
* Pruebas&lt;br /&gt;
&lt;br /&gt;
Para cada agente o store de RAG se podrá desplegar un entorno (producción), dos o los tres entornos&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #f0fff4; border: 3px solid #c6f6d5; padding: 1em; border-radius: 4px;width: fit-content; margin-left: 0px&amp;quot;&amp;gt;&lt;br /&gt;
✅ '''Recomendación'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En la mayoría de los casos con disponer de entorno de producción y preproducción tanto para agente como para RAG será suficiente&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Para realizar una gestión completa en vFlow (suponiendo tres entornos y gestión de agentes y RAG), deberemos tener&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Archivo:Gestión RAG.png|1000px|miniaturadeimagen|centro|Gestión RAG en vFlow|link=]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''En orquestador'''&lt;br /&gt;
* Crear '''tres stores''' (pro/pre/pru); en cada store:&lt;br /&gt;
::* En total '''tres loaders'''. Crear un loader por entorno (p.ej /pro/nombrefich). &lt;br /&gt;
::* Subir un primer &amp;quot;nombrefich&amp;quot;&lt;br /&gt;
::::* tipo texto (versión 0)&lt;br /&gt;
::::* el mismo para todos los entornos&lt;br /&gt;
::::* se sube por medios convencionales (p. ej SCP)&lt;br /&gt;
* Asegurar que los stores queden totalmente creados (estado &amp;quot;UPSERTED&amp;quot;)&lt;br /&gt;
* Crear '''tres agentes''' (pro/pre/pru)&lt;br /&gt;
::* Asociar a stores (pro/pre/pru)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''En flow'''&lt;br /&gt;
* Crear '''un agente'''&lt;br /&gt;
::* Vincularlo a los tres agentes de orquestador (pro/pre/pru)&lt;br /&gt;
* Crear '''un store'''&lt;br /&gt;
::* Vinculado a los tres stores de orquestador (pro/pre/pru)&lt;br /&gt;
* Crear '''un loader'''&lt;br /&gt;
::* Loader vinculado a agente de vflow&lt;br /&gt;
::* C_NAME loader coincidirá con los de orquestador (p.ej &amp;quot;nombrefich&amp;quot;)&lt;br /&gt;
::* Subir nueva versión v1 (&amp;quot;.txt&amp;quot;, &amp;quot;.pdf&amp;quot;, &amp;quot;.doc&amp;quot;, &amp;quot;.docx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Diagnósticos ==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/vFlowProxy/vFlowProxy.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En nodo vFlowProxy&lt;br /&gt;
::para cualquier canal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
nc localhost 1131&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En nodo vFlowProxy&lt;br /&gt;
::Monitoriza estado del proceso vflowProxy&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
  &amp;quot;proceso&amp;quot;: {&lt;br /&gt;
    &amp;quot;nombre&amp;quot;: &amp;quot;vFlowProxy&amp;quot;,&lt;br /&gt;
    &amp;quot;version&amp;quot;: &amp;quot;00.00.01&amp;quot;,&lt;br /&gt;
    &amp;quot;inicio_ts&amp;quot;: 1771315153,&lt;br /&gt;
    &amp;quot;inicio_cad&amp;quot;: &amp;quot;20260217 085913&amp;quot;,&lt;br /&gt;
    &amp;quot;log_alarmas_val&amp;quot;: 8,&lt;br /&gt;
    &amp;quot;log_alarma_ultimo_ts&amp;quot;: 1771970401,&lt;br /&gt;
    &amp;quot;log_alarma_ultimo_ts_cad&amp;quot;: &amp;quot;20260224 230001&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;diagnostico&amp;quot;: {&lt;br /&gt;
    &amp;quot;gmp&amp;quot;: {&lt;br /&gt;
      &amp;quot;msj_val&amp;quot;: 1022,&lt;br /&gt;
      &amp;quot;msj_max&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;buf_val&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;buf_max&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;tarea_val&amp;quot;: 7,&lt;br /&gt;
      &amp;quot;tarea_max&amp;quot;: 15&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;tiempo&amp;quot;: {&lt;br /&gt;
      &amp;quot;uptime&amp;quot;: 716665,&lt;br /&gt;
      &amp;quot;uptime_dias&amp;quot;: 8,&lt;br /&gt;
      &amp;quot;uptime_horas&amp;quot;: 7,&lt;br /&gt;
      &amp;quot;uptime_minutos&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;uptime_segundos&amp;quot;: 25&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;wws&amp;quot;: {&lt;br /&gt;
      &amp;quot;conexiones_val&amp;quot;: 0,&lt;br /&gt;
      &amp;quot;conexiones_max_periodo&amp;quot;: 0,&lt;br /&gt;
      &amp;quot;hilos_val&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;hilos_max&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;wsi_cad&amp;quot;: &amp;quot;sesiones=0/200&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;alarmas_nivel_max&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;alarmas&amp;quot;: []&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es relevante la monitorización de sesiones  &amp;lt;code&amp;gt;&amp;quot;wsi_cad&amp;quot;: &amp;quot;sesiones=0/200&amp;quot;&amp;lt;/code&amp;gt; (usadas/máximas)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
asterisk -rv | grep callsquare_name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::en nodo Omnisuite&lt;br /&gt;
::para canal voz&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/xcally/agi-combined.yyyy-mm-dd.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::en nodo Omnisuite&lt;br /&gt;
::para canal voz&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/xcally/routing-combined.yyyy-mm-dd.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::para canal voz&lt;br /&gt;
&lt;br /&gt;
== Para probar desde vFlow ==&lt;br /&gt;
&lt;br /&gt;
En /home/sat/vFlowProxy hay scripts de prueba (se configuran en el vars.sh); para usar los scripts de prueba tendremos que tener también &amp;quot;.ini&amp;quot; en vFlow&lt;br /&gt;
&lt;br /&gt;
Es útil comenzar con&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/home/sat/vFlowProxy/vFlowGetInfo.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
que sin parámetros adicionales confirma el correcto estado de vFlowProxy&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
  &amp;quot;app&amp;quot;: &amp;quot;vFlowProxy&amp;quot;,&lt;br /&gt;
  &amp;quot;version&amp;quot;: &amp;quot;00.00.01&amp;quot;,&lt;br /&gt;
  &amp;quot;sessions_opened&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;sessions_limit&amp;quot;: 200,&lt;br /&gt;
  &amp;quot;sessions_sleep_timeout_s&amp;quot;: 3600,&lt;br /&gt;
  &amp;quot;alarms&amp;quot;: 8&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Integración de vFlow desde Omnisuite ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Descripción general ===&lt;br /&gt;
En Omnisuite, la integración con vFlow, se realiza con el programa vFlowOmnisuite, que podrá ser invocado como ejecutable (más rápido, para debian), o como Python (más universal)&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
    /usr/local/sbin/vFlowOmnisuite (OPCIÓN PREFERENTE)&lt;br /&gt;
    /usr/local/sbin/vFlowOmnisuite.py (LEGACY)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Asociado al programa existen los siguientes ficheros de configuración (.ini):&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; de plataforma''' Omnisuite en vFlow --&amp;gt; Solo contiene uuid de la plataforma; se entrega un &amp;quot;.ini&amp;quot; a modo de ejemplo en &amp;lt;code&amp;gt;/etc/MDtel/vFlow/platform.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE PLATAFORMA&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
   [uuids]&lt;br /&gt;
   platform=1d111530-e22d-11f0-b0f2-5254008bef96&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; por agente''' en vFlow --&amp;gt; Solo contiene uuid del agente según su identificación en vFlow ('''NO''' en un orquestador, por ejemplo flowise); se entrega un &amp;quot;.ini&amp;quot; asociado a un agente &amp;quot;loop&amp;quot; existente en Flowise &amp;lt;code&amp;gt;/etc/MDtel/vFlow/agent_loop_01.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE AGENTE&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
   [uuids]&lt;br /&gt;
   agent=1a3a1020-ea1d-11f0-b4a5-5254008bef96&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; por servicio''' --&amp;gt; Configuración de cada servicio en Omnisuite; se entrega un &amp;quot;.ini&amp;quot; a modo de ejemplo en &amp;lt;code&amp;gt;/etc/MDtel/vFlow/service.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
En cada fichero de servicio configuraremos&lt;br /&gt;
::* Donde está Vflow&lt;br /&gt;
::* Agente&lt;br /&gt;
::* Plataforma&lt;br /&gt;
::* timeout_s --&amp;gt; Importante, es afectado por el LLM&lt;br /&gt;
::* channel_text_type --&amp;gt; IMPORTANTE si el servicio es de texto que esté bien (vacio solo si el servicio es de texto, NO COMENTARLO)&lt;br /&gt;
::* environment --&amp;gt; production, staging, test&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE SERVICIO&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
  [arch_uuids]&lt;br /&gt;
  agent=/etc/MDtel/vFlow/agent_loop_01.ini&lt;br /&gt;
  platform=/etc/MDtel/vFlow/platform.ini&lt;br /&gt;
&lt;br /&gt;
  [vflow]&lt;br /&gt;
  host_port=172.25.129.242:7900&lt;br /&gt;
  timeout_s=20&lt;br /&gt;
  # channel_type=[voice|chat|email]&lt;br /&gt;
  channel_type=chat&lt;br /&gt;
  # environment=[production|staging|test]&lt;br /&gt;
  environment=production&lt;br /&gt;
  language=es&lt;br /&gt;
&lt;br /&gt;
  [omnisuite]&lt;br /&gt;
  # channel_text_type=[chat|mail|sms|whatsup]&lt;br /&gt;
  channel_text_type=chat&lt;br /&gt;
  service_id=vflow_service_id&lt;br /&gt;
  service_name=vflow_service_name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La imagen siguiente muestra el esquema de relación entre orquestador/plataforma/agente/servicio en la plataforma y en vFlow&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Relaciones vFlow plat orq ag serv.png|800px|miniaturadeimagen|centro|Relación orquestador-plataforma-agente-servicio]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Invocación ===&lt;br /&gt;
==== Generales ====&lt;br /&gt;
&lt;br /&gt;
===== Ver configuración =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; configPrint&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
Configuration:&lt;br /&gt;
  agent_arch_uuid=/etc/MDtel/vFlow/agent_fse_rapido.ini&lt;br /&gt;
  agent_uuid=3487af28-1d14-11f1-803c-525400ef204c&lt;br /&gt;
  platform_arch_uuid=/etc/MDtel/vFlow/platform_labomsui.ini&lt;br /&gt;
  platform_uuid=9a54ea74-f050-11f0-bdf1-5254008bef96&lt;br /&gt;
&lt;br /&gt;
  vflow_host_port=labvflow.mdnova.local&lt;br /&gt;
  vflow_timeout_s=50&lt;br /&gt;
  vflow_environment=production&lt;br /&gt;
  vflow_channel_type=voice&lt;br /&gt;
  vflow_language=es&lt;br /&gt;
&lt;br /&gt;
  omnisuite_channel_text_type=chat&lt;br /&gt;
  omnisuite_service_id=287&lt;br /&gt;
  omnisuite_service_name=desarrollo&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;errorCad&amp;quot;: &amp;quot;OK&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Ver versión =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite version&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
00.00.02&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Para canales de texto ====&lt;br /&gt;
&lt;br /&gt;
Para canales de texto en Omnisuite existe un único Comando de invocación &amp;quot;omnisuiteText&amp;quot;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; omnisuiteText &amp;lt;omnisuite_id&amp;gt; &amp;lt;omnisuite_websiteId&amp;gt; &amp;lt;omnisuite_createdAt&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt; &amp;lt;question&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros ( Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Obligatoriedad !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;config_arch&amp;gt;` || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_id&amp;gt;` || OBLIGATORIO || Identificativo de la interacción en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_websiteId&amp;gt;` || OBLIGATORIO || Identificativo del servicio en Omnisuite (ej. website id en chat)&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_createdAt&amp;gt;` || OBLIGATORIO || Creación de la interacción&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_id&amp;gt;` || OPCIONAL || Id de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_phone_number&amp;gt;` || OPCIONAL || Telf de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_email&amp;gt;` || OPCIONAL || Email de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;question&amp;gt;` || OBLIGATORIO || Texto a enviar al orquestado (p. ej. Flowise)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
 &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
 &amp;quot;session&amp;quot;: &amp;quot;e926548d-fdcf-11f0-a793-525400ef204c&amp;quot;,&lt;br /&gt;
 &amp;quot;language&amp;quot;: &amp;quot;es&amp;quot;,&lt;br /&gt;
 &amp;quot;response&amp;quot;: &amp;quot;HOLA&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Para canales de voz ====&lt;br /&gt;
Para  canales de voz, existen comandos para &amp;quot;abrir sesión&amp;quot;, &amp;quot;enviar texto&amp;quot; y &amp;quot;cerrar sesión&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Abrir sesión =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; sessionOpen &amp;lt;omnisuite_UniqueId&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros (Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Requisito !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;omnisuite_UniqueId&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Unique_ID de asterisk de la llamada en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_id&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Id de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_phone_number&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Telf de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_email&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Email de cliente en Omnisuite&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
    &amp;quot;session&amp;quot;: &amp;quot;ec73df29-f08a-11f0-a8ec-525400ef204c&amp;quot;,&lt;br /&gt;
    &amp;quot;platform_id&amp;quot;: &amp;quot;146&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''El value correspondiente al key &amp;quot;session&amp;quot; deberá ser guardado en una variable para siguientes invocaciones'''&lt;br /&gt;
&lt;br /&gt;
===== Enviar texto =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; textRequest &amp;lt;vflow_session_uuid&amp;gt; &amp;lt;question&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Requisito !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_session_uuid&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Variable &amp;quot;session&amp;quot; almacenada en el &amp;quot;sessionOpen&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;question&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Texto a enviar al orquestado (p. ej. Flowise) (normal, abandoned, other)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
    &amp;quot;session&amp;quot;: &amp;quot;c6f6fad7-f6c1-11f0-a793-525400ef204c&amp;quot;,&lt;br /&gt;
    &amp;quot;language&amp;quot;: &amp;quot;ES&amp;quot;,&lt;br /&gt;
    &amp;quot;response&amp;quot;: &amp;quot;Cristóbal Colón.&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Cerrar sesión=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; sessionClose &amp;lt;vflow_session_uuid&amp;gt; &amp;lt;vflow_cause&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros  (Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Estado !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_session_uuid&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Variable &amp;quot;session&amp;quot; almacenada en el &amp;quot;sessionOpen&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_cause&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || (normal, abandoned, expired, other)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 104,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;Wrong session&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ejemplos para omnisuite ===&lt;br /&gt;
&lt;br /&gt;
==== Ejemplo de chat ====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_chat.ini&amp;quot; &amp;quot;omnisuiteText&amp;quot; &amp;quot;{{interaction.id}}&amp;quot; &amp;quot;{{account.id}}&amp;quot; &amp;quot;{{interaction.createdAt}}&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;{{message.body}}&amp;quot; | jq -r '.response'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Ejemplo de voz ====&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen cally square.jpg|1024px|none|miniatura|Ejemplo de flujo de Cally Square]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_voice.ini&amp;quot; &amp;quot;sessionOpen&amp;quot; &amp;quot;{UNIQUEID}&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; |  jq -r '.session' &amp;lt;/pre&amp;gt;&lt;br /&gt;
::&amp;lt;small&amp;gt;salida del comando almacenado en variable &amp;quot;vflow_sessionopen_response&amp;quot; para su posterior uso en cally square&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen sessionopen.jpg|550px|center|miniatura|Abrir sesión en vFlow]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_desa_voz.ini&amp;quot; &amp;quot;textRequest&amp;quot; &amp;quot;{vflow_sessionopen_response}&amp;quot; &amp;quot;{OPENAI_WHISPER_TRANSCRIPT}&amp;quot; | jq -r '.response'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::&amp;lt;small&amp;gt;la voz se ha transcrito con OpenAI, por eso se usa como parámetro {OPENAI_WHISPER_TRANSCRIPT})&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen textrequest.jpg|550px|center|miniatura|Enviar texto en vFlow]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt; &lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_desa_voz.ini&amp;quot; &amp;quot;sessionClose&amp;quot; &amp;quot;{{vflow_sessionopen_response}}&amp;quot; &amp;quot;normal&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen sessionclose.jpg|900px|center|miniatura|Cerrar sesión en vFlow]]&lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:VIVAit Call]]&lt;br /&gt;
[[Category:Omnisuite]]&lt;br /&gt;
[[Category:IA]]&lt;/div&gt;</summary>
		<author><name>Alfredo.rodriguez</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_de_vFlow&amp;diff=17289</id>
		<title>Manual de operación de vFlow</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_de_vFlow&amp;diff=17289"/>
		<updated>2026-03-27T06:43:11Z</updated>

		<summary type="html">&lt;p&gt;Alfredo.rodriguez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Descripción general vFlow ==&lt;br /&gt;
&lt;br /&gt;
vFlow es un módulo de conexión a sistemas de inteligencia artifical para sistemas de comunicaciones unificadas, ya sean sistemas corporativos o contact center&lt;br /&gt;
Gracias a vFlow, las plataformas de UC dispondrán de una solución para comunicarse con sistemas IA utilizando un mismo mecanismo independientemente de la solución de inteligencia artificial que se utilice&lt;br /&gt;
&lt;br /&gt;
Para proporcionar el servicio de manera completa, vFlow (en concreto el orquestador) se conectará a sistemas de inteligencia artificial (LLM) que permitirán desarrollar los agentes definidos en los orquestadores&lt;br /&gt;
&lt;br /&gt;
'''Conceptos:'''&lt;br /&gt;
* Plataforma&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Plataforma de comunicaciones unificadas; por ejemplo Omnisuite o VIVAit Call&lt;br /&gt;
* Orquestador&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Plataforma agéntica de IA (por ejemplo Flowise)&lt;br /&gt;
* vFlowProxy&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Módulo VIVAit que conecta multiples plataformas con múltiples orquestadores&lt;br /&gt;
* LLM&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Modelo de lenguaje natural que usará un orquestadores&lt;br /&gt;
* Agente&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Cada uno de los flujos creados en vFlow; corresponde a un par plataforma/agentflow de orquestador&lt;br /&gt;
* Servicio&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Cada elemento de negocio en la plataforma de CU (por ejemplo VDN)&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Arquitectura Vflow - v2.jpg|1000px|center|Arquitecura de vFlow]]&lt;br /&gt;
&lt;br /&gt;
Los '''módulos principales''' de vFlow son:&lt;br /&gt;
* vFlowProxy: Recibe las conexiones de los sistemas de comunicaciones unificadas, y conecta con los orquestadores de Inteligencia Artificial de manera segura y adaptada al tipo de servicio; el acceso a vFlow Proxy desde las plataformas se realizará mediante:&lt;br /&gt;
* Programa cliente: Se utiliza en el sistema de comunicaciones unificadas (actualmente VIVAit Call y Omnsisuite) para invocar a vFlow&lt;br /&gt;
* API REST: Alternativa al programa cliente, vFlowProxy proporciona una API REST que facilita que cualquier plataforma pueda comunicarse mediante un procedimiento estándar y documentado&lt;br /&gt;
* Portal de administración vFlow: Permite visualizar las interaciones realizadas y configurar el sistema&lt;br /&gt;
* Orquestador de IA: Herramienta de Inteligencia Artificial que permitirá la creación de aplicaciones personalizadas (agentes)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Otros elementos''' relevantes serán:&lt;br /&gt;
* Base de datos vFlow:&lt;br /&gt;
:* Almacena información sobre sesiones y transacciones realizadas&lt;br /&gt;
:* Almacena información de configuración sobre vFlow&lt;br /&gt;
:* Gestiona el RAG de las inteligencias artificiales a usar&lt;br /&gt;
&lt;br /&gt;
== Puesta en marcha de nodo vFlow ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Existe un nodo vFlow en los repositorios habituales proporcionados&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para '''dar de alta nodo vflow en un cliente''' hay que:&lt;br /&gt;
* Configurar IP (por defecto la maquina va configurada por DHCP)&lt;br /&gt;
* Adaptar el firewall, para ello REVISAR el fichero &amp;lt;code&amp;gt;/etc/firewall/vars.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
* Certificados validos en apache&lt;br /&gt;
* REVISAR ficheros &amp;lt;code&amp;gt;/etc/apache2/sites-enabled/flowise.conf&amp;lt;/code&amp;gt; y &amp;lt;code&amp;gt;/etc/apache2/sites-enabled/vFlow.conf&amp;lt;/code&amp;gt; la variable &amp;lt;code&amp;gt;ServerName&amp;lt;/code&amp;gt; (nombre valido de la maquina)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Accesos vFlow''' (se debe cambiar tras instalación):&lt;br /&gt;
* Usuario ssh y de SO por defecto es sat y clave a proporcionar.&lt;br /&gt;
* Para el portal de flowise las credenciales son usuario: vfloadmin@vflow.com clave: A proporcionar&lt;br /&gt;
* Para el portal de vflow las credenciales son usaurio sat y clave a proporcionar.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Accesos BBDD vFlow'''&lt;br /&gt;
* Para acceder a la base de datos desde el workbenck solo desde localhost (o tunel):&lt;br /&gt;
* BBDD Vlfow (admin)  vflowadmin // clave a proporcionar&lt;br /&gt;
* BBDD Vlfow (no_admin)  vflow //  clave a proporcionar&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Portal orquestador Flowise'''&lt;br /&gt;
&lt;br /&gt;
ubicado en https://host.cliente.xx:4567&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #fef6e7; border: 1px solid #fbd68a; padding: 1em; border-radius: 4px;width: fit-content; margin-left: 50px&amp;quot;&amp;gt;&lt;br /&gt;
'''⚠️ ATENCION !!'''&lt;br /&gt;
'''Los cambios en tablas de configuración de BBDD de vFlow (orquestadores, plataformas, agentes) requieren reinicio del servicio vFlowProxy'''&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', 'Monaco', 'Courier New', monospace;&amp;quot;&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service status&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service stop&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service start&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El fichero de configuración del demonio &amp;lt;cvode&amp;gt;vFlowProxy&amp;lt;/code&amp;gt; se encuentra en &amp;lt;code&amp;gt;/etc/MDtel/vFlowProxy.conf&amp;lt;/code&amp;gt;, si bien este fichero de configuración no se modificará habitualmente (los parámetros generales de configuración de vFlowProxy se encuentran en la BBDD de vFlow)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Relevante para poder '''poner en marcha un loader''':&lt;br /&gt;
* Subir el fichero inicial previamente a la carpeta destino según entorno (p. ej &amp;lt;code&amp;gt;/var/www/html/storages/production&amp;lt;/code&amp;gt;&lt;br /&gt;
* Tipo de loader --&amp;gt; API&lt;br /&gt;
* Método --&amp;gt; GET&lt;br /&gt;
* URL --&amp;gt; (ejemplo: http://172.25.129.242/storages/test/fichero-pru.txt)&lt;br /&gt;
::* Existirán URL &amp;quot;production&amp;quot;, &amp;quot;staging&amp;quot; y &amp;quot;test&amp;quot;&lt;br /&gt;
* Text Splitter: Recursive&lt;br /&gt;
* Qdrant --&amp;gt; localhost:6333&lt;br /&gt;
&amp;lt;div style=&amp;quot;display:none;&amp;quot;&amp;gt;* Record Manager --&amp;gt; SQLite}}&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Se adjunta imagen a modo de ejemplo&lt;br /&gt;
[[Archivo:Alta loader vflow.png|800px|miniaturadeimagen|no|alta loader vFlow|link=]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gestión en vFlow ==&lt;br /&gt;
vFlow prevé la existencia de tres entornos que permita hacer una gestión segura de agentes y RAG:&lt;br /&gt;
&lt;br /&gt;
* Producción&lt;br /&gt;
* Preproducción&lt;br /&gt;
* Pruebas&lt;br /&gt;
&lt;br /&gt;
Para cada agente o store de RAG se podrá desplegar un entorno (producción), dos o los tres entornos&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #f0fff4; border: 3px solid #c6f6d5; padding: 1em; border-radius: 4px;width: fit-content; margin-left: 0px&amp;quot;&amp;gt;&lt;br /&gt;
✅ '''Recomendación'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En la mayoría de los casos con disponer de entorno de producción y preproducción tanto para agente como para RAG será suficiente&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Para realizar una gestión completa en vFlow (suponiendo tres entornos y gestión de agentes y RAG), deberemos tener&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Archivo:Gestión RAG.png|1000px|miniaturadeimagen|centro|Gestión RAG en vFlow|link=]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''En orquestador'''&lt;br /&gt;
* Crear '''tres stores''' (pro/pre/pru); en cada store:&lt;br /&gt;
::* En total '''tres loaders'''. Crear un loader por entorno (p.ej /pro/nombrefich). &lt;br /&gt;
::* Subir un primer &amp;quot;nombrefich&amp;quot;&lt;br /&gt;
::::* tipo texto (versión 0)&lt;br /&gt;
::::* el mismo para todos los entornos&lt;br /&gt;
::::* se sube por medios convencionales (p. ej SCP)&lt;br /&gt;
* Asegurar que los stores queden totalmente creados (estado &amp;quot;UPSERTED&amp;quot;)&lt;br /&gt;
* Crear '''tres agentes''' (pro/pre/pru)&lt;br /&gt;
::* Asociar a stores (pro/pre/pru)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''En flow'''&lt;br /&gt;
* Crear '''un agente'''&lt;br /&gt;
::* Vincularlo a los tres agentes de orquestador (pro/pre/pru)&lt;br /&gt;
* Crear '''un store'''&lt;br /&gt;
::* Vinculado a los tres stores de orquestador (pro/pre/pru)&lt;br /&gt;
* Crear '''un loader'''&lt;br /&gt;
::* Loader vinculado a agente de vflow&lt;br /&gt;
::* C_NAME loader coincidirá con los de orquestador (p.ej &amp;quot;nombrefich&amp;quot;)&lt;br /&gt;
::* Subir nueva versión v1 (&amp;quot;.txt&amp;quot;, &amp;quot;.pdf&amp;quot;, &amp;quot;.doc&amp;quot;, &amp;quot;.docx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Diagnósticos ==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/vFlowProxy/vFlowProxy.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En nodo vFlowProxy&lt;br /&gt;
::para cualquier canal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
nc localhost 1131&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En nodo vFlowProxy&lt;br /&gt;
::Monitoriza estado del proceso vflowProxy&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
  &amp;quot;proceso&amp;quot;: {&lt;br /&gt;
    &amp;quot;nombre&amp;quot;: &amp;quot;vFlowProxy&amp;quot;,&lt;br /&gt;
    &amp;quot;version&amp;quot;: &amp;quot;00.00.01&amp;quot;,&lt;br /&gt;
    &amp;quot;inicio_ts&amp;quot;: 1771315153,&lt;br /&gt;
    &amp;quot;inicio_cad&amp;quot;: &amp;quot;20260217 085913&amp;quot;,&lt;br /&gt;
    &amp;quot;log_alarmas_val&amp;quot;: 8,&lt;br /&gt;
    &amp;quot;log_alarma_ultimo_ts&amp;quot;: 1771970401,&lt;br /&gt;
    &amp;quot;log_alarma_ultimo_ts_cad&amp;quot;: &amp;quot;20260224 230001&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;diagnostico&amp;quot;: {&lt;br /&gt;
    &amp;quot;gmp&amp;quot;: {&lt;br /&gt;
      &amp;quot;msj_val&amp;quot;: 1022,&lt;br /&gt;
      &amp;quot;msj_max&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;buf_val&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;buf_max&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;tarea_val&amp;quot;: 7,&lt;br /&gt;
      &amp;quot;tarea_max&amp;quot;: 15&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;tiempo&amp;quot;: {&lt;br /&gt;
      &amp;quot;uptime&amp;quot;: 716665,&lt;br /&gt;
      &amp;quot;uptime_dias&amp;quot;: 8,&lt;br /&gt;
      &amp;quot;uptime_horas&amp;quot;: 7,&lt;br /&gt;
      &amp;quot;uptime_minutos&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;uptime_segundos&amp;quot;: 25&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;wws&amp;quot;: {&lt;br /&gt;
      &amp;quot;conexiones_val&amp;quot;: 0,&lt;br /&gt;
      &amp;quot;conexiones_max_periodo&amp;quot;: 0,&lt;br /&gt;
      &amp;quot;hilos_val&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;hilos_max&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;wsi_cad&amp;quot;: &amp;quot;sesiones=0/200&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;alarmas_nivel_max&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;alarmas&amp;quot;: []&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es relevante la monitorización de sesiones  &amp;lt;code&amp;gt;&amp;quot;wsi_cad&amp;quot;: &amp;quot;sesiones=0/200&amp;quot;&amp;lt;/code&amp;gt; (usadas/máximas)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
asterisk -rv | grep callsquare_name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::en nodo Omnisuite&lt;br /&gt;
::para canal voz&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/xcally/agi-combined.yyyy-mm-dd.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::en nodo Omnisuite&lt;br /&gt;
::para canal voz&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/xcally/routing-combined.yyyy-mm-dd.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::para canal voz&lt;br /&gt;
&lt;br /&gt;
== Para probar desde vFlow ==&lt;br /&gt;
&lt;br /&gt;
En /home/sat/vFlowProxy hay scripts de prueba (se configuran en el vars.sh); para usar los scripts de prueba tendremos que tener también &amp;quot;.ini&amp;quot; en vFlow&lt;br /&gt;
&lt;br /&gt;
Es útil comenzar con&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/home/sat/vFlowProxy/vFlowGetInfo.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
que sin parámetros adicionales confirma el correcto estado de vFlowProxy&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
  &amp;quot;app&amp;quot;: &amp;quot;vFlowProxy&amp;quot;,&lt;br /&gt;
  &amp;quot;version&amp;quot;: &amp;quot;00.00.01&amp;quot;,&lt;br /&gt;
  &amp;quot;sessions_opened&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;sessions_limit&amp;quot;: 200,&lt;br /&gt;
  &amp;quot;sessions_sleep_timeout_s&amp;quot;: 3600,&lt;br /&gt;
  &amp;quot;alarms&amp;quot;: 8&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Integración de vFlow desde Omnisuite ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Descripción general ===&lt;br /&gt;
En Omnisuite, la integración con vFlow, se realiza con el programa vFlowOmnisuite, que podrá ser invocado como ejecutable (más rápido, para debian), o como Python (más universal)&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
    /usr/local/sbin/vFlowOmnisuite (OPCIÓN PREFERENTE)&lt;br /&gt;
    /usr/local/sbin/vFlowOmnisuite.py (LEGACY)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Asociado al programa existen los siguientes ficheros de configuración (.ini):&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; de plataforma''' Omnisuite en vFlow --&amp;gt; Solo contiene uuid de la plataforma; se entrega un &amp;quot;.ini&amp;quot; a modo de ejemplo en &amp;lt;code&amp;gt;/etc/MDtel/vFlow/platform.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE PLATAFORMA&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
   [uuids]&lt;br /&gt;
   platform=1d111530-e22d-11f0-b0f2-5254008bef96&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; por agente''' en vFlow --&amp;gt; Solo contiene uuid del agente según su identificación en vFlow ('''NO''' en un orquestador, por ejemplo flowise); se entrega un &amp;quot;.ini&amp;quot; asociado a un agente &amp;quot;loop&amp;quot; existente en Flowise &amp;lt;code&amp;gt;/etc/MDtel/vFlow/agent_loop_01.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE AGENTE&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
   [uuids]&lt;br /&gt;
   agent=1a3a1020-ea1d-11f0-b4a5-5254008bef96&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; por servicio''' --&amp;gt; Configuración de cada servicio en Omnisuite; se entrega un &amp;quot;.ini&amp;quot; a modo de ejemplo en &amp;lt;code&amp;gt;/etc/MDtel/vFlow/service.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
En cada fichero de servicio configuraremos&lt;br /&gt;
::* Donde está Vflow&lt;br /&gt;
::* Agente&lt;br /&gt;
::* Plataforma&lt;br /&gt;
::* timeout_s --&amp;gt; Importante, es afectado por el LLM&lt;br /&gt;
::* channel_text_type --&amp;gt; IMPORTANTE si el servicio es de texto que esté bien (vacio solo si el servicio es de texto, NO COMENTARLO)&lt;br /&gt;
::* environment --&amp;gt; production, staging, test&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE SERVICIO&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
  [arch_uuids]&lt;br /&gt;
  agent=/etc/MDtel/vFlow/agent_loop_01.ini&lt;br /&gt;
  platform=/etc/MDtel/vFlow/platform.ini&lt;br /&gt;
&lt;br /&gt;
  [vflow]&lt;br /&gt;
  host_port=172.25.129.242:7900&lt;br /&gt;
  timeout_s=20&lt;br /&gt;
  # channel_type=[voice|chat|email]&lt;br /&gt;
  channel_type=chat&lt;br /&gt;
  # environment=[production|staging|test]&lt;br /&gt;
  environment=production&lt;br /&gt;
  language=es&lt;br /&gt;
&lt;br /&gt;
  [omnisuite]&lt;br /&gt;
  # channel_text_type=[chat|mail|sms|whatsup]&lt;br /&gt;
  channel_text_type=chat&lt;br /&gt;
  service_id=vflow_service_id&lt;br /&gt;
  service_name=vflow_service_name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La imagen siguiente muestra el esquema de relación entre orquestador/plataforma/agente/servicio en la plataforma y en vFlow&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Relaciones vFlow plat orq ag serv.png|800px|miniaturadeimagen|centro|Relación orquestador-plataforma-agente-servicio]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Invocación ===&lt;br /&gt;
==== Generales ====&lt;br /&gt;
&lt;br /&gt;
===== Ver configuración =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; configPrint&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
Configuration:&lt;br /&gt;
  agent_arch_uuid=/etc/MDtel/vFlow/agent_fse_rapido.ini&lt;br /&gt;
  agent_uuid=3487af28-1d14-11f1-803c-525400ef204c&lt;br /&gt;
  platform_arch_uuid=/etc/MDtel/vFlow/platform_labomsui.ini&lt;br /&gt;
  platform_uuid=9a54ea74-f050-11f0-bdf1-5254008bef96&lt;br /&gt;
&lt;br /&gt;
  vflow_host_port=labvflow.mdnova.local&lt;br /&gt;
  vflow_timeout_s=50&lt;br /&gt;
  vflow_environment=production&lt;br /&gt;
  vflow_channel_type=voice&lt;br /&gt;
  vflow_language=es&lt;br /&gt;
&lt;br /&gt;
  omnisuite_channel_text_type=chat&lt;br /&gt;
  omnisuite_service_id=287&lt;br /&gt;
  omnisuite_service_name=desarrollo&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;errorCad&amp;quot;: &amp;quot;OK&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Ver versión =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite version&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
00.00.02&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Para canales de texto ====&lt;br /&gt;
&lt;br /&gt;
Para canales de texto en Omnisuite existe un único Comando de invocación &amp;quot;omnisuiteText&amp;quot;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; omnisuiteText &amp;lt;omnisuite_id&amp;gt; &amp;lt;omnisuite_websiteId&amp;gt; &amp;lt;omnisuite_createdAt&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt; &amp;lt;question&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros ( Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Obligatoriedad !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;config_arch&amp;gt;` || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_id&amp;gt;` || OBLIGATORIO || Identificativo de la interacción en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_websiteId&amp;gt;` || OBLIGATORIO || Identificativo del servicio en Omnisuite (ej. website id en chat)&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_createdAt&amp;gt;` || OBLIGATORIO || Creación de la interacción&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_id&amp;gt;` || OPCIONAL || Id de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_phone_number&amp;gt;` || OPCIONAL || Telf de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_email&amp;gt;` || OPCIONAL || Email de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;question&amp;gt;` || OBLIGATORIO || Texto a enviar al orquestado (p. ej. Flowise)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
 &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
 &amp;quot;session&amp;quot;: &amp;quot;e926548d-fdcf-11f0-a793-525400ef204c&amp;quot;,&lt;br /&gt;
 &amp;quot;language&amp;quot;: &amp;quot;es&amp;quot;,&lt;br /&gt;
 &amp;quot;response&amp;quot;: &amp;quot;HOLA&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Para canales de voz ====&lt;br /&gt;
Para  canales de voz, existen comandos para &amp;quot;abrir sesión&amp;quot;, &amp;quot;enviar texto&amp;quot; y &amp;quot;cerrar sesión&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Abrir sesión =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; sessionOpen &amp;lt;omnisuite_UniqueId&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros (Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Requisito !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;omnisuite_UniqueId&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Unique_ID de asterisk de la llamada en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_id&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Id de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_phone_number&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Telf de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_email&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Email de cliente en Omnisuite&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
    &amp;quot;session&amp;quot;: &amp;quot;ec73df29-f08a-11f0-a8ec-525400ef204c&amp;quot;,&lt;br /&gt;
    &amp;quot;platform_id&amp;quot;: &amp;quot;146&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''El value correspondiente al key &amp;quot;session&amp;quot; deberá ser guardado en una variable para siguientes invocaciones'''&lt;br /&gt;
&lt;br /&gt;
===== Enviar texto =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; textRequest &amp;lt;vflow_session_uuid&amp;gt; &amp;lt;question&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Requisito !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_session_uuid&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Variable &amp;quot;session&amp;quot; almacenada en el &amp;quot;sessionOpen&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;question&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Texto a enviar al orquestado (p. ej. Flowise) (normal, abandoned, other)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
    &amp;quot;session&amp;quot;: &amp;quot;c6f6fad7-f6c1-11f0-a793-525400ef204c&amp;quot;,&lt;br /&gt;
    &amp;quot;language&amp;quot;: &amp;quot;ES&amp;quot;,&lt;br /&gt;
    &amp;quot;response&amp;quot;: &amp;quot;Cristóbal Colón.&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Cerrar sesión=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; sessionClose &amp;lt;vflow_session_uuid&amp;gt; &amp;lt;vflow_cause&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros  (Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Estado !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_session_uuid&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Variable &amp;quot;session&amp;quot; almacenada en el &amp;quot;sessionOpen&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_cause&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || (normal, abandoned, expired, other)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 104,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;Wrong session&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ejemplos para omnisuite ===&lt;br /&gt;
&lt;br /&gt;
==== Ejemplo de chat ====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_chat.ini&amp;quot; &amp;quot;omnisuiteText&amp;quot; &amp;quot;{{interaction.id}}&amp;quot; &amp;quot;{{account.id}}&amp;quot; &amp;quot;{{interaction.createdAt}}&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;{{message.body}}&amp;quot; | jq -r '.response'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Ejemplo de voz ====&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen cally square.jpg|1024px|none|miniatura|Ejemplo de flujo de Cally Square]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_voice.ini&amp;quot; &amp;quot;sessionOpen&amp;quot; &amp;quot;{UNIQUEID}&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; |  jq -r '.session' &amp;lt;/pre&amp;gt;&lt;br /&gt;
::&amp;lt;small&amp;gt;salida del comando almacenado en variable &amp;quot;vflow_sessionopen_response&amp;quot; para su posterior uso en cally square&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen sessionopen.jpg|550px|center|miniatura|Abrir sesión en vFlow]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_desa_voz.ini&amp;quot; &amp;quot;textRequest&amp;quot; &amp;quot;{vflow_sessionopen_response}&amp;quot; &amp;quot;{OPENAI_WHISPER_TRANSCRIPT}&amp;quot; | jq -r '.response'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::&amp;lt;small&amp;gt;la voz se ha transcrito con OpenAI, por eso se usa como parámetro {OPENAI_WHISPER_TRANSCRIPT})&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen textrequest.jpg|550px|center|miniatura|Enviar texto en vFlow]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt; &lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_desa_voz.ini&amp;quot; &amp;quot;sessionClose&amp;quot; &amp;quot;{{vflow_sessionopen_response}}&amp;quot; &amp;quot;normal&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen sessionclose.jpg|900px|center|miniatura|Cerrar sesión en vFlow]]&lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:VIVAit Call]]&lt;br /&gt;
[[Category:Omnisuite]]&lt;br /&gt;
[[Category:IA]]&lt;/div&gt;</summary>
		<author><name>Alfredo.rodriguez</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_de_vFlow&amp;diff=17288</id>
		<title>Manual de operación de vFlow</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_de_vFlow&amp;diff=17288"/>
		<updated>2026-03-27T06:41:41Z</updated>

		<summary type="html">&lt;p&gt;Alfredo.rodriguez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Descripción general vFlow ==&lt;br /&gt;
&lt;br /&gt;
vFlow es un módulo de conexión a sistemas de inteligencia artifical para sistemas de comunicaciones unificadas, ya sean sistemas corporativos o contact center&lt;br /&gt;
Gracias a vFlow, las plataformas de UC dispondrán de una solución para comunicarse con sistemas IA utilizando un mismo mecanismo independientemente de la solución de inteligencia artificial que se utilice&lt;br /&gt;
&lt;br /&gt;
Para proporcionar el servicio de manera completa, vFlow (en concreto el orquestador) se conectará a sistemas de inteligencia artificial (LLM) que permitirán desarrollar los agentes definidos en los orquestadores&lt;br /&gt;
&lt;br /&gt;
'''Conceptos:'''&lt;br /&gt;
* Plataforma&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Plataforma de comunicaciones unificadas; por ejemplo Omnisuite o VIVAit Call&lt;br /&gt;
* Orquestador&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Plataforma agéntica de IA (por ejemplo Flowise)&lt;br /&gt;
* vFlowProxy&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Módulo VIVAit que conecta multiples plataformas con múltiples orquestadores&lt;br /&gt;
* LLM&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Modelo de lenguaje natural que usará un orquestadores&lt;br /&gt;
* Agente&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Cada uno de los flujos creados en vFlow; corresponde a un par plataforma/agentflow de orquestador&lt;br /&gt;
* Servicio&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Cada elemento de negocio en la plataforma de CU (por ejemplo VDN)&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Arquitectura Vflow - v2.jpg|1000px|center|Arquitecura de vFlow]]&lt;br /&gt;
&lt;br /&gt;
Los '''módulos principales''' de vFlow son:&lt;br /&gt;
* vFlowProxy: Recibe las conexiones de los sistemas de comunicaciones unificadas, y conecta con los orquestadores de Inteligencia Artificial de manera segura y adaptada al tipo de servicio; el acceso a vFlow Proxy desde las plataformas se realizará mediante:&lt;br /&gt;
* Programa cliente: Se utiliza en el sistema de comunicaciones unificadas (actualmente VIVAit Call y Omnsisuite) para invocar a vFlow&lt;br /&gt;
* API REST: Alternativa al programa cliente, vFlowProxy proporciona una API REST que facilita que cualquier plataforma pueda comunicarse mediante un procedimiento estándar y documentado&lt;br /&gt;
* Portal de administración vFlow: Permite visualizar las interaciones realizadas y configurar el sistema&lt;br /&gt;
* Orquestador de IA: Herramienta de Inteligencia Artificial que permitirá la creación de aplicaciones personalizadas (agentes)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Otros elementos''' relevantes serán:&lt;br /&gt;
* Base de datos vFlow:&lt;br /&gt;
:* Almacena información sobre sesiones y transacciones realizadas&lt;br /&gt;
:* Almacena información de configuración sobre vFlow&lt;br /&gt;
:* Gestiona el RAG de las inteligencias artificiales a usar&lt;br /&gt;
&lt;br /&gt;
== Puesta en marcha de nodo vFlow ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Existe un nodo vFlow en los repositorios habituales proporcionados&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para '''dar de alta nodo vflow en un cliente''' hay que:&lt;br /&gt;
* Configurar IP (por defecto la maquina va configurada por DHCP)&lt;br /&gt;
* Adaptar el firewall, para ello REVISAR el fichero &amp;lt;code&amp;gt;/etc/firewall/vars.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
* Certificados validos en apache&lt;br /&gt;
* REVISAR ficheros &amp;lt;code&amp;gt;/etc/apache2/sites-enabled/flowise.conf&amp;lt;/code&amp;gt; y &amp;lt;code&amp;gt;/etc/apache2/sites-enabled/vFlow.conf&amp;lt;/code&amp;gt; la variable &amp;lt;code&amp;gt;ServerName&amp;lt;/code&amp;gt; (nombre valido de la maquina)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Accesos vFlow''' (se debe cambiar tras instalación):&lt;br /&gt;
* Usuario ssh y de SO por defecto es sat y clave a proporcionar.&lt;br /&gt;
* Para el portal de flowise las credenciales son usuario: vfloadmin@vflow.com clave: A proporcionar&lt;br /&gt;
* Para el portal de vflow las credenciales son usaurio sat y clave a proporcionar.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Accesos BBDD vFlow'''&lt;br /&gt;
* Para acceder a la base de datos desde el workbenck solo desde localhost (o tunel):&lt;br /&gt;
* BBDD Vlfow (admin)  vflowadmin // clave a proporcionar&lt;br /&gt;
* BBDD Vlfow (no_admin)  vflow //  clave a proporcionar&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Portal orquestador Flowise'''&lt;br /&gt;
&lt;br /&gt;
ubicado en https://host.cliente.xx:4567&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #fef6e7; border: 1px solid #fbd68a; padding: 1em; border-radius: 4px;width: fit-content; margin-left: 50px&amp;quot;&amp;gt;&lt;br /&gt;
'''⚠️ ATENCION !!'''&lt;br /&gt;
'''Los cambios en tablas de configuración de BBDD de vFlow (orquestadores, plataformas, agentes) requieren reinicio del servicio vFlowProxy'''&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', 'Monaco', 'Courier New', monospace;&amp;quot;&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service status&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service stop&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service start&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El fichero de configuración del demonio &amp;lt;cvode&amp;gt;vFlowProxy&amp;lt;/code&amp;gt; se encuentra en &amp;lt;code&amp;gt;/etc/MDtel/vFlowProxy.conf&amp;lt;/code&amp;gt;, si bien este fichero de configuración no se modificará habitualmente (los parámetros generales de configuración de vFlowProxy se encuentran en la BBDD de vFlow)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Relevante para poder '''poner en marcha un loader''':&lt;br /&gt;
* Subir el fichero inicial previamente a la carpeta destino según entorno (p. ej &amp;lt;code&amp;gt;/var/www/html/storages/production&amp;lt;/code&amp;gt;&lt;br /&gt;
* Tipo de loader --&amp;gt; API&lt;br /&gt;
* Método --&amp;gt; GET&lt;br /&gt;
* URL --&amp;gt; (ejemplo: http://172.25.129.242/storages/test/fichero-pru.txt)&lt;br /&gt;
::* Existirán URL &amp;quot;production&amp;quot;, &amp;quot;staging&amp;quot; y &amp;quot;test&amp;quot;&lt;br /&gt;
* Text Splitter: Recursive&lt;br /&gt;
* Qdrant --&amp;gt; localhost:6333&lt;br /&gt;
{{void|* Record Manager --&amp;gt; SQLite}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Se adjunta imagen a modo de ejemplo&lt;br /&gt;
[[Archivo:Alta loader vflow.png|800px|miniaturadeimagen|no|alta loader vFlow|link=]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gestión en vFlow ==&lt;br /&gt;
vFlow prevé la existencia de tres entornos que permita hacer una gestión segura de agentes y RAG:&lt;br /&gt;
&lt;br /&gt;
* Producción&lt;br /&gt;
* Preproducción&lt;br /&gt;
* Pruebas&lt;br /&gt;
&lt;br /&gt;
Para cada agente o store de RAG se podrá desplegar un entorno (producción), dos o los tres entornos&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #f0fff4; border: 3px solid #c6f6d5; padding: 1em; border-radius: 4px;width: fit-content; margin-left: 0px&amp;quot;&amp;gt;&lt;br /&gt;
✅ '''Recomendación'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En la mayoría de los casos con disponer de entorno de producción y preproducción tanto para agente como para RAG será suficiente&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Para realizar una gestión completa en vFlow (suponiendo tres entornos y gestión de agentes y RAG), deberemos tener&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Archivo:Gestión RAG.png|1000px|miniaturadeimagen|centro|Gestión RAG en vFlow|link=]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''En orquestador'''&lt;br /&gt;
* Crear '''tres stores''' (pro/pre/pru); en cada store:&lt;br /&gt;
::* En total '''tres loaders'''. Crear un loader por entorno (p.ej /pro/nombrefich). &lt;br /&gt;
::* Subir un primer &amp;quot;nombrefich&amp;quot;&lt;br /&gt;
::::* tipo texto (versión 0)&lt;br /&gt;
::::* el mismo para todos los entornos&lt;br /&gt;
::::* se sube por medios convencionales (p. ej SCP)&lt;br /&gt;
* Asegurar que los stores queden totalmente creados (estado &amp;quot;UPSERTED&amp;quot;)&lt;br /&gt;
* Crear '''tres agentes''' (pro/pre/pru)&lt;br /&gt;
::* Asociar a stores (pro/pre/pru)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''En flow'''&lt;br /&gt;
* Crear '''un agente'''&lt;br /&gt;
::* Vincularlo a los tres agentes de orquestador (pro/pre/pru)&lt;br /&gt;
* Crear '''un store'''&lt;br /&gt;
::* Vinculado a los tres stores de orquestador (pro/pre/pru)&lt;br /&gt;
* Crear '''un loader'''&lt;br /&gt;
::* Loader vinculado a agente de vflow&lt;br /&gt;
::* C_NAME loader coincidirá con los de orquestador (p.ej &amp;quot;nombrefich&amp;quot;)&lt;br /&gt;
::* Subir nueva versión v1 (&amp;quot;.txt&amp;quot;, &amp;quot;.pdf&amp;quot;, &amp;quot;.doc&amp;quot;, &amp;quot;.docx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Diagnósticos ==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/vFlowProxy/vFlowProxy.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En nodo vFlowProxy&lt;br /&gt;
::para cualquier canal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
nc localhost 1131&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En nodo vFlowProxy&lt;br /&gt;
::Monitoriza estado del proceso vflowProxy&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
  &amp;quot;proceso&amp;quot;: {&lt;br /&gt;
    &amp;quot;nombre&amp;quot;: &amp;quot;vFlowProxy&amp;quot;,&lt;br /&gt;
    &amp;quot;version&amp;quot;: &amp;quot;00.00.01&amp;quot;,&lt;br /&gt;
    &amp;quot;inicio_ts&amp;quot;: 1771315153,&lt;br /&gt;
    &amp;quot;inicio_cad&amp;quot;: &amp;quot;20260217 085913&amp;quot;,&lt;br /&gt;
    &amp;quot;log_alarmas_val&amp;quot;: 8,&lt;br /&gt;
    &amp;quot;log_alarma_ultimo_ts&amp;quot;: 1771970401,&lt;br /&gt;
    &amp;quot;log_alarma_ultimo_ts_cad&amp;quot;: &amp;quot;20260224 230001&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;diagnostico&amp;quot;: {&lt;br /&gt;
    &amp;quot;gmp&amp;quot;: {&lt;br /&gt;
      &amp;quot;msj_val&amp;quot;: 1022,&lt;br /&gt;
      &amp;quot;msj_max&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;buf_val&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;buf_max&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;tarea_val&amp;quot;: 7,&lt;br /&gt;
      &amp;quot;tarea_max&amp;quot;: 15&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;tiempo&amp;quot;: {&lt;br /&gt;
      &amp;quot;uptime&amp;quot;: 716665,&lt;br /&gt;
      &amp;quot;uptime_dias&amp;quot;: 8,&lt;br /&gt;
      &amp;quot;uptime_horas&amp;quot;: 7,&lt;br /&gt;
      &amp;quot;uptime_minutos&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;uptime_segundos&amp;quot;: 25&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;wws&amp;quot;: {&lt;br /&gt;
      &amp;quot;conexiones_val&amp;quot;: 0,&lt;br /&gt;
      &amp;quot;conexiones_max_periodo&amp;quot;: 0,&lt;br /&gt;
      &amp;quot;hilos_val&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;hilos_max&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;wsi_cad&amp;quot;: &amp;quot;sesiones=0/200&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;alarmas_nivel_max&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;alarmas&amp;quot;: []&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es relevante la monitorización de sesiones  &amp;lt;code&amp;gt;&amp;quot;wsi_cad&amp;quot;: &amp;quot;sesiones=0/200&amp;quot;&amp;lt;/code&amp;gt; (usadas/máximas)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
asterisk -rv | grep callsquare_name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::en nodo Omnisuite&lt;br /&gt;
::para canal voz&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/xcally/agi-combined.yyyy-mm-dd.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::en nodo Omnisuite&lt;br /&gt;
::para canal voz&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/xcally/routing-combined.yyyy-mm-dd.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::para canal voz&lt;br /&gt;
&lt;br /&gt;
== Para probar desde vFlow ==&lt;br /&gt;
&lt;br /&gt;
En /home/sat/vFlowProxy hay scripts de prueba (se configuran en el vars.sh); para usar los scripts de prueba tendremos que tener también &amp;quot;.ini&amp;quot; en vFlow&lt;br /&gt;
&lt;br /&gt;
Es útil comenzar con&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/home/sat/vFlowProxy/vFlowGetInfo.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
que sin parámetros adicionales confirma el correcto estado de vFlowProxy&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
  &amp;quot;app&amp;quot;: &amp;quot;vFlowProxy&amp;quot;,&lt;br /&gt;
  &amp;quot;version&amp;quot;: &amp;quot;00.00.01&amp;quot;,&lt;br /&gt;
  &amp;quot;sessions_opened&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;sessions_limit&amp;quot;: 200,&lt;br /&gt;
  &amp;quot;sessions_sleep_timeout_s&amp;quot;: 3600,&lt;br /&gt;
  &amp;quot;alarms&amp;quot;: 8&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Integración de vFlow desde Omnisuite ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Descripción general ===&lt;br /&gt;
En Omnisuite, la integración con vFlow, se realiza con el programa vFlowOmnisuite, que podrá ser invocado como ejecutable (más rápido, para debian), o como Python (más universal)&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
    /usr/local/sbin/vFlowOmnisuite (OPCIÓN PREFERENTE)&lt;br /&gt;
    /usr/local/sbin/vFlowOmnisuite.py (LEGACY)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Asociado al programa existen los siguientes ficheros de configuración (.ini):&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; de plataforma''' Omnisuite en vFlow --&amp;gt; Solo contiene uuid de la plataforma; se entrega un &amp;quot;.ini&amp;quot; a modo de ejemplo en &amp;lt;code&amp;gt;/etc/MDtel/vFlow/platform.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE PLATAFORMA&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
   [uuids]&lt;br /&gt;
   platform=1d111530-e22d-11f0-b0f2-5254008bef96&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; por agente''' en vFlow --&amp;gt; Solo contiene uuid del agente según su identificación en vFlow ('''NO''' en un orquestador, por ejemplo flowise); se entrega un &amp;quot;.ini&amp;quot; asociado a un agente &amp;quot;loop&amp;quot; existente en Flowise &amp;lt;code&amp;gt;/etc/MDtel/vFlow/agent_loop_01.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE AGENTE&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
   [uuids]&lt;br /&gt;
   agent=1a3a1020-ea1d-11f0-b4a5-5254008bef96&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; por servicio''' --&amp;gt; Configuración de cada servicio en Omnisuite; se entrega un &amp;quot;.ini&amp;quot; a modo de ejemplo en &amp;lt;code&amp;gt;/etc/MDtel/vFlow/service.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
En cada fichero de servicio configuraremos&lt;br /&gt;
::* Donde está Vflow&lt;br /&gt;
::* Agente&lt;br /&gt;
::* Plataforma&lt;br /&gt;
::* timeout_s --&amp;gt; Importante, es afectado por el LLM&lt;br /&gt;
::* channel_text_type --&amp;gt; IMPORTANTE si el servicio es de texto que esté bien (vacio solo si el servicio es de texto, NO COMENTARLO)&lt;br /&gt;
::* environment --&amp;gt; production, staging, test&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE SERVICIO&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
  [arch_uuids]&lt;br /&gt;
  agent=/etc/MDtel/vFlow/agent_loop_01.ini&lt;br /&gt;
  platform=/etc/MDtel/vFlow/platform.ini&lt;br /&gt;
&lt;br /&gt;
  [vflow]&lt;br /&gt;
  host_port=172.25.129.242:7900&lt;br /&gt;
  timeout_s=20&lt;br /&gt;
  # channel_type=[voice|chat|email]&lt;br /&gt;
  channel_type=chat&lt;br /&gt;
  # environment=[production|staging|test]&lt;br /&gt;
  environment=production&lt;br /&gt;
  language=es&lt;br /&gt;
&lt;br /&gt;
  [omnisuite]&lt;br /&gt;
  # channel_text_type=[chat|mail|sms|whatsup]&lt;br /&gt;
  channel_text_type=chat&lt;br /&gt;
  service_id=vflow_service_id&lt;br /&gt;
  service_name=vflow_service_name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La imagen siguiente muestra el esquema de relación entre orquestador/plataforma/agente/servicio en la plataforma y en vFlow&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Relaciones vFlow plat orq ag serv.png|800px|miniaturadeimagen|centro|Relación orquestador-plataforma-agente-servicio]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Invocación ===&lt;br /&gt;
==== Generales ====&lt;br /&gt;
&lt;br /&gt;
===== Ver configuración =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; configPrint&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
Configuration:&lt;br /&gt;
  agent_arch_uuid=/etc/MDtel/vFlow/agent_fse_rapido.ini&lt;br /&gt;
  agent_uuid=3487af28-1d14-11f1-803c-525400ef204c&lt;br /&gt;
  platform_arch_uuid=/etc/MDtel/vFlow/platform_labomsui.ini&lt;br /&gt;
  platform_uuid=9a54ea74-f050-11f0-bdf1-5254008bef96&lt;br /&gt;
&lt;br /&gt;
  vflow_host_port=labvflow.mdnova.local&lt;br /&gt;
  vflow_timeout_s=50&lt;br /&gt;
  vflow_environment=production&lt;br /&gt;
  vflow_channel_type=voice&lt;br /&gt;
  vflow_language=es&lt;br /&gt;
&lt;br /&gt;
  omnisuite_channel_text_type=chat&lt;br /&gt;
  omnisuite_service_id=287&lt;br /&gt;
  omnisuite_service_name=desarrollo&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;errorCad&amp;quot;: &amp;quot;OK&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Ver versión =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite version&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
00.00.02&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Para canales de texto ====&lt;br /&gt;
&lt;br /&gt;
Para canales de texto en Omnisuite existe un único Comando de invocación &amp;quot;omnisuiteText&amp;quot;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; omnisuiteText &amp;lt;omnisuite_id&amp;gt; &amp;lt;omnisuite_websiteId&amp;gt; &amp;lt;omnisuite_createdAt&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt; &amp;lt;question&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros ( Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Obligatoriedad !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;config_arch&amp;gt;` || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_id&amp;gt;` || OBLIGATORIO || Identificativo de la interacción en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_websiteId&amp;gt;` || OBLIGATORIO || Identificativo del servicio en Omnisuite (ej. website id en chat)&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_createdAt&amp;gt;` || OBLIGATORIO || Creación de la interacción&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_id&amp;gt;` || OPCIONAL || Id de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_phone_number&amp;gt;` || OPCIONAL || Telf de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_email&amp;gt;` || OPCIONAL || Email de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;question&amp;gt;` || OBLIGATORIO || Texto a enviar al orquestado (p. ej. Flowise)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
 &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
 &amp;quot;session&amp;quot;: &amp;quot;e926548d-fdcf-11f0-a793-525400ef204c&amp;quot;,&lt;br /&gt;
 &amp;quot;language&amp;quot;: &amp;quot;es&amp;quot;,&lt;br /&gt;
 &amp;quot;response&amp;quot;: &amp;quot;HOLA&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Para canales de voz ====&lt;br /&gt;
Para  canales de voz, existen comandos para &amp;quot;abrir sesión&amp;quot;, &amp;quot;enviar texto&amp;quot; y &amp;quot;cerrar sesión&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Abrir sesión =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; sessionOpen &amp;lt;omnisuite_UniqueId&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros (Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Requisito !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;omnisuite_UniqueId&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Unique_ID de asterisk de la llamada en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_id&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Id de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_phone_number&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Telf de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_email&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Email de cliente en Omnisuite&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
    &amp;quot;session&amp;quot;: &amp;quot;ec73df29-f08a-11f0-a8ec-525400ef204c&amp;quot;,&lt;br /&gt;
    &amp;quot;platform_id&amp;quot;: &amp;quot;146&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''El value correspondiente al key &amp;quot;session&amp;quot; deberá ser guardado en una variable para siguientes invocaciones'''&lt;br /&gt;
&lt;br /&gt;
===== Enviar texto =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; textRequest &amp;lt;vflow_session_uuid&amp;gt; &amp;lt;question&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Requisito !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_session_uuid&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Variable &amp;quot;session&amp;quot; almacenada en el &amp;quot;sessionOpen&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;question&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Texto a enviar al orquestado (p. ej. Flowise) (normal, abandoned, other)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
    &amp;quot;session&amp;quot;: &amp;quot;c6f6fad7-f6c1-11f0-a793-525400ef204c&amp;quot;,&lt;br /&gt;
    &amp;quot;language&amp;quot;: &amp;quot;ES&amp;quot;,&lt;br /&gt;
    &amp;quot;response&amp;quot;: &amp;quot;Cristóbal Colón.&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Cerrar sesión=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; sessionClose &amp;lt;vflow_session_uuid&amp;gt; &amp;lt;vflow_cause&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros  (Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Estado !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_session_uuid&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Variable &amp;quot;session&amp;quot; almacenada en el &amp;quot;sessionOpen&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_cause&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || (normal, abandoned, expired, other)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 104,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;Wrong session&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ejemplos para omnisuite ===&lt;br /&gt;
&lt;br /&gt;
==== Ejemplo de chat ====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_chat.ini&amp;quot; &amp;quot;omnisuiteText&amp;quot; &amp;quot;{{interaction.id}}&amp;quot; &amp;quot;{{account.id}}&amp;quot; &amp;quot;{{interaction.createdAt}}&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;{{message.body}}&amp;quot; | jq -r '.response'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Ejemplo de voz ====&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen cally square.jpg|1024px|none|miniatura|Ejemplo de flujo de Cally Square]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_voice.ini&amp;quot; &amp;quot;sessionOpen&amp;quot; &amp;quot;{UNIQUEID}&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; |  jq -r '.session' &amp;lt;/pre&amp;gt;&lt;br /&gt;
::&amp;lt;small&amp;gt;salida del comando almacenado en variable &amp;quot;vflow_sessionopen_response&amp;quot; para su posterior uso en cally square&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen sessionopen.jpg|550px|center|miniatura|Abrir sesión en vFlow]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_desa_voz.ini&amp;quot; &amp;quot;textRequest&amp;quot; &amp;quot;{vflow_sessionopen_response}&amp;quot; &amp;quot;{OPENAI_WHISPER_TRANSCRIPT}&amp;quot; | jq -r '.response'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::&amp;lt;small&amp;gt;la voz se ha transcrito con OpenAI, por eso se usa como parámetro {OPENAI_WHISPER_TRANSCRIPT})&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen textrequest.jpg|550px|center|miniatura|Enviar texto en vFlow]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt; &lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_desa_voz.ini&amp;quot; &amp;quot;sessionClose&amp;quot; &amp;quot;{{vflow_sessionopen_response}}&amp;quot; &amp;quot;normal&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen sessionclose.jpg|900px|center|miniatura|Cerrar sesión en vFlow]]&lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:VIVAit Call]]&lt;br /&gt;
[[Category:Omnisuite]]&lt;br /&gt;
[[Category:IA]]&lt;/div&gt;</summary>
		<author><name>Alfredo.rodriguez</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Telefon%C3%ADa&amp;diff=17222</id>
		<title>Telefonía</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Telefon%C3%ADa&amp;diff=17222"/>
		<updated>2026-03-25T12:54:21Z</updated>

		<summary type="html">&lt;p&gt;Alfredo.rodriguez: &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;
|}&lt;br /&gt;
&amp;lt;big&amp;gt;&lt;br /&gt;
[[File:mdtel_20.png|100px|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Utilizar los enlaces siguientes para acceder a los manuales de las distintas aplicaciones de supervisión del sistema '''''VIVA'''it'' Call.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
::[[Usuario de Vivait Call | &amp;lt;big&amp;gt;Usuario de Vivait Call&amp;lt;/big&amp;gt;]]&amp;lt;br&amp;gt;&lt;br /&gt;
:::Funciones generales del usuario de '''''VIVA'''''it Call  de '''''&amp;lt;span style=&amp;quot;color:#144F9B&amp;quot;&amp;gt;MD&amp;lt;/span&amp;gt;'''''Tel en sus distintas versiones.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::[[Vivait Web Call | &amp;lt;big&amp;gt;Portal de Web Call (VWC)&amp;lt;/big&amp;gt;]]&amp;lt;br&amp;gt;&lt;br /&gt;
:::Manual de la aplicación '''''Web Call''''' en el sistema '''''VIVA'''''it Call  de '''''&amp;lt;span style=&amp;quot;color:#144F9B&amp;quot;&amp;gt;MD&amp;lt;/span&amp;gt;'''''Tel en sus distintas versiones.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::[[Vivait Call Business | &amp;lt;big&amp;gt;VIVAit Call Business (VCB)&amp;lt;/big&amp;gt;]]&amp;lt;br&amp;gt;&lt;br /&gt;
:::Manual de la aplicación '''''Vivait Call Business''''' en el sistema '''''VIVA'''''it Call  de '''''&amp;lt;span style=&amp;quot;color:#144F9B&amp;quot;&amp;gt;MD&amp;lt;/span&amp;gt;'''''Tel en sus distintas versiones.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::[[Vivait Call Cellular | &amp;lt;big&amp;gt;VIVAit Call Cellular (VCC)&amp;lt;/big&amp;gt;]]&amp;lt;br&amp;gt;&lt;br /&gt;
:::Manual de la aplicación '''''Vivait Call Cellular''''' en el sistema '''''VIVA'''''it Call  de '''''&amp;lt;span style=&amp;quot;color:#144F9B&amp;quot;&amp;gt;MD&amp;lt;/span&amp;gt;'''''Tel en sus distintas versiones.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::[[Equipos en Vivait Web Call | &amp;lt;big&amp;gt;Equipos en Vivait Web Call&amp;lt;/big&amp;gt;]]&amp;lt;br&amp;gt;&lt;br /&gt;
:::Manual de la opción '''''Equipos''''' para ''Vivait Web Call'' en el sistema '''''VIVA'''''it Call  de '''''&amp;lt;span style=&amp;quot;color:#144F9B&amp;quot;&amp;gt;MD&amp;lt;/span&amp;gt;'''''Tel en sus distintas versiones.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::[[Terminales | &amp;lt;big&amp;gt;Terminales Telefónicos&amp;lt;/big&amp;gt;]]&amp;lt;br&amp;gt;&lt;br /&gt;
:::Manuales de los distintos hardphones disponibles en el sistema '''''VIVA'''''it Call  de '''''&amp;lt;span style=&amp;quot;color:#144F9B&amp;quot;&amp;gt;MD&amp;lt;/span&amp;gt;'''''Tel en sus distintas versiones.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Página_principal | Volver a la Página Principal]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:usuario]]&lt;br /&gt;
[[Category:administrador]]&lt;br /&gt;
[[Category:VIVAit Call]]&lt;/div&gt;</summary>
		<author><name>Alfredo.rodriguez</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Telefon%C3%ADa&amp;diff=17221</id>
		<title>Telefonía</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Telefon%C3%ADa&amp;diff=17221"/>
		<updated>2026-03-25T12:53:34Z</updated>

		<summary type="html">&lt;p&gt;Alfredo.rodriguez: &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;
|}&lt;br /&gt;
&amp;lt;big&amp;gt;&lt;br /&gt;
[[File:mdtel_20.png|100px|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Utilizar los enlaces siguientes para acceder a los manuales de las distintas aplicaciones de supervisión del sistema '''''VIVA'''it'' Call.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
::[[Usuario de Vivait Call | &amp;lt;big&amp;gt;Usuario de Vivait Call&amp;lt;/big&amp;gt;]]&amp;lt;br&amp;gt;&lt;br /&gt;
:::Manual de la aplicación '''''Vivait Usuario''''' en el sistema '''''VIVA'''''it Call  de '''''&amp;lt;span style=&amp;quot;color:#144F9B&amp;quot;&amp;gt;MD&amp;lt;/span&amp;gt;'''''Tel en sus distintas versiones.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::[[Vivait Web Call | &amp;lt;big&amp;gt;Portal de Web Call (VWC)&amp;lt;/big&amp;gt;]]&amp;lt;br&amp;gt;&lt;br /&gt;
:::Manual de la aplicación '''''Web Call''''' en el sistema '''''VIVA'''''it Call  de '''''&amp;lt;span style=&amp;quot;color:#144F9B&amp;quot;&amp;gt;MD&amp;lt;/span&amp;gt;'''''Tel en sus distintas versiones.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::[[Vivait Call Business | &amp;lt;big&amp;gt;VIVAit Call Business (VCB)&amp;lt;/big&amp;gt;]]&amp;lt;br&amp;gt;&lt;br /&gt;
:::Manual de la aplicación '''''Vivait Call Business''''' en el sistema '''''VIVA'''''it Call  de '''''&amp;lt;span style=&amp;quot;color:#144F9B&amp;quot;&amp;gt;MD&amp;lt;/span&amp;gt;'''''Tel en sus distintas versiones.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::[[Vivait Call Cellular | &amp;lt;big&amp;gt;VIVAit Call Cellular (VCC)&amp;lt;/big&amp;gt;]]&amp;lt;br&amp;gt;&lt;br /&gt;
:::Manual de la aplicación '''''Vivait Call Cellular''''' en el sistema '''''VIVA'''''it Call  de '''''&amp;lt;span style=&amp;quot;color:#144F9B&amp;quot;&amp;gt;MD&amp;lt;/span&amp;gt;'''''Tel en sus distintas versiones.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::[[Equipos en Vivait Web Call | &amp;lt;big&amp;gt;Equipos en Vivait Web Call&amp;lt;/big&amp;gt;]]&amp;lt;br&amp;gt;&lt;br /&gt;
:::Manual de la opción '''''Equipos''''' para ''Vivait Web Call'' en el sistema '''''VIVA'''''it Call  de '''''&amp;lt;span style=&amp;quot;color:#144F9B&amp;quot;&amp;gt;MD&amp;lt;/span&amp;gt;'''''Tel en sus distintas versiones.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::[[Terminales | &amp;lt;big&amp;gt;Terminales Telefónicos&amp;lt;/big&amp;gt;]]&amp;lt;br&amp;gt;&lt;br /&gt;
:::Manuales de los distintos hardphones disponibles en el sistema '''''VIVA'''''it Call  de '''''&amp;lt;span style=&amp;quot;color:#144F9B&amp;quot;&amp;gt;MD&amp;lt;/span&amp;gt;'''''Tel en sus distintas versiones.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Página_principal | Volver a la Página Principal]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:usuario]]&lt;br /&gt;
[[Category:administrador]]&lt;br /&gt;
[[Category:VIVAit Call]]&lt;/div&gt;</summary>
		<author><name>Alfredo.rodriguez</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Telefon%C3%ADa&amp;diff=17220</id>
		<title>Telefonía</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Telefon%C3%ADa&amp;diff=17220"/>
		<updated>2026-03-25T12:53:05Z</updated>

		<summary type="html">&lt;p&gt;Alfredo.rodriguez: &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;
|}&lt;br /&gt;
&amp;lt;big&amp;gt;&lt;br /&gt;
[[File:mdtel_20.png|100px|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Utilizar los enlaces siguientes para acceder a los manuales de las distintas aplicaciones de supervisión del sistema '''''VIVA'''it'' Call.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
::[[Usuario de Vivait Call | &amp;lt;big&amp;gt;Usuario de Vivait Call&amp;lt;/big&amp;gt;]]&amp;lt;br&amp;gt;&lt;br /&gt;
:::Manual de la aplicación '''''Vivait Usuario''''' en el sistema '''''VIVA'''''it Call  de '''''&amp;lt;span style=&amp;quot;color:#144F9B&amp;quot;&amp;gt;MD&amp;lt;/span&amp;gt;'''''Tel en sus distintas versiones.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::[[Vivait Web Call | &amp;lt;big&amp;gt;Portal de Web Call (VWC)&amp;lt;/big&amp;gt;]]&amp;lt;br&amp;gt;&lt;br /&gt;
:::Manual de la aplicación '''''Vivait Web Call''''' en el sistema '''''VIVA'''''it Call  de '''''&amp;lt;span style=&amp;quot;color:#144F9B&amp;quot;&amp;gt;MD&amp;lt;/span&amp;gt;'''''Tel en sus distintas versiones.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::[[Vivait Call Business | &amp;lt;big&amp;gt;VIVAit Call Business (VCB)&amp;lt;/big&amp;gt;]]&amp;lt;br&amp;gt;&lt;br /&gt;
:::Manual de la aplicación '''''Vivait Call Business''''' en el sistema '''''VIVA'''''it Call  de '''''&amp;lt;span style=&amp;quot;color:#144F9B&amp;quot;&amp;gt;MD&amp;lt;/span&amp;gt;'''''Tel en sus distintas versiones.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::[[Vivait Call Cellular | &amp;lt;big&amp;gt;VIVAit Call Cellular (VCC)&amp;lt;/big&amp;gt;]]&amp;lt;br&amp;gt;&lt;br /&gt;
:::Manual de la aplicación '''''Vivait Call Cellular''''' en el sistema '''''VIVA'''''it Call  de '''''&amp;lt;span style=&amp;quot;color:#144F9B&amp;quot;&amp;gt;MD&amp;lt;/span&amp;gt;'''''Tel en sus distintas versiones.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::[[Equipos en Vivait Web Call | &amp;lt;big&amp;gt;Equipos en Vivait Web Call&amp;lt;/big&amp;gt;]]&amp;lt;br&amp;gt;&lt;br /&gt;
:::Manual de la opción '''''Equipos''''' para ''Vivait Web Call'' en el sistema '''''VIVA'''''it Call  de '''''&amp;lt;span style=&amp;quot;color:#144F9B&amp;quot;&amp;gt;MD&amp;lt;/span&amp;gt;'''''Tel en sus distintas versiones.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::[[Terminales | &amp;lt;big&amp;gt;Terminales Telefónicos&amp;lt;/big&amp;gt;]]&amp;lt;br&amp;gt;&lt;br /&gt;
:::Manuales de los distintos hardphones disponibles en el sistema '''''VIVA'''''it Call  de '''''&amp;lt;span style=&amp;quot;color:#144F9B&amp;quot;&amp;gt;MD&amp;lt;/span&amp;gt;'''''Tel en sus distintas versiones.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Página_principal | Volver a la Página Principal]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:usuario]]&lt;br /&gt;
[[Category:administrador]]&lt;br /&gt;
[[Category:VIVAit Call]]&lt;/div&gt;</summary>
		<author><name>Alfredo.rodriguez</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_de_vFlow&amp;diff=17203</id>
		<title>Manual de operación de vFlow</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_de_vFlow&amp;diff=17203"/>
		<updated>2026-03-24T11:26:56Z</updated>

		<summary type="html">&lt;p&gt;Alfredo.rodriguez: /* Ejemplos para omnisuite */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Descripción general vFlow ==&lt;br /&gt;
&lt;br /&gt;
vFlow es un módulo de conexión a sistemas de inteligencia artifical para sistemas de comunicaciones unificadas, ya sean sistemas corporativos o contact center&lt;br /&gt;
Gracias a vFlow, las plataformas de UC dispondrán de una solución para comunicarse con sistemas IA utilizando un mismo mecanismo independientemente de la solución de inteligencia artificial que se utilice&lt;br /&gt;
&lt;br /&gt;
Para proporcionar el servicio de manera completa, vFlow (en concreto el orquestador) se conectará a sistemas de inteligencia artificial (LLM) que permitirán desarrollar los agentes definidos en los orquestadores&lt;br /&gt;
&lt;br /&gt;
'''Conceptos:'''&lt;br /&gt;
* Plataforma&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Plataforma de comunicaciones unificadas; por ejemplo Omnisuite o VIVAit Call&lt;br /&gt;
* Orquestador&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Plataforma agéntica de IA (por ejemplo Flowise)&lt;br /&gt;
* vFlowProxy&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Módulo VIVAit que conecta multiples plataformas con múltiples orquestadores&lt;br /&gt;
* LLM&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Modelo de lenguaje natural que usará un orquestadores&lt;br /&gt;
* Agente&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Cada uno de los flujos creados en vFlow; corresponde a un par plataforma/agentflow de orquestador&lt;br /&gt;
* Servicio&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Cada elemento de negocio en la plataforma de CU (por ejemplo VDN)&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Arquitectura Vflow - v2.jpg|1000px|center|Arquitecura de vFlow]]&lt;br /&gt;
&lt;br /&gt;
Los '''módulos principales''' de vFlow son:&lt;br /&gt;
* vFlowProxy: Recibe las conexiones de los sistemas de comunicaciones unificadas, y conecta con los orquestadores de Inteligencia Artificial de manera segura y adaptada al tipo de servicio; el acceso a vFlow Proxy desde las plataformas se realizará mediante:&lt;br /&gt;
* Programa cliente: Se utiliza en el sistema de comunicaciones unificadas (actualmente VIVAit Call y Omnsisuite) para invocar a vFlow&lt;br /&gt;
* API REST: Alternativa al programa cliente, vFlowProxy proporciona una API REST que facilita que cualquier plataforma pueda comunicarse mediante un procedimiento estándar y documentado&lt;br /&gt;
* Portal de administración vFlow: Permite visualizar las interaciones realizadas y configurar el sistema&lt;br /&gt;
* Orquestador de IA: Herramienta de Inteligencia Artificial que permitirá la creación de aplicaciones personalizadas (agentes)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Otros elementos''' relevantes serán:&lt;br /&gt;
* Base de datos vFlow:&lt;br /&gt;
:* Almacena información sobre sesiones y transacciones realizadas&lt;br /&gt;
:* Almacena información de configuración sobre vFlow&lt;br /&gt;
:* Gestiona el RAG de las inteligencias artificiales a usar&lt;br /&gt;
&lt;br /&gt;
== Puesta en marcha de nodo vFlow ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Existe un nodo vFlow en los repositorios habituales proporcionados&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para '''dar de alta nodo vflow en un cliente''' hay que:&lt;br /&gt;
* Configurar IP (por defecto la maquina va configurada por DHCP)&lt;br /&gt;
* Adaptar el firewall, para ello REVISAR el fichero &amp;lt;code&amp;gt;/etc/firewall/vars.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
* Certificados validos en apache&lt;br /&gt;
* REVISAR ficheros &amp;lt;code&amp;gt;/etc/apache2/sites-enabled/flowise.conf&amp;lt;/code&amp;gt; y &amp;lt;code&amp;gt;/etc/apache2/sites-enabled/vFlow.conf&amp;lt;/code&amp;gt; la variable &amp;lt;code&amp;gt;ServerName&amp;lt;/code&amp;gt; (nombre valido de la maquina)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Accesos vFlow''' (se debe cambiar tras instalación):&lt;br /&gt;
* Usuario ssh y de SO por defecto es sat y clave a proporcionar.&lt;br /&gt;
* Para el portal de flowise las credenciales son usuario: vfloadmin@vflow.com clave: A proporcionar&lt;br /&gt;
* Para el portal de vflow las credenciales son usaurio sat y clave a proporcionar.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Accesos BBDD vFlow'''&lt;br /&gt;
* Para acceder a la base de datos desde el workbenck solo desde localhost (o tunel):&lt;br /&gt;
* BBDD Vlfow (admin)  vflowadmin // clave a proporcionar&lt;br /&gt;
* BBDD Vlfow (no_admin)  vflow //  clave a proporcionar&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Portal orquestador Flowise'''&lt;br /&gt;
&lt;br /&gt;
ubicado en https://host.cliente.xx:4567&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #fef6e7; border: 1px solid #fbd68a; padding: 1em; border-radius: 4px;width: fit-content; margin-left: 50px&amp;quot;&amp;gt;&lt;br /&gt;
'''⚠️ ATENCION !!'''&lt;br /&gt;
'''Los cambios en tablas de configuración de BBDD de vFlow (orquestadores, plataformas, agentes) requieren reinicio del servicio vFlowProxy'''&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', 'Monaco', 'Courier New', monospace;&amp;quot;&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service status&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service stop&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service start&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El fichero de configuración del demonio &amp;lt;cvode&amp;gt;vFlowProxy&amp;lt;/code&amp;gt; se encuentra en &amp;lt;code&amp;gt;/etc/MDtel/vFlowProxy.conf&amp;lt;/code&amp;gt;, si bien este fichero de configuración no se modificará habitualmente (los parámetros generales de configuración de vFlowProxy se encuentran en la BBDD de vFlow)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Relevante para poder '''poner en marcha un loader''':&lt;br /&gt;
* Subir el fichero inicial previamente a la carpeta destino según entorno (p. ej &amp;lt;code&amp;gt;/var/www/html/storages/production&amp;lt;/code&amp;gt;&lt;br /&gt;
* Tipo de loader --&amp;gt; API&lt;br /&gt;
* Método --&amp;gt; GET&lt;br /&gt;
* URL --&amp;gt; (ejemplo: http://172.25.129.242/storages/test/fichero-pru.txt)&lt;br /&gt;
::* Existirán URL &amp;quot;production&amp;quot;, &amp;quot;staging&amp;quot; y &amp;quot;test&amp;quot;&lt;br /&gt;
* Text Splitter: Recursive&lt;br /&gt;
* Qdrant --&amp;gt; localhost:6333&lt;br /&gt;
* Record Manager --&amp;gt; SQLite&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Se adjunta imagen a modo de ejemplo&lt;br /&gt;
[[Archivo:Alta loader vflow.png|800px|miniaturadeimagen|no|alta loader vFlow|link=]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gestión en vFlow ==&lt;br /&gt;
vFlow prevé la existencia de tres entornos que permita hacer una gestión segura de agentes y RAG:&lt;br /&gt;
&lt;br /&gt;
* Producción&lt;br /&gt;
* Preproducción&lt;br /&gt;
* Pruebas&lt;br /&gt;
&lt;br /&gt;
Para cada agente o store de RAG se podrá desplegar un entorno (producción), dos o los tres entornos&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #f0fff4; border: 3px solid #c6f6d5; padding: 1em; border-radius: 4px;width: fit-content; margin-left: 0px&amp;quot;&amp;gt;&lt;br /&gt;
✅ '''Recomendación'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En la mayoría de los casos con disponer de entorno de producción y preproducción tanto para agente como para RAG será suficiente&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Para realizar una gestión completa en vFlow (suponiendo tres entornos y gestión de agentes y RAG), deberemos tener&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Archivo:Gestión RAG.png|1000px|miniaturadeimagen|centro|Gestión RAG en vFlow|link=]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''En orquestador'''&lt;br /&gt;
* Crear '''tres stores''' (pro/pre/pru); en cada store:&lt;br /&gt;
::* En total '''tres loaders'''. Crear un loader por entorno (p.ej /pro/nombrefich). &lt;br /&gt;
::* Subir un primer &amp;quot;nombrefich&amp;quot;&lt;br /&gt;
::::* tipo texto (versión 0)&lt;br /&gt;
::::* el mismo para todos los entornos&lt;br /&gt;
::::* se sube por medios convencionales (p. ej SCP)&lt;br /&gt;
* Asegurar que los stores queden totalmente creados (estado &amp;quot;UPSERTED&amp;quot;)&lt;br /&gt;
* Crear '''tres agentes''' (pro/pre/pru)&lt;br /&gt;
::* Asociar a stores (pro/pre/pru)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''En flow'''&lt;br /&gt;
* Crear '''un agente'''&lt;br /&gt;
::* Vincularlo a los tres agentes de orquestador (pro/pre/pru)&lt;br /&gt;
* Crear '''un store'''&lt;br /&gt;
::* Vinculado a los tres stores de orquestador (pro/pre/pru)&lt;br /&gt;
* Crear '''un loader'''&lt;br /&gt;
::* Loader vinculado a agente de vflow&lt;br /&gt;
::* C_NAME loader coincidirá con los de orquestador (p.ej &amp;quot;nombrefich&amp;quot;)&lt;br /&gt;
::* Subir nueva versión v1 (&amp;quot;.txt&amp;quot;, &amp;quot;.pdf&amp;quot;, &amp;quot;.doc&amp;quot;, &amp;quot;.docx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Diagnósticos ==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/vFlowProxy/vFlowProxy.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En nodo vFlowProxy&lt;br /&gt;
::para cualquier canal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
nc localhost 1131&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En nodo vFlowProxy&lt;br /&gt;
::Monitoriza estado del proceso vflowProxy&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
  &amp;quot;proceso&amp;quot;: {&lt;br /&gt;
    &amp;quot;nombre&amp;quot;: &amp;quot;vFlowProxy&amp;quot;,&lt;br /&gt;
    &amp;quot;version&amp;quot;: &amp;quot;00.00.01&amp;quot;,&lt;br /&gt;
    &amp;quot;inicio_ts&amp;quot;: 1771315153,&lt;br /&gt;
    &amp;quot;inicio_cad&amp;quot;: &amp;quot;20260217 085913&amp;quot;,&lt;br /&gt;
    &amp;quot;log_alarmas_val&amp;quot;: 8,&lt;br /&gt;
    &amp;quot;log_alarma_ultimo_ts&amp;quot;: 1771970401,&lt;br /&gt;
    &amp;quot;log_alarma_ultimo_ts_cad&amp;quot;: &amp;quot;20260224 230001&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;diagnostico&amp;quot;: {&lt;br /&gt;
    &amp;quot;gmp&amp;quot;: {&lt;br /&gt;
      &amp;quot;msj_val&amp;quot;: 1022,&lt;br /&gt;
      &amp;quot;msj_max&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;buf_val&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;buf_max&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;tarea_val&amp;quot;: 7,&lt;br /&gt;
      &amp;quot;tarea_max&amp;quot;: 15&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;tiempo&amp;quot;: {&lt;br /&gt;
      &amp;quot;uptime&amp;quot;: 716665,&lt;br /&gt;
      &amp;quot;uptime_dias&amp;quot;: 8,&lt;br /&gt;
      &amp;quot;uptime_horas&amp;quot;: 7,&lt;br /&gt;
      &amp;quot;uptime_minutos&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;uptime_segundos&amp;quot;: 25&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;wws&amp;quot;: {&lt;br /&gt;
      &amp;quot;conexiones_val&amp;quot;: 0,&lt;br /&gt;
      &amp;quot;conexiones_max_periodo&amp;quot;: 0,&lt;br /&gt;
      &amp;quot;hilos_val&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;hilos_max&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;wsi_cad&amp;quot;: &amp;quot;sesiones=0/200&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;alarmas_nivel_max&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;alarmas&amp;quot;: []&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es relevante la monitorización de sesiones  &amp;lt;code&amp;gt;&amp;quot;wsi_cad&amp;quot;: &amp;quot;sesiones=0/200&amp;quot;&amp;lt;/code&amp;gt; (usadas/máximas)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
asterisk -rv | grep callsquare_name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::en nodo Omnisuite&lt;br /&gt;
::para canal voz&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/xcally/agi-combined.yyyy-mm-dd.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::en nodo Omnisuite&lt;br /&gt;
::para canal voz&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/xcally/routing-combined.yyyy-mm-dd.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::para canal voz&lt;br /&gt;
&lt;br /&gt;
== Para probar desde vFlow ==&lt;br /&gt;
&lt;br /&gt;
En /home/sat/vFlowProxy hay scripts de prueba (se configuran en el vars.sh); para usar los scripts de prueba tendremos que tener también &amp;quot;.ini&amp;quot; en vFlow&lt;br /&gt;
&lt;br /&gt;
Es útil comenzar con&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/home/sat/vFlowProxy/vFlowGetInfo.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
que sin parámetros adicionales confirma el correcto estado de vFlowProxy&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
  &amp;quot;app&amp;quot;: &amp;quot;vFlowProxy&amp;quot;,&lt;br /&gt;
  &amp;quot;version&amp;quot;: &amp;quot;00.00.01&amp;quot;,&lt;br /&gt;
  &amp;quot;sessions_opened&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;sessions_limit&amp;quot;: 200,&lt;br /&gt;
  &amp;quot;sessions_sleep_timeout_s&amp;quot;: 3600,&lt;br /&gt;
  &amp;quot;alarms&amp;quot;: 8&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Integración de vFlow desde Omnisuite ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Descripción general ===&lt;br /&gt;
En Omnisuite, la integración con vFlow, se realiza con el programa vFlowOmnisuite, que podrá ser invocado como ejecutable (más rápido, para debian), o como Python (más universal)&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
    /usr/local/sbin/vFlowOmnisuite (OPCIÓN PREFERENTE)&lt;br /&gt;
    /usr/local/sbin/vFlowOmnisuite.py (LEGACY)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Asociado al programa existen los siguientes ficheros de configuración (.ini):&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; de plataforma''' Omnisuite en vFlow --&amp;gt; Solo contiene uuid de la plataforma; se entrega un &amp;quot;.ini&amp;quot; a modo de ejemplo en &amp;lt;code&amp;gt;/etc/MDtel/vFlow/platform.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE PLATAFORMA&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
   [uuids]&lt;br /&gt;
   platform=1d111530-e22d-11f0-b0f2-5254008bef96&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; por agente''' en vFlow --&amp;gt; Solo contiene uuid del agente según su identificación en vFlow ('''NO''' en un orquestador, por ejemplo flowise); se entrega un &amp;quot;.ini&amp;quot; asociado a un agente &amp;quot;loop&amp;quot; existente en Flowise &amp;lt;code&amp;gt;/etc/MDtel/vFlow/agent_loop_01.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE AGENTE&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
   [uuids]&lt;br /&gt;
   agent=1a3a1020-ea1d-11f0-b4a5-5254008bef96&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; por servicio''' --&amp;gt; Configuración de cada servicio en Omnisuite; se entrega un &amp;quot;.ini&amp;quot; a modo de ejemplo en &amp;lt;code&amp;gt;/etc/MDtel/vFlow/service.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
En cada fichero de servicio configuraremos&lt;br /&gt;
::* Donde está Vflow&lt;br /&gt;
::* Agente&lt;br /&gt;
::* Plataforma&lt;br /&gt;
::* timeout_s --&amp;gt; Importante, es afectado por el LLM&lt;br /&gt;
::* channel_text_type --&amp;gt; IMPORTANTE si el servicio es de texto que esté bien (vacio solo si el servicio es de texto, NO COMENTARLO)&lt;br /&gt;
::* environment --&amp;gt; production, staging, test&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE SERVICIO&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
  [arch_uuids]&lt;br /&gt;
  agent=/etc/MDtel/vFlow/agent_loop_01.ini&lt;br /&gt;
  platform=/etc/MDtel/vFlow/platform.ini&lt;br /&gt;
&lt;br /&gt;
  [vflow]&lt;br /&gt;
  host_port=172.25.129.242:7900&lt;br /&gt;
  timeout_s=20&lt;br /&gt;
  # channel_type=[voice|chat|email]&lt;br /&gt;
  channel_type=chat&lt;br /&gt;
  # environment=[production|staging|test]&lt;br /&gt;
  environment=production&lt;br /&gt;
  language=es&lt;br /&gt;
&lt;br /&gt;
  [omnisuite]&lt;br /&gt;
  # channel_text_type=[chat|mail|sms|whatsup]&lt;br /&gt;
  channel_text_type=chat&lt;br /&gt;
  service_id=vflow_service_id&lt;br /&gt;
  service_name=vflow_service_name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La imagen siguiente muestra el esquema de relación entre orquestador/plataforma/agente/servicio en la plataforma y en vFlow&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Relaciones vFlow plat orq ag serv.png|800px|miniaturadeimagen|centro|Relación orquestador-plataforma-agente-servicio]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Invocación ===&lt;br /&gt;
==== Generales ====&lt;br /&gt;
&lt;br /&gt;
===== Ver configuración =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; configPrint&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
Configuration:&lt;br /&gt;
  agent_arch_uuid=/etc/MDtel/vFlow/agent_fse_rapido.ini&lt;br /&gt;
  agent_uuid=3487af28-1d14-11f1-803c-525400ef204c&lt;br /&gt;
  platform_arch_uuid=/etc/MDtel/vFlow/platform_labomsui.ini&lt;br /&gt;
  platform_uuid=9a54ea74-f050-11f0-bdf1-5254008bef96&lt;br /&gt;
&lt;br /&gt;
  vflow_host_port=labvflow.mdnova.local&lt;br /&gt;
  vflow_timeout_s=50&lt;br /&gt;
  vflow_environment=production&lt;br /&gt;
  vflow_channel_type=voice&lt;br /&gt;
  vflow_language=es&lt;br /&gt;
&lt;br /&gt;
  omnisuite_channel_text_type=chat&lt;br /&gt;
  omnisuite_service_id=287&lt;br /&gt;
  omnisuite_service_name=desarrollo&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;errorCad&amp;quot;: &amp;quot;OK&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Ver versión =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite version&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
00.00.02&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Para canales de texto ====&lt;br /&gt;
&lt;br /&gt;
Para canales de texto en Omnisuite existe un único Comando de invocación &amp;quot;omnisuiteText&amp;quot;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; omnisuiteText &amp;lt;omnisuite_id&amp;gt; &amp;lt;omnisuite_websiteId&amp;gt; &amp;lt;omnisuite_createdAt&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt; &amp;lt;question&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros ( Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Obligatoriedad !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;config_arch&amp;gt;` || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_id&amp;gt;` || OBLIGATORIO || Identificativo de la interacción en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_websiteId&amp;gt;` || OBLIGATORIO || Identificativo del servicio en Omnisuite (ej. website id en chat)&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_createdAt&amp;gt;` || OBLIGATORIO || Creación de la interacción&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_id&amp;gt;` || OPCIONAL || Id de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_phone_number&amp;gt;` || OPCIONAL || Telf de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_email&amp;gt;` || OPCIONAL || Email de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;question&amp;gt;` || OBLIGATORIO || Texto a enviar al orquestado (p. ej. Flowise)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
 &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
 &amp;quot;session&amp;quot;: &amp;quot;e926548d-fdcf-11f0-a793-525400ef204c&amp;quot;,&lt;br /&gt;
 &amp;quot;language&amp;quot;: &amp;quot;es&amp;quot;,&lt;br /&gt;
 &amp;quot;response&amp;quot;: &amp;quot;HOLA&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Para canales de voz ====&lt;br /&gt;
Para  canales de voz, existen comandos para &amp;quot;abrir sesión&amp;quot;, &amp;quot;enviar texto&amp;quot; y &amp;quot;cerrar sesión&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Abrir sesión =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; sessionOpen &amp;lt;omnisuite_UniqueId&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros (Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Requisito !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;omnisuite_UniqueId&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Unique_ID de asterisk de la llamada en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_id&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Id de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_phone_number&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Telf de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_email&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Email de cliente en Omnisuite&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
    &amp;quot;session&amp;quot;: &amp;quot;ec73df29-f08a-11f0-a8ec-525400ef204c&amp;quot;,&lt;br /&gt;
    &amp;quot;platform_id&amp;quot;: &amp;quot;146&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''El value correspondiente al key &amp;quot;session&amp;quot; deberá ser guardado en una variable para siguientes invocaciones'''&lt;br /&gt;
&lt;br /&gt;
===== Enviar texto =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; textRequest &amp;lt;vflow_session_uuid&amp;gt; &amp;lt;question&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Requisito !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_session_uuid&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Variable &amp;quot;session&amp;quot; almacenada en el &amp;quot;sessionOpen&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;question&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Texto a enviar al orquestado (p. ej. Flowise) (normal, abandoned, other)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
    &amp;quot;session&amp;quot;: &amp;quot;c6f6fad7-f6c1-11f0-a793-525400ef204c&amp;quot;,&lt;br /&gt;
    &amp;quot;language&amp;quot;: &amp;quot;ES&amp;quot;,&lt;br /&gt;
    &amp;quot;response&amp;quot;: &amp;quot;Cristóbal Colón.&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Cerrar sesión=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; sessionClose &amp;lt;vflow_session_uuid&amp;gt; &amp;lt;vflow_cause&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros  (Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Estado !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_session_uuid&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Variable &amp;quot;session&amp;quot; almacenada en el &amp;quot;sessionOpen&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_cause&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || (normal, abandoned, expired, other)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 104,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;Wrong session&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ejemplos para omnisuite ===&lt;br /&gt;
&lt;br /&gt;
==== Ejemplo de chat ====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_chat.ini&amp;quot; &amp;quot;omnisuiteText&amp;quot; &amp;quot;{{interaction.id}}&amp;quot; &amp;quot;{{account.id}}&amp;quot; &amp;quot;{{interaction.createdAt}}&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;{{message.body}}&amp;quot; | jq -r '.response'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Ejemplo de voz ====&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen cally square.jpg|1024px|none|miniatura|Ejemplo de flujo de Cally Square]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_voice.ini&amp;quot; &amp;quot;sessionOpen&amp;quot; &amp;quot;{UNIQUEID}&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; |  jq -r '.session' &amp;lt;/pre&amp;gt;&lt;br /&gt;
::&amp;lt;small&amp;gt;salida del comando almacenado en variable &amp;quot;vflow_sessionopen_response&amp;quot; para su posterior uso en cally square&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen sessionopen.jpg|550px|center|miniatura|Abrir sesión en vFlow]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_desa_voz.ini&amp;quot; &amp;quot;textRequest&amp;quot; &amp;quot;{vflow_sessionopen_response}&amp;quot; &amp;quot;{OPENAI_WHISPER_TRANSCRIPT}&amp;quot; | jq -r '.response'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::&amp;lt;small&amp;gt;la voz se ha transcrito con OpenAI, por eso se usa como parámetro {OPENAI_WHISPER_TRANSCRIPT})&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen textrequest.jpg|550px|center|miniatura|Enviar texto en vFlow]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt; &lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_desa_voz.ini&amp;quot; &amp;quot;sessionClose&amp;quot; &amp;quot;{{vflow_sessionopen_response}}&amp;quot; &amp;quot;normal&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen sessionclose.jpg|900px|center|miniatura|Cerrar sesión en vFlow]]&lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:VIVAit Call]]&lt;br /&gt;
[[Category:Omnisuite]]&lt;br /&gt;
[[Category:IA]]&lt;/div&gt;</summary>
		<author><name>Alfredo.rodriguez</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_de_vFlow&amp;diff=17202</id>
		<title>Manual de operación de vFlow</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_de_vFlow&amp;diff=17202"/>
		<updated>2026-03-24T11:26:01Z</updated>

		<summary type="html">&lt;p&gt;Alfredo.rodriguez: /* Generales */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Descripción general vFlow ==&lt;br /&gt;
&lt;br /&gt;
vFlow es un módulo de conexión a sistemas de inteligencia artifical para sistemas de comunicaciones unificadas, ya sean sistemas corporativos o contact center&lt;br /&gt;
Gracias a vFlow, las plataformas de UC dispondrán de una solución para comunicarse con sistemas IA utilizando un mismo mecanismo independientemente de la solución de inteligencia artificial que se utilice&lt;br /&gt;
&lt;br /&gt;
Para proporcionar el servicio de manera completa, vFlow (en concreto el orquestador) se conectará a sistemas de inteligencia artificial (LLM) que permitirán desarrollar los agentes definidos en los orquestadores&lt;br /&gt;
&lt;br /&gt;
'''Conceptos:'''&lt;br /&gt;
* Plataforma&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Plataforma de comunicaciones unificadas; por ejemplo Omnisuite o VIVAit Call&lt;br /&gt;
* Orquestador&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Plataforma agéntica de IA (por ejemplo Flowise)&lt;br /&gt;
* vFlowProxy&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Módulo VIVAit que conecta multiples plataformas con múltiples orquestadores&lt;br /&gt;
* LLM&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Modelo de lenguaje natural que usará un orquestadores&lt;br /&gt;
* Agente&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Cada uno de los flujos creados en vFlow; corresponde a un par plataforma/agentflow de orquestador&lt;br /&gt;
* Servicio&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Cada elemento de negocio en la plataforma de CU (por ejemplo VDN)&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Arquitectura Vflow - v2.jpg|1000px|center|Arquitecura de vFlow]]&lt;br /&gt;
&lt;br /&gt;
Los '''módulos principales''' de vFlow son:&lt;br /&gt;
* vFlowProxy: Recibe las conexiones de los sistemas de comunicaciones unificadas, y conecta con los orquestadores de Inteligencia Artificial de manera segura y adaptada al tipo de servicio; el acceso a vFlow Proxy desde las plataformas se realizará mediante:&lt;br /&gt;
* Programa cliente: Se utiliza en el sistema de comunicaciones unificadas (actualmente VIVAit Call y Omnsisuite) para invocar a vFlow&lt;br /&gt;
* API REST: Alternativa al programa cliente, vFlowProxy proporciona una API REST que facilita que cualquier plataforma pueda comunicarse mediante un procedimiento estándar y documentado&lt;br /&gt;
* Portal de administración vFlow: Permite visualizar las interaciones realizadas y configurar el sistema&lt;br /&gt;
* Orquestador de IA: Herramienta de Inteligencia Artificial que permitirá la creación de aplicaciones personalizadas (agentes)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Otros elementos''' relevantes serán:&lt;br /&gt;
* Base de datos vFlow:&lt;br /&gt;
:* Almacena información sobre sesiones y transacciones realizadas&lt;br /&gt;
:* Almacena información de configuración sobre vFlow&lt;br /&gt;
:* Gestiona el RAG de las inteligencias artificiales a usar&lt;br /&gt;
&lt;br /&gt;
== Puesta en marcha de nodo vFlow ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Existe un nodo vFlow en los repositorios habituales proporcionados&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para '''dar de alta nodo vflow en un cliente''' hay que:&lt;br /&gt;
* Configurar IP (por defecto la maquina va configurada por DHCP)&lt;br /&gt;
* Adaptar el firewall, para ello REVISAR el fichero &amp;lt;code&amp;gt;/etc/firewall/vars.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
* Certificados validos en apache&lt;br /&gt;
* REVISAR ficheros &amp;lt;code&amp;gt;/etc/apache2/sites-enabled/flowise.conf&amp;lt;/code&amp;gt; y &amp;lt;code&amp;gt;/etc/apache2/sites-enabled/vFlow.conf&amp;lt;/code&amp;gt; la variable &amp;lt;code&amp;gt;ServerName&amp;lt;/code&amp;gt; (nombre valido de la maquina)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Accesos vFlow''' (se debe cambiar tras instalación):&lt;br /&gt;
* Usuario ssh y de SO por defecto es sat y clave a proporcionar.&lt;br /&gt;
* Para el portal de flowise las credenciales son usuario: vfloadmin@vflow.com clave: A proporcionar&lt;br /&gt;
* Para el portal de vflow las credenciales son usaurio sat y clave a proporcionar.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Accesos BBDD vFlow'''&lt;br /&gt;
* Para acceder a la base de datos desde el workbenck solo desde localhost (o tunel):&lt;br /&gt;
* BBDD Vlfow (admin)  vflowadmin // clave a proporcionar&lt;br /&gt;
* BBDD Vlfow (no_admin)  vflow //  clave a proporcionar&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Portal orquestador Flowise'''&lt;br /&gt;
&lt;br /&gt;
ubicado en https://host.cliente.xx:4567&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #fef6e7; border: 1px solid #fbd68a; padding: 1em; border-radius: 4px;width: fit-content; margin-left: 50px&amp;quot;&amp;gt;&lt;br /&gt;
'''⚠️ ATENCION !!'''&lt;br /&gt;
'''Los cambios en tablas de configuración de BBDD de vFlow (orquestadores, plataformas, agentes) requieren reinicio del servicio vFlowProxy'''&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', 'Monaco', 'Courier New', monospace;&amp;quot;&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service status&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service stop&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service start&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El fichero de configuración del demonio &amp;lt;cvode&amp;gt;vFlowProxy&amp;lt;/code&amp;gt; se encuentra en &amp;lt;code&amp;gt;/etc/MDtel/vFlowProxy.conf&amp;lt;/code&amp;gt;, si bien este fichero de configuración no se modificará habitualmente (los parámetros generales de configuración de vFlowProxy se encuentran en la BBDD de vFlow)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Relevante para poder '''poner en marcha un loader''':&lt;br /&gt;
* Subir el fichero inicial previamente a la carpeta destino según entorno (p. ej &amp;lt;code&amp;gt;/var/www/html/storages/production&amp;lt;/code&amp;gt;&lt;br /&gt;
* Tipo de loader --&amp;gt; API&lt;br /&gt;
* Método --&amp;gt; GET&lt;br /&gt;
* URL --&amp;gt; (ejemplo: http://172.25.129.242/storages/test/fichero-pru.txt)&lt;br /&gt;
::* Existirán URL &amp;quot;production&amp;quot;, &amp;quot;staging&amp;quot; y &amp;quot;test&amp;quot;&lt;br /&gt;
* Text Splitter: Recursive&lt;br /&gt;
* Qdrant --&amp;gt; localhost:6333&lt;br /&gt;
* Record Manager --&amp;gt; SQLite&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Se adjunta imagen a modo de ejemplo&lt;br /&gt;
[[Archivo:Alta loader vflow.png|800px|miniaturadeimagen|no|alta loader vFlow|link=]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gestión en vFlow ==&lt;br /&gt;
vFlow prevé la existencia de tres entornos que permita hacer una gestión segura de agentes y RAG:&lt;br /&gt;
&lt;br /&gt;
* Producción&lt;br /&gt;
* Preproducción&lt;br /&gt;
* Pruebas&lt;br /&gt;
&lt;br /&gt;
Para cada agente o store de RAG se podrá desplegar un entorno (producción), dos o los tres entornos&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #f0fff4; border: 3px solid #c6f6d5; padding: 1em; border-radius: 4px;width: fit-content; margin-left: 0px&amp;quot;&amp;gt;&lt;br /&gt;
✅ '''Recomendación'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En la mayoría de los casos con disponer de entorno de producción y preproducción tanto para agente como para RAG será suficiente&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Para realizar una gestión completa en vFlow (suponiendo tres entornos y gestión de agentes y RAG), deberemos tener&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Archivo:Gestión RAG.png|1000px|miniaturadeimagen|centro|Gestión RAG en vFlow|link=]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''En orquestador'''&lt;br /&gt;
* Crear '''tres stores''' (pro/pre/pru); en cada store:&lt;br /&gt;
::* En total '''tres loaders'''. Crear un loader por entorno (p.ej /pro/nombrefich). &lt;br /&gt;
::* Subir un primer &amp;quot;nombrefich&amp;quot;&lt;br /&gt;
::::* tipo texto (versión 0)&lt;br /&gt;
::::* el mismo para todos los entornos&lt;br /&gt;
::::* se sube por medios convencionales (p. ej SCP)&lt;br /&gt;
* Asegurar que los stores queden totalmente creados (estado &amp;quot;UPSERTED&amp;quot;)&lt;br /&gt;
* Crear '''tres agentes''' (pro/pre/pru)&lt;br /&gt;
::* Asociar a stores (pro/pre/pru)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''En flow'''&lt;br /&gt;
* Crear '''un agente'''&lt;br /&gt;
::* Vincularlo a los tres agentes de orquestador (pro/pre/pru)&lt;br /&gt;
* Crear '''un store'''&lt;br /&gt;
::* Vinculado a los tres stores de orquestador (pro/pre/pru)&lt;br /&gt;
* Crear '''un loader'''&lt;br /&gt;
::* Loader vinculado a agente de vflow&lt;br /&gt;
::* C_NAME loader coincidirá con los de orquestador (p.ej &amp;quot;nombrefich&amp;quot;)&lt;br /&gt;
::* Subir nueva versión v1 (&amp;quot;.txt&amp;quot;, &amp;quot;.pdf&amp;quot;, &amp;quot;.doc&amp;quot;, &amp;quot;.docx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Diagnósticos ==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/vFlowProxy/vFlowProxy.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En nodo vFlowProxy&lt;br /&gt;
::para cualquier canal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
nc localhost 1131&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En nodo vFlowProxy&lt;br /&gt;
::Monitoriza estado del proceso vflowProxy&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
  &amp;quot;proceso&amp;quot;: {&lt;br /&gt;
    &amp;quot;nombre&amp;quot;: &amp;quot;vFlowProxy&amp;quot;,&lt;br /&gt;
    &amp;quot;version&amp;quot;: &amp;quot;00.00.01&amp;quot;,&lt;br /&gt;
    &amp;quot;inicio_ts&amp;quot;: 1771315153,&lt;br /&gt;
    &amp;quot;inicio_cad&amp;quot;: &amp;quot;20260217 085913&amp;quot;,&lt;br /&gt;
    &amp;quot;log_alarmas_val&amp;quot;: 8,&lt;br /&gt;
    &amp;quot;log_alarma_ultimo_ts&amp;quot;: 1771970401,&lt;br /&gt;
    &amp;quot;log_alarma_ultimo_ts_cad&amp;quot;: &amp;quot;20260224 230001&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;diagnostico&amp;quot;: {&lt;br /&gt;
    &amp;quot;gmp&amp;quot;: {&lt;br /&gt;
      &amp;quot;msj_val&amp;quot;: 1022,&lt;br /&gt;
      &amp;quot;msj_max&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;buf_val&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;buf_max&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;tarea_val&amp;quot;: 7,&lt;br /&gt;
      &amp;quot;tarea_max&amp;quot;: 15&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;tiempo&amp;quot;: {&lt;br /&gt;
      &amp;quot;uptime&amp;quot;: 716665,&lt;br /&gt;
      &amp;quot;uptime_dias&amp;quot;: 8,&lt;br /&gt;
      &amp;quot;uptime_horas&amp;quot;: 7,&lt;br /&gt;
      &amp;quot;uptime_minutos&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;uptime_segundos&amp;quot;: 25&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;wws&amp;quot;: {&lt;br /&gt;
      &amp;quot;conexiones_val&amp;quot;: 0,&lt;br /&gt;
      &amp;quot;conexiones_max_periodo&amp;quot;: 0,&lt;br /&gt;
      &amp;quot;hilos_val&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;hilos_max&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;wsi_cad&amp;quot;: &amp;quot;sesiones=0/200&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;alarmas_nivel_max&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;alarmas&amp;quot;: []&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es relevante la monitorización de sesiones  &amp;lt;code&amp;gt;&amp;quot;wsi_cad&amp;quot;: &amp;quot;sesiones=0/200&amp;quot;&amp;lt;/code&amp;gt; (usadas/máximas)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
asterisk -rv | grep callsquare_name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::en nodo Omnisuite&lt;br /&gt;
::para canal voz&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/xcally/agi-combined.yyyy-mm-dd.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::en nodo Omnisuite&lt;br /&gt;
::para canal voz&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/xcally/routing-combined.yyyy-mm-dd.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::para canal voz&lt;br /&gt;
&lt;br /&gt;
== Para probar desde vFlow ==&lt;br /&gt;
&lt;br /&gt;
En /home/sat/vFlowProxy hay scripts de prueba (se configuran en el vars.sh); para usar los scripts de prueba tendremos que tener también &amp;quot;.ini&amp;quot; en vFlow&lt;br /&gt;
&lt;br /&gt;
Es útil comenzar con&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/home/sat/vFlowProxy/vFlowGetInfo.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
que sin parámetros adicionales confirma el correcto estado de vFlowProxy&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
  &amp;quot;app&amp;quot;: &amp;quot;vFlowProxy&amp;quot;,&lt;br /&gt;
  &amp;quot;version&amp;quot;: &amp;quot;00.00.01&amp;quot;,&lt;br /&gt;
  &amp;quot;sessions_opened&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;sessions_limit&amp;quot;: 200,&lt;br /&gt;
  &amp;quot;sessions_sleep_timeout_s&amp;quot;: 3600,&lt;br /&gt;
  &amp;quot;alarms&amp;quot;: 8&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Integración de vFlow desde Omnisuite ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Descripción general ===&lt;br /&gt;
En Omnisuite, la integración con vFlow, se realiza con el programa vFlowOmnisuite, que podrá ser invocado como ejecutable (más rápido, para debian), o como Python (más universal)&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
    /usr/local/sbin/vFlowOmnisuite (OPCIÓN PREFERENTE)&lt;br /&gt;
    /usr/local/sbin/vFlowOmnisuite.py (LEGACY)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Asociado al programa existen los siguientes ficheros de configuración (.ini):&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; de plataforma''' Omnisuite en vFlow --&amp;gt; Solo contiene uuid de la plataforma; se entrega un &amp;quot;.ini&amp;quot; a modo de ejemplo en &amp;lt;code&amp;gt;/etc/MDtel/vFlow/platform.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE PLATAFORMA&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
   [uuids]&lt;br /&gt;
   platform=1d111530-e22d-11f0-b0f2-5254008bef96&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; por agente''' en vFlow --&amp;gt; Solo contiene uuid del agente según su identificación en vFlow ('''NO''' en un orquestador, por ejemplo flowise); se entrega un &amp;quot;.ini&amp;quot; asociado a un agente &amp;quot;loop&amp;quot; existente en Flowise &amp;lt;code&amp;gt;/etc/MDtel/vFlow/agent_loop_01.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE AGENTE&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
   [uuids]&lt;br /&gt;
   agent=1a3a1020-ea1d-11f0-b4a5-5254008bef96&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; por servicio''' --&amp;gt; Configuración de cada servicio en Omnisuite; se entrega un &amp;quot;.ini&amp;quot; a modo de ejemplo en &amp;lt;code&amp;gt;/etc/MDtel/vFlow/service.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
En cada fichero de servicio configuraremos&lt;br /&gt;
::* Donde está Vflow&lt;br /&gt;
::* Agente&lt;br /&gt;
::* Plataforma&lt;br /&gt;
::* timeout_s --&amp;gt; Importante, es afectado por el LLM&lt;br /&gt;
::* channel_text_type --&amp;gt; IMPORTANTE si el servicio es de texto que esté bien (vacio solo si el servicio es de texto, NO COMENTARLO)&lt;br /&gt;
::* environment --&amp;gt; production, staging, test&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE SERVICIO&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
  [arch_uuids]&lt;br /&gt;
  agent=/etc/MDtel/vFlow/agent_loop_01.ini&lt;br /&gt;
  platform=/etc/MDtel/vFlow/platform.ini&lt;br /&gt;
&lt;br /&gt;
  [vflow]&lt;br /&gt;
  host_port=172.25.129.242:7900&lt;br /&gt;
  timeout_s=20&lt;br /&gt;
  # channel_type=[voice|chat|email]&lt;br /&gt;
  channel_type=chat&lt;br /&gt;
  # environment=[production|staging|test]&lt;br /&gt;
  environment=production&lt;br /&gt;
  language=es&lt;br /&gt;
&lt;br /&gt;
  [omnisuite]&lt;br /&gt;
  # channel_text_type=[chat|mail|sms|whatsup]&lt;br /&gt;
  channel_text_type=chat&lt;br /&gt;
  service_id=vflow_service_id&lt;br /&gt;
  service_name=vflow_service_name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La imagen siguiente muestra el esquema de relación entre orquestador/plataforma/agente/servicio en la plataforma y en vFlow&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Relaciones vFlow plat orq ag serv.png|800px|miniaturadeimagen|centro|Relación orquestador-plataforma-agente-servicio]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Invocación ===&lt;br /&gt;
==== Generales ====&lt;br /&gt;
&lt;br /&gt;
===== Ver configuración =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; configPrint&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
Configuration:&lt;br /&gt;
  agent_arch_uuid=/etc/MDtel/vFlow/agent_fse_rapido.ini&lt;br /&gt;
  agent_uuid=3487af28-1d14-11f1-803c-525400ef204c&lt;br /&gt;
  platform_arch_uuid=/etc/MDtel/vFlow/platform_labomsui.ini&lt;br /&gt;
  platform_uuid=9a54ea74-f050-11f0-bdf1-5254008bef96&lt;br /&gt;
&lt;br /&gt;
  vflow_host_port=labvflow.mdnova.local&lt;br /&gt;
  vflow_timeout_s=50&lt;br /&gt;
  vflow_environment=production&lt;br /&gt;
  vflow_channel_type=voice&lt;br /&gt;
  vflow_language=es&lt;br /&gt;
&lt;br /&gt;
  omnisuite_channel_text_type=chat&lt;br /&gt;
  omnisuite_service_id=287&lt;br /&gt;
  omnisuite_service_name=desarrollo&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;errorCad&amp;quot;: &amp;quot;OK&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Ver versión =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite version&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
00.00.02&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Para canales de texto ====&lt;br /&gt;
&lt;br /&gt;
Para canales de texto en Omnisuite existe un único Comando de invocación &amp;quot;omnisuiteText&amp;quot;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; omnisuiteText &amp;lt;omnisuite_id&amp;gt; &amp;lt;omnisuite_websiteId&amp;gt; &amp;lt;omnisuite_createdAt&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt; &amp;lt;question&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros ( Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Obligatoriedad !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;config_arch&amp;gt;` || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_id&amp;gt;` || OBLIGATORIO || Identificativo de la interacción en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_websiteId&amp;gt;` || OBLIGATORIO || Identificativo del servicio en Omnisuite (ej. website id en chat)&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_createdAt&amp;gt;` || OBLIGATORIO || Creación de la interacción&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_id&amp;gt;` || OPCIONAL || Id de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_phone_number&amp;gt;` || OPCIONAL || Telf de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_email&amp;gt;` || OPCIONAL || Email de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;question&amp;gt;` || OBLIGATORIO || Texto a enviar al orquestado (p. ej. Flowise)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
 &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
 &amp;quot;session&amp;quot;: &amp;quot;e926548d-fdcf-11f0-a793-525400ef204c&amp;quot;,&lt;br /&gt;
 &amp;quot;language&amp;quot;: &amp;quot;es&amp;quot;,&lt;br /&gt;
 &amp;quot;response&amp;quot;: &amp;quot;HOLA&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Para canales de voz ====&lt;br /&gt;
Para  canales de voz, existen comandos para &amp;quot;abrir sesión&amp;quot;, &amp;quot;enviar texto&amp;quot; y &amp;quot;cerrar sesión&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Abrir sesión =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; sessionOpen &amp;lt;omnisuite_UniqueId&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros (Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Requisito !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;omnisuite_UniqueId&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Unique_ID de asterisk de la llamada en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_id&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Id de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_phone_number&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Telf de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_email&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Email de cliente en Omnisuite&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
    &amp;quot;session&amp;quot;: &amp;quot;ec73df29-f08a-11f0-a8ec-525400ef204c&amp;quot;,&lt;br /&gt;
    &amp;quot;platform_id&amp;quot;: &amp;quot;146&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''El value correspondiente al key &amp;quot;session&amp;quot; deberá ser guardado en una variable para siguientes invocaciones'''&lt;br /&gt;
&lt;br /&gt;
===== Enviar texto =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; textRequest &amp;lt;vflow_session_uuid&amp;gt; &amp;lt;question&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Requisito !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_session_uuid&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Variable &amp;quot;session&amp;quot; almacenada en el &amp;quot;sessionOpen&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;question&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Texto a enviar al orquestado (p. ej. Flowise) (normal, abandoned, other)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
    &amp;quot;session&amp;quot;: &amp;quot;c6f6fad7-f6c1-11f0-a793-525400ef204c&amp;quot;,&lt;br /&gt;
    &amp;quot;language&amp;quot;: &amp;quot;ES&amp;quot;,&lt;br /&gt;
    &amp;quot;response&amp;quot;: &amp;quot;Cristóbal Colón.&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Cerrar sesión=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; sessionClose &amp;lt;vflow_session_uuid&amp;gt; &amp;lt;vflow_cause&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros  (Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Estado !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_session_uuid&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Variable &amp;quot;session&amp;quot; almacenada en el &amp;quot;sessionOpen&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_cause&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || (normal, abandoned, expired, other)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 104,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;Wrong session&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ejemplos para omnisuite ===&lt;br /&gt;
&lt;br /&gt;
'''Ejemplo de chat'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_chat.ini&amp;quot; &amp;quot;omnisuiteText&amp;quot; &amp;quot;{{interaction.id}}&amp;quot; &amp;quot;{{account.id}}&amp;quot; &amp;quot;{{interaction.createdAt}}&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;{{message.body}}&amp;quot; | jq -r '.response'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Ejemplo de voz'''&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen cally square.jpg|1024px|none|miniatura|Ejemplo de flujo de Cally Square]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_voice.ini&amp;quot; &amp;quot;sessionOpen&amp;quot; &amp;quot;{UNIQUEID}&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; |  jq -r '.session' &amp;lt;/pre&amp;gt;&lt;br /&gt;
::&amp;lt;small&amp;gt;salida del comando almacenado en variable &amp;quot;vflow_sessionopen_response&amp;quot; para su posterior uso en cally square&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen sessionopen.jpg|550px|center|miniatura|Abrir sesión en vFlow]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_desa_voz.ini&amp;quot; &amp;quot;textRequest&amp;quot; &amp;quot;{vflow_sessionopen_response}&amp;quot; &amp;quot;{OPENAI_WHISPER_TRANSCRIPT}&amp;quot; | jq -r '.response'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::&amp;lt;small&amp;gt;la voz se ha transcrito con OpenAI, por eso se usa como parámetro {OPENAI_WHISPER_TRANSCRIPT})&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen textrequest.jpg|550px|center|miniatura|Enviar texto en vFlow]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt; &lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_desa_voz.ini&amp;quot; &amp;quot;sessionClose&amp;quot; &amp;quot;{{vflow_sessionopen_response}}&amp;quot; &amp;quot;normal&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen sessionclose.jpg|900px|center|miniatura|Cerrar sesión en vFlow]]&lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:VIVAit Call]]&lt;br /&gt;
[[Category:Omnisuite]]&lt;br /&gt;
[[Category:IA]]&lt;/div&gt;</summary>
		<author><name>Alfredo.rodriguez</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_de_vFlow&amp;diff=17201</id>
		<title>Manual de operación de vFlow</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_de_vFlow&amp;diff=17201"/>
		<updated>2026-03-24T11:25:21Z</updated>

		<summary type="html">&lt;p&gt;Alfredo.rodriguez: /* Generales */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Descripción general vFlow ==&lt;br /&gt;
&lt;br /&gt;
vFlow es un módulo de conexión a sistemas de inteligencia artifical para sistemas de comunicaciones unificadas, ya sean sistemas corporativos o contact center&lt;br /&gt;
Gracias a vFlow, las plataformas de UC dispondrán de una solución para comunicarse con sistemas IA utilizando un mismo mecanismo independientemente de la solución de inteligencia artificial que se utilice&lt;br /&gt;
&lt;br /&gt;
Para proporcionar el servicio de manera completa, vFlow (en concreto el orquestador) se conectará a sistemas de inteligencia artificial (LLM) que permitirán desarrollar los agentes definidos en los orquestadores&lt;br /&gt;
&lt;br /&gt;
'''Conceptos:'''&lt;br /&gt;
* Plataforma&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Plataforma de comunicaciones unificadas; por ejemplo Omnisuite o VIVAit Call&lt;br /&gt;
* Orquestador&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Plataforma agéntica de IA (por ejemplo Flowise)&lt;br /&gt;
* vFlowProxy&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Módulo VIVAit que conecta multiples plataformas con múltiples orquestadores&lt;br /&gt;
* LLM&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Modelo de lenguaje natural que usará un orquestadores&lt;br /&gt;
* Agente&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Cada uno de los flujos creados en vFlow; corresponde a un par plataforma/agentflow de orquestador&lt;br /&gt;
* Servicio&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Cada elemento de negocio en la plataforma de CU (por ejemplo VDN)&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Arquitectura Vflow - v2.jpg|1000px|center|Arquitecura de vFlow]]&lt;br /&gt;
&lt;br /&gt;
Los '''módulos principales''' de vFlow son:&lt;br /&gt;
* vFlowProxy: Recibe las conexiones de los sistemas de comunicaciones unificadas, y conecta con los orquestadores de Inteligencia Artificial de manera segura y adaptada al tipo de servicio; el acceso a vFlow Proxy desde las plataformas se realizará mediante:&lt;br /&gt;
* Programa cliente: Se utiliza en el sistema de comunicaciones unificadas (actualmente VIVAit Call y Omnsisuite) para invocar a vFlow&lt;br /&gt;
* API REST: Alternativa al programa cliente, vFlowProxy proporciona una API REST que facilita que cualquier plataforma pueda comunicarse mediante un procedimiento estándar y documentado&lt;br /&gt;
* Portal de administración vFlow: Permite visualizar las interaciones realizadas y configurar el sistema&lt;br /&gt;
* Orquestador de IA: Herramienta de Inteligencia Artificial que permitirá la creación de aplicaciones personalizadas (agentes)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Otros elementos''' relevantes serán:&lt;br /&gt;
* Base de datos vFlow:&lt;br /&gt;
:* Almacena información sobre sesiones y transacciones realizadas&lt;br /&gt;
:* Almacena información de configuración sobre vFlow&lt;br /&gt;
:* Gestiona el RAG de las inteligencias artificiales a usar&lt;br /&gt;
&lt;br /&gt;
== Puesta en marcha de nodo vFlow ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Existe un nodo vFlow en los repositorios habituales proporcionados&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para '''dar de alta nodo vflow en un cliente''' hay que:&lt;br /&gt;
* Configurar IP (por defecto la maquina va configurada por DHCP)&lt;br /&gt;
* Adaptar el firewall, para ello REVISAR el fichero &amp;lt;code&amp;gt;/etc/firewall/vars.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
* Certificados validos en apache&lt;br /&gt;
* REVISAR ficheros &amp;lt;code&amp;gt;/etc/apache2/sites-enabled/flowise.conf&amp;lt;/code&amp;gt; y &amp;lt;code&amp;gt;/etc/apache2/sites-enabled/vFlow.conf&amp;lt;/code&amp;gt; la variable &amp;lt;code&amp;gt;ServerName&amp;lt;/code&amp;gt; (nombre valido de la maquina)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Accesos vFlow''' (se debe cambiar tras instalación):&lt;br /&gt;
* Usuario ssh y de SO por defecto es sat y clave a proporcionar.&lt;br /&gt;
* Para el portal de flowise las credenciales son usuario: vfloadmin@vflow.com clave: A proporcionar&lt;br /&gt;
* Para el portal de vflow las credenciales son usaurio sat y clave a proporcionar.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Accesos BBDD vFlow'''&lt;br /&gt;
* Para acceder a la base de datos desde el workbenck solo desde localhost (o tunel):&lt;br /&gt;
* BBDD Vlfow (admin)  vflowadmin // clave a proporcionar&lt;br /&gt;
* BBDD Vlfow (no_admin)  vflow //  clave a proporcionar&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Portal orquestador Flowise'''&lt;br /&gt;
&lt;br /&gt;
ubicado en https://host.cliente.xx:4567&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #fef6e7; border: 1px solid #fbd68a; padding: 1em; border-radius: 4px;width: fit-content; margin-left: 50px&amp;quot;&amp;gt;&lt;br /&gt;
'''⚠️ ATENCION !!'''&lt;br /&gt;
'''Los cambios en tablas de configuración de BBDD de vFlow (orquestadores, plataformas, agentes) requieren reinicio del servicio vFlowProxy'''&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', 'Monaco', 'Courier New', monospace;&amp;quot;&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service status&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service stop&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service start&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El fichero de configuración del demonio &amp;lt;cvode&amp;gt;vFlowProxy&amp;lt;/code&amp;gt; se encuentra en &amp;lt;code&amp;gt;/etc/MDtel/vFlowProxy.conf&amp;lt;/code&amp;gt;, si bien este fichero de configuración no se modificará habitualmente (los parámetros generales de configuración de vFlowProxy se encuentran en la BBDD de vFlow)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Relevante para poder '''poner en marcha un loader''':&lt;br /&gt;
* Subir el fichero inicial previamente a la carpeta destino según entorno (p. ej &amp;lt;code&amp;gt;/var/www/html/storages/production&amp;lt;/code&amp;gt;&lt;br /&gt;
* Tipo de loader --&amp;gt; API&lt;br /&gt;
* Método --&amp;gt; GET&lt;br /&gt;
* URL --&amp;gt; (ejemplo: http://172.25.129.242/storages/test/fichero-pru.txt)&lt;br /&gt;
::* Existirán URL &amp;quot;production&amp;quot;, &amp;quot;staging&amp;quot; y &amp;quot;test&amp;quot;&lt;br /&gt;
* Text Splitter: Recursive&lt;br /&gt;
* Qdrant --&amp;gt; localhost:6333&lt;br /&gt;
* Record Manager --&amp;gt; SQLite&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Se adjunta imagen a modo de ejemplo&lt;br /&gt;
[[Archivo:Alta loader vflow.png|800px|miniaturadeimagen|no|alta loader vFlow|link=]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gestión en vFlow ==&lt;br /&gt;
vFlow prevé la existencia de tres entornos que permita hacer una gestión segura de agentes y RAG:&lt;br /&gt;
&lt;br /&gt;
* Producción&lt;br /&gt;
* Preproducción&lt;br /&gt;
* Pruebas&lt;br /&gt;
&lt;br /&gt;
Para cada agente o store de RAG se podrá desplegar un entorno (producción), dos o los tres entornos&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #f0fff4; border: 3px solid #c6f6d5; padding: 1em; border-radius: 4px;width: fit-content; margin-left: 0px&amp;quot;&amp;gt;&lt;br /&gt;
✅ '''Recomendación'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En la mayoría de los casos con disponer de entorno de producción y preproducción tanto para agente como para RAG será suficiente&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Para realizar una gestión completa en vFlow (suponiendo tres entornos y gestión de agentes y RAG), deberemos tener&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Archivo:Gestión RAG.png|1000px|miniaturadeimagen|centro|Gestión RAG en vFlow|link=]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''En orquestador'''&lt;br /&gt;
* Crear '''tres stores''' (pro/pre/pru); en cada store:&lt;br /&gt;
::* En total '''tres loaders'''. Crear un loader por entorno (p.ej /pro/nombrefich). &lt;br /&gt;
::* Subir un primer &amp;quot;nombrefich&amp;quot;&lt;br /&gt;
::::* tipo texto (versión 0)&lt;br /&gt;
::::* el mismo para todos los entornos&lt;br /&gt;
::::* se sube por medios convencionales (p. ej SCP)&lt;br /&gt;
* Asegurar que los stores queden totalmente creados (estado &amp;quot;UPSERTED&amp;quot;)&lt;br /&gt;
* Crear '''tres agentes''' (pro/pre/pru)&lt;br /&gt;
::* Asociar a stores (pro/pre/pru)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''En flow'''&lt;br /&gt;
* Crear '''un agente'''&lt;br /&gt;
::* Vincularlo a los tres agentes de orquestador (pro/pre/pru)&lt;br /&gt;
* Crear '''un store'''&lt;br /&gt;
::* Vinculado a los tres stores de orquestador (pro/pre/pru)&lt;br /&gt;
* Crear '''un loader'''&lt;br /&gt;
::* Loader vinculado a agente de vflow&lt;br /&gt;
::* C_NAME loader coincidirá con los de orquestador (p.ej &amp;quot;nombrefich&amp;quot;)&lt;br /&gt;
::* Subir nueva versión v1 (&amp;quot;.txt&amp;quot;, &amp;quot;.pdf&amp;quot;, &amp;quot;.doc&amp;quot;, &amp;quot;.docx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Diagnósticos ==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/vFlowProxy/vFlowProxy.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En nodo vFlowProxy&lt;br /&gt;
::para cualquier canal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
nc localhost 1131&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En nodo vFlowProxy&lt;br /&gt;
::Monitoriza estado del proceso vflowProxy&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
  &amp;quot;proceso&amp;quot;: {&lt;br /&gt;
    &amp;quot;nombre&amp;quot;: &amp;quot;vFlowProxy&amp;quot;,&lt;br /&gt;
    &amp;quot;version&amp;quot;: &amp;quot;00.00.01&amp;quot;,&lt;br /&gt;
    &amp;quot;inicio_ts&amp;quot;: 1771315153,&lt;br /&gt;
    &amp;quot;inicio_cad&amp;quot;: &amp;quot;20260217 085913&amp;quot;,&lt;br /&gt;
    &amp;quot;log_alarmas_val&amp;quot;: 8,&lt;br /&gt;
    &amp;quot;log_alarma_ultimo_ts&amp;quot;: 1771970401,&lt;br /&gt;
    &amp;quot;log_alarma_ultimo_ts_cad&amp;quot;: &amp;quot;20260224 230001&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;diagnostico&amp;quot;: {&lt;br /&gt;
    &amp;quot;gmp&amp;quot;: {&lt;br /&gt;
      &amp;quot;msj_val&amp;quot;: 1022,&lt;br /&gt;
      &amp;quot;msj_max&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;buf_val&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;buf_max&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;tarea_val&amp;quot;: 7,&lt;br /&gt;
      &amp;quot;tarea_max&amp;quot;: 15&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;tiempo&amp;quot;: {&lt;br /&gt;
      &amp;quot;uptime&amp;quot;: 716665,&lt;br /&gt;
      &amp;quot;uptime_dias&amp;quot;: 8,&lt;br /&gt;
      &amp;quot;uptime_horas&amp;quot;: 7,&lt;br /&gt;
      &amp;quot;uptime_minutos&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;uptime_segundos&amp;quot;: 25&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;wws&amp;quot;: {&lt;br /&gt;
      &amp;quot;conexiones_val&amp;quot;: 0,&lt;br /&gt;
      &amp;quot;conexiones_max_periodo&amp;quot;: 0,&lt;br /&gt;
      &amp;quot;hilos_val&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;hilos_max&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;wsi_cad&amp;quot;: &amp;quot;sesiones=0/200&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;alarmas_nivel_max&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;alarmas&amp;quot;: []&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es relevante la monitorización de sesiones  &amp;lt;code&amp;gt;&amp;quot;wsi_cad&amp;quot;: &amp;quot;sesiones=0/200&amp;quot;&amp;lt;/code&amp;gt; (usadas/máximas)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
asterisk -rv | grep callsquare_name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::en nodo Omnisuite&lt;br /&gt;
::para canal voz&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/xcally/agi-combined.yyyy-mm-dd.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::en nodo Omnisuite&lt;br /&gt;
::para canal voz&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/xcally/routing-combined.yyyy-mm-dd.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::para canal voz&lt;br /&gt;
&lt;br /&gt;
== Para probar desde vFlow ==&lt;br /&gt;
&lt;br /&gt;
En /home/sat/vFlowProxy hay scripts de prueba (se configuran en el vars.sh); para usar los scripts de prueba tendremos que tener también &amp;quot;.ini&amp;quot; en vFlow&lt;br /&gt;
&lt;br /&gt;
Es útil comenzar con&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/home/sat/vFlowProxy/vFlowGetInfo.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
que sin parámetros adicionales confirma el correcto estado de vFlowProxy&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
  &amp;quot;app&amp;quot;: &amp;quot;vFlowProxy&amp;quot;,&lt;br /&gt;
  &amp;quot;version&amp;quot;: &amp;quot;00.00.01&amp;quot;,&lt;br /&gt;
  &amp;quot;sessions_opened&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;sessions_limit&amp;quot;: 200,&lt;br /&gt;
  &amp;quot;sessions_sleep_timeout_s&amp;quot;: 3600,&lt;br /&gt;
  &amp;quot;alarms&amp;quot;: 8&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Integración de vFlow desde Omnisuite ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Descripción general ===&lt;br /&gt;
En Omnisuite, la integración con vFlow, se realiza con el programa vFlowOmnisuite, que podrá ser invocado como ejecutable (más rápido, para debian), o como Python (más universal)&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
    /usr/local/sbin/vFlowOmnisuite (OPCIÓN PREFERENTE)&lt;br /&gt;
    /usr/local/sbin/vFlowOmnisuite.py (LEGACY)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Asociado al programa existen los siguientes ficheros de configuración (.ini):&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; de plataforma''' Omnisuite en vFlow --&amp;gt; Solo contiene uuid de la plataforma; se entrega un &amp;quot;.ini&amp;quot; a modo de ejemplo en &amp;lt;code&amp;gt;/etc/MDtel/vFlow/platform.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE PLATAFORMA&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
   [uuids]&lt;br /&gt;
   platform=1d111530-e22d-11f0-b0f2-5254008bef96&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; por agente''' en vFlow --&amp;gt; Solo contiene uuid del agente según su identificación en vFlow ('''NO''' en un orquestador, por ejemplo flowise); se entrega un &amp;quot;.ini&amp;quot; asociado a un agente &amp;quot;loop&amp;quot; existente en Flowise &amp;lt;code&amp;gt;/etc/MDtel/vFlow/agent_loop_01.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE AGENTE&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
   [uuids]&lt;br /&gt;
   agent=1a3a1020-ea1d-11f0-b4a5-5254008bef96&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; por servicio''' --&amp;gt; Configuración de cada servicio en Omnisuite; se entrega un &amp;quot;.ini&amp;quot; a modo de ejemplo en &amp;lt;code&amp;gt;/etc/MDtel/vFlow/service.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
En cada fichero de servicio configuraremos&lt;br /&gt;
::* Donde está Vflow&lt;br /&gt;
::* Agente&lt;br /&gt;
::* Plataforma&lt;br /&gt;
::* timeout_s --&amp;gt; Importante, es afectado por el LLM&lt;br /&gt;
::* channel_text_type --&amp;gt; IMPORTANTE si el servicio es de texto que esté bien (vacio solo si el servicio es de texto, NO COMENTARLO)&lt;br /&gt;
::* environment --&amp;gt; production, staging, test&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE SERVICIO&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
  [arch_uuids]&lt;br /&gt;
  agent=/etc/MDtel/vFlow/agent_loop_01.ini&lt;br /&gt;
  platform=/etc/MDtel/vFlow/platform.ini&lt;br /&gt;
&lt;br /&gt;
  [vflow]&lt;br /&gt;
  host_port=172.25.129.242:7900&lt;br /&gt;
  timeout_s=20&lt;br /&gt;
  # channel_type=[voice|chat|email]&lt;br /&gt;
  channel_type=chat&lt;br /&gt;
  # environment=[production|staging|test]&lt;br /&gt;
  environment=production&lt;br /&gt;
  language=es&lt;br /&gt;
&lt;br /&gt;
  [omnisuite]&lt;br /&gt;
  # channel_text_type=[chat|mail|sms|whatsup]&lt;br /&gt;
  channel_text_type=chat&lt;br /&gt;
  service_id=vflow_service_id&lt;br /&gt;
  service_name=vflow_service_name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La imagen siguiente muestra el esquema de relación entre orquestador/plataforma/agente/servicio en la plataforma y en vFlow&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Relaciones vFlow plat orq ag serv.png|800px|miniaturadeimagen|centro|Relación orquestador-plataforma-agente-servicio]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Invocación ===&lt;br /&gt;
==== Generales ====&lt;br /&gt;
&lt;br /&gt;
'''Ver configuración'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; configPrint&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
Configuration:&lt;br /&gt;
  agent_arch_uuid=/etc/MDtel/vFlow/agent_fse_rapido.ini&lt;br /&gt;
  agent_uuid=3487af28-1d14-11f1-803c-525400ef204c&lt;br /&gt;
  platform_arch_uuid=/etc/MDtel/vFlow/platform_labomsui.ini&lt;br /&gt;
  platform_uuid=9a54ea74-f050-11f0-bdf1-5254008bef96&lt;br /&gt;
&lt;br /&gt;
  vflow_host_port=labvflow.mdnova.local&lt;br /&gt;
  vflow_timeout_s=50&lt;br /&gt;
  vflow_environment=production&lt;br /&gt;
  vflow_channel_type=voice&lt;br /&gt;
  vflow_language=es&lt;br /&gt;
&lt;br /&gt;
  omnisuite_channel_text_type=chat&lt;br /&gt;
  omnisuite_service_id=287&lt;br /&gt;
  omnisuite_service_name=desarrollo&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;errorCad&amp;quot;: &amp;quot;OK&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Ver versión'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite version&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
00.00.02&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Para canales de texto ====&lt;br /&gt;
&lt;br /&gt;
Para canales de texto en Omnisuite existe un único Comando de invocación &amp;quot;omnisuiteText&amp;quot;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; omnisuiteText &amp;lt;omnisuite_id&amp;gt; &amp;lt;omnisuite_websiteId&amp;gt; &amp;lt;omnisuite_createdAt&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt; &amp;lt;question&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros ( Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Obligatoriedad !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;config_arch&amp;gt;` || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_id&amp;gt;` || OBLIGATORIO || Identificativo de la interacción en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_websiteId&amp;gt;` || OBLIGATORIO || Identificativo del servicio en Omnisuite (ej. website id en chat)&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_createdAt&amp;gt;` || OBLIGATORIO || Creación de la interacción&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_id&amp;gt;` || OPCIONAL || Id de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_phone_number&amp;gt;` || OPCIONAL || Telf de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_email&amp;gt;` || OPCIONAL || Email de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;question&amp;gt;` || OBLIGATORIO || Texto a enviar al orquestado (p. ej. Flowise)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
 &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
 &amp;quot;session&amp;quot;: &amp;quot;e926548d-fdcf-11f0-a793-525400ef204c&amp;quot;,&lt;br /&gt;
 &amp;quot;language&amp;quot;: &amp;quot;es&amp;quot;,&lt;br /&gt;
 &amp;quot;response&amp;quot;: &amp;quot;HOLA&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Para canales de voz ====&lt;br /&gt;
Para  canales de voz, existen comandos para &amp;quot;abrir sesión&amp;quot;, &amp;quot;enviar texto&amp;quot; y &amp;quot;cerrar sesión&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Abrir sesión =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; sessionOpen &amp;lt;omnisuite_UniqueId&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros (Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Requisito !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;omnisuite_UniqueId&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Unique_ID de asterisk de la llamada en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_id&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Id de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_phone_number&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Telf de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_email&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Email de cliente en Omnisuite&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
    &amp;quot;session&amp;quot;: &amp;quot;ec73df29-f08a-11f0-a8ec-525400ef204c&amp;quot;,&lt;br /&gt;
    &amp;quot;platform_id&amp;quot;: &amp;quot;146&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''El value correspondiente al key &amp;quot;session&amp;quot; deberá ser guardado en una variable para siguientes invocaciones'''&lt;br /&gt;
&lt;br /&gt;
===== Enviar texto =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; textRequest &amp;lt;vflow_session_uuid&amp;gt; &amp;lt;question&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Requisito !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_session_uuid&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Variable &amp;quot;session&amp;quot; almacenada en el &amp;quot;sessionOpen&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;question&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Texto a enviar al orquestado (p. ej. Flowise) (normal, abandoned, other)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
    &amp;quot;session&amp;quot;: &amp;quot;c6f6fad7-f6c1-11f0-a793-525400ef204c&amp;quot;,&lt;br /&gt;
    &amp;quot;language&amp;quot;: &amp;quot;ES&amp;quot;,&lt;br /&gt;
    &amp;quot;response&amp;quot;: &amp;quot;Cristóbal Colón.&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Cerrar sesión=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; sessionClose &amp;lt;vflow_session_uuid&amp;gt; &amp;lt;vflow_cause&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros  (Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Estado !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_session_uuid&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Variable &amp;quot;session&amp;quot; almacenada en el &amp;quot;sessionOpen&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_cause&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || (normal, abandoned, expired, other)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 104,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;Wrong session&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ejemplos para omnisuite ===&lt;br /&gt;
&lt;br /&gt;
'''Ejemplo de chat'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_chat.ini&amp;quot; &amp;quot;omnisuiteText&amp;quot; &amp;quot;{{interaction.id}}&amp;quot; &amp;quot;{{account.id}}&amp;quot; &amp;quot;{{interaction.createdAt}}&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;{{message.body}}&amp;quot; | jq -r '.response'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Ejemplo de voz'''&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen cally square.jpg|1024px|none|miniatura|Ejemplo de flujo de Cally Square]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_voice.ini&amp;quot; &amp;quot;sessionOpen&amp;quot; &amp;quot;{UNIQUEID}&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; |  jq -r '.session' &amp;lt;/pre&amp;gt;&lt;br /&gt;
::&amp;lt;small&amp;gt;salida del comando almacenado en variable &amp;quot;vflow_sessionopen_response&amp;quot; para su posterior uso en cally square&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen sessionopen.jpg|550px|center|miniatura|Abrir sesión en vFlow]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_desa_voz.ini&amp;quot; &amp;quot;textRequest&amp;quot; &amp;quot;{vflow_sessionopen_response}&amp;quot; &amp;quot;{OPENAI_WHISPER_TRANSCRIPT}&amp;quot; | jq -r '.response'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::&amp;lt;small&amp;gt;la voz se ha transcrito con OpenAI, por eso se usa como parámetro {OPENAI_WHISPER_TRANSCRIPT})&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen textrequest.jpg|550px|center|miniatura|Enviar texto en vFlow]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt; &lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_desa_voz.ini&amp;quot; &amp;quot;sessionClose&amp;quot; &amp;quot;{{vflow_sessionopen_response}}&amp;quot; &amp;quot;normal&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen sessionclose.jpg|900px|center|miniatura|Cerrar sesión en vFlow]]&lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:VIVAit Call]]&lt;br /&gt;
[[Category:Omnisuite]]&lt;br /&gt;
[[Category:IA]]&lt;/div&gt;</summary>
		<author><name>Alfredo.rodriguez</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_de_vFlow&amp;diff=17200</id>
		<title>Manual de operación de vFlow</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_de_vFlow&amp;diff=17200"/>
		<updated>2026-03-24T11:24:41Z</updated>

		<summary type="html">&lt;p&gt;Alfredo.rodriguez: /* Generales */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Descripción general vFlow ==&lt;br /&gt;
&lt;br /&gt;
vFlow es un módulo de conexión a sistemas de inteligencia artifical para sistemas de comunicaciones unificadas, ya sean sistemas corporativos o contact center&lt;br /&gt;
Gracias a vFlow, las plataformas de UC dispondrán de una solución para comunicarse con sistemas IA utilizando un mismo mecanismo independientemente de la solución de inteligencia artificial que se utilice&lt;br /&gt;
&lt;br /&gt;
Para proporcionar el servicio de manera completa, vFlow (en concreto el orquestador) se conectará a sistemas de inteligencia artificial (LLM) que permitirán desarrollar los agentes definidos en los orquestadores&lt;br /&gt;
&lt;br /&gt;
'''Conceptos:'''&lt;br /&gt;
* Plataforma&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Plataforma de comunicaciones unificadas; por ejemplo Omnisuite o VIVAit Call&lt;br /&gt;
* Orquestador&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Plataforma agéntica de IA (por ejemplo Flowise)&lt;br /&gt;
* vFlowProxy&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Módulo VIVAit que conecta multiples plataformas con múltiples orquestadores&lt;br /&gt;
* LLM&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Modelo de lenguaje natural que usará un orquestadores&lt;br /&gt;
* Agente&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Cada uno de los flujos creados en vFlow; corresponde a un par plataforma/agentflow de orquestador&lt;br /&gt;
* Servicio&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Cada elemento de negocio en la plataforma de CU (por ejemplo VDN)&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Arquitectura Vflow - v2.jpg|1000px|center|Arquitecura de vFlow]]&lt;br /&gt;
&lt;br /&gt;
Los '''módulos principales''' de vFlow son:&lt;br /&gt;
* vFlowProxy: Recibe las conexiones de los sistemas de comunicaciones unificadas, y conecta con los orquestadores de Inteligencia Artificial de manera segura y adaptada al tipo de servicio; el acceso a vFlow Proxy desde las plataformas se realizará mediante:&lt;br /&gt;
* Programa cliente: Se utiliza en el sistema de comunicaciones unificadas (actualmente VIVAit Call y Omnsisuite) para invocar a vFlow&lt;br /&gt;
* API REST: Alternativa al programa cliente, vFlowProxy proporciona una API REST que facilita que cualquier plataforma pueda comunicarse mediante un procedimiento estándar y documentado&lt;br /&gt;
* Portal de administración vFlow: Permite visualizar las interaciones realizadas y configurar el sistema&lt;br /&gt;
* Orquestador de IA: Herramienta de Inteligencia Artificial que permitirá la creación de aplicaciones personalizadas (agentes)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Otros elementos''' relevantes serán:&lt;br /&gt;
* Base de datos vFlow:&lt;br /&gt;
:* Almacena información sobre sesiones y transacciones realizadas&lt;br /&gt;
:* Almacena información de configuración sobre vFlow&lt;br /&gt;
:* Gestiona el RAG de las inteligencias artificiales a usar&lt;br /&gt;
&lt;br /&gt;
== Puesta en marcha de nodo vFlow ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Existe un nodo vFlow en los repositorios habituales proporcionados&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para '''dar de alta nodo vflow en un cliente''' hay que:&lt;br /&gt;
* Configurar IP (por defecto la maquina va configurada por DHCP)&lt;br /&gt;
* Adaptar el firewall, para ello REVISAR el fichero &amp;lt;code&amp;gt;/etc/firewall/vars.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
* Certificados validos en apache&lt;br /&gt;
* REVISAR ficheros &amp;lt;code&amp;gt;/etc/apache2/sites-enabled/flowise.conf&amp;lt;/code&amp;gt; y &amp;lt;code&amp;gt;/etc/apache2/sites-enabled/vFlow.conf&amp;lt;/code&amp;gt; la variable &amp;lt;code&amp;gt;ServerName&amp;lt;/code&amp;gt; (nombre valido de la maquina)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Accesos vFlow''' (se debe cambiar tras instalación):&lt;br /&gt;
* Usuario ssh y de SO por defecto es sat y clave a proporcionar.&lt;br /&gt;
* Para el portal de flowise las credenciales son usuario: vfloadmin@vflow.com clave: A proporcionar&lt;br /&gt;
* Para el portal de vflow las credenciales son usaurio sat y clave a proporcionar.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Accesos BBDD vFlow'''&lt;br /&gt;
* Para acceder a la base de datos desde el workbenck solo desde localhost (o tunel):&lt;br /&gt;
* BBDD Vlfow (admin)  vflowadmin // clave a proporcionar&lt;br /&gt;
* BBDD Vlfow (no_admin)  vflow //  clave a proporcionar&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Portal orquestador Flowise'''&lt;br /&gt;
&lt;br /&gt;
ubicado en https://host.cliente.xx:4567&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #fef6e7; border: 1px solid #fbd68a; padding: 1em; border-radius: 4px;width: fit-content; margin-left: 50px&amp;quot;&amp;gt;&lt;br /&gt;
'''⚠️ ATENCION !!'''&lt;br /&gt;
'''Los cambios en tablas de configuración de BBDD de vFlow (orquestadores, plataformas, agentes) requieren reinicio del servicio vFlowProxy'''&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', 'Monaco', 'Courier New', monospace;&amp;quot;&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service status&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service stop&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service start&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El fichero de configuración del demonio &amp;lt;cvode&amp;gt;vFlowProxy&amp;lt;/code&amp;gt; se encuentra en &amp;lt;code&amp;gt;/etc/MDtel/vFlowProxy.conf&amp;lt;/code&amp;gt;, si bien este fichero de configuración no se modificará habitualmente (los parámetros generales de configuración de vFlowProxy se encuentran en la BBDD de vFlow)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Relevante para poder '''poner en marcha un loader''':&lt;br /&gt;
* Subir el fichero inicial previamente a la carpeta destino según entorno (p. ej &amp;lt;code&amp;gt;/var/www/html/storages/production&amp;lt;/code&amp;gt;&lt;br /&gt;
* Tipo de loader --&amp;gt; API&lt;br /&gt;
* Método --&amp;gt; GET&lt;br /&gt;
* URL --&amp;gt; (ejemplo: http://172.25.129.242/storages/test/fichero-pru.txt)&lt;br /&gt;
::* Existirán URL &amp;quot;production&amp;quot;, &amp;quot;staging&amp;quot; y &amp;quot;test&amp;quot;&lt;br /&gt;
* Text Splitter: Recursive&lt;br /&gt;
* Qdrant --&amp;gt; localhost:6333&lt;br /&gt;
* Record Manager --&amp;gt; SQLite&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Se adjunta imagen a modo de ejemplo&lt;br /&gt;
[[Archivo:Alta loader vflow.png|800px|miniaturadeimagen|no|alta loader vFlow|link=]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gestión en vFlow ==&lt;br /&gt;
vFlow prevé la existencia de tres entornos que permita hacer una gestión segura de agentes y RAG:&lt;br /&gt;
&lt;br /&gt;
* Producción&lt;br /&gt;
* Preproducción&lt;br /&gt;
* Pruebas&lt;br /&gt;
&lt;br /&gt;
Para cada agente o store de RAG se podrá desplegar un entorno (producción), dos o los tres entornos&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #f0fff4; border: 3px solid #c6f6d5; padding: 1em; border-radius: 4px;width: fit-content; margin-left: 0px&amp;quot;&amp;gt;&lt;br /&gt;
✅ '''Recomendación'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En la mayoría de los casos con disponer de entorno de producción y preproducción tanto para agente como para RAG será suficiente&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Para realizar una gestión completa en vFlow (suponiendo tres entornos y gestión de agentes y RAG), deberemos tener&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Archivo:Gestión RAG.png|1000px|miniaturadeimagen|centro|Gestión RAG en vFlow|link=]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''En orquestador'''&lt;br /&gt;
* Crear '''tres stores''' (pro/pre/pru); en cada store:&lt;br /&gt;
::* En total '''tres loaders'''. Crear un loader por entorno (p.ej /pro/nombrefich). &lt;br /&gt;
::* Subir un primer &amp;quot;nombrefich&amp;quot;&lt;br /&gt;
::::* tipo texto (versión 0)&lt;br /&gt;
::::* el mismo para todos los entornos&lt;br /&gt;
::::* se sube por medios convencionales (p. ej SCP)&lt;br /&gt;
* Asegurar que los stores queden totalmente creados (estado &amp;quot;UPSERTED&amp;quot;)&lt;br /&gt;
* Crear '''tres agentes''' (pro/pre/pru)&lt;br /&gt;
::* Asociar a stores (pro/pre/pru)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''En flow'''&lt;br /&gt;
* Crear '''un agente'''&lt;br /&gt;
::* Vincularlo a los tres agentes de orquestador (pro/pre/pru)&lt;br /&gt;
* Crear '''un store'''&lt;br /&gt;
::* Vinculado a los tres stores de orquestador (pro/pre/pru)&lt;br /&gt;
* Crear '''un loader'''&lt;br /&gt;
::* Loader vinculado a agente de vflow&lt;br /&gt;
::* C_NAME loader coincidirá con los de orquestador (p.ej &amp;quot;nombrefich&amp;quot;)&lt;br /&gt;
::* Subir nueva versión v1 (&amp;quot;.txt&amp;quot;, &amp;quot;.pdf&amp;quot;, &amp;quot;.doc&amp;quot;, &amp;quot;.docx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Diagnósticos ==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/vFlowProxy/vFlowProxy.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En nodo vFlowProxy&lt;br /&gt;
::para cualquier canal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
nc localhost 1131&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En nodo vFlowProxy&lt;br /&gt;
::Monitoriza estado del proceso vflowProxy&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
  &amp;quot;proceso&amp;quot;: {&lt;br /&gt;
    &amp;quot;nombre&amp;quot;: &amp;quot;vFlowProxy&amp;quot;,&lt;br /&gt;
    &amp;quot;version&amp;quot;: &amp;quot;00.00.01&amp;quot;,&lt;br /&gt;
    &amp;quot;inicio_ts&amp;quot;: 1771315153,&lt;br /&gt;
    &amp;quot;inicio_cad&amp;quot;: &amp;quot;20260217 085913&amp;quot;,&lt;br /&gt;
    &amp;quot;log_alarmas_val&amp;quot;: 8,&lt;br /&gt;
    &amp;quot;log_alarma_ultimo_ts&amp;quot;: 1771970401,&lt;br /&gt;
    &amp;quot;log_alarma_ultimo_ts_cad&amp;quot;: &amp;quot;20260224 230001&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;diagnostico&amp;quot;: {&lt;br /&gt;
    &amp;quot;gmp&amp;quot;: {&lt;br /&gt;
      &amp;quot;msj_val&amp;quot;: 1022,&lt;br /&gt;
      &amp;quot;msj_max&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;buf_val&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;buf_max&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;tarea_val&amp;quot;: 7,&lt;br /&gt;
      &amp;quot;tarea_max&amp;quot;: 15&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;tiempo&amp;quot;: {&lt;br /&gt;
      &amp;quot;uptime&amp;quot;: 716665,&lt;br /&gt;
      &amp;quot;uptime_dias&amp;quot;: 8,&lt;br /&gt;
      &amp;quot;uptime_horas&amp;quot;: 7,&lt;br /&gt;
      &amp;quot;uptime_minutos&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;uptime_segundos&amp;quot;: 25&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;wws&amp;quot;: {&lt;br /&gt;
      &amp;quot;conexiones_val&amp;quot;: 0,&lt;br /&gt;
      &amp;quot;conexiones_max_periodo&amp;quot;: 0,&lt;br /&gt;
      &amp;quot;hilos_val&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;hilos_max&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;wsi_cad&amp;quot;: &amp;quot;sesiones=0/200&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;alarmas_nivel_max&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;alarmas&amp;quot;: []&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es relevante la monitorización de sesiones  &amp;lt;code&amp;gt;&amp;quot;wsi_cad&amp;quot;: &amp;quot;sesiones=0/200&amp;quot;&amp;lt;/code&amp;gt; (usadas/máximas)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
asterisk -rv | grep callsquare_name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::en nodo Omnisuite&lt;br /&gt;
::para canal voz&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/xcally/agi-combined.yyyy-mm-dd.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::en nodo Omnisuite&lt;br /&gt;
::para canal voz&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/xcally/routing-combined.yyyy-mm-dd.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::para canal voz&lt;br /&gt;
&lt;br /&gt;
== Para probar desde vFlow ==&lt;br /&gt;
&lt;br /&gt;
En /home/sat/vFlowProxy hay scripts de prueba (se configuran en el vars.sh); para usar los scripts de prueba tendremos que tener también &amp;quot;.ini&amp;quot; en vFlow&lt;br /&gt;
&lt;br /&gt;
Es útil comenzar con&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/home/sat/vFlowProxy/vFlowGetInfo.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
que sin parámetros adicionales confirma el correcto estado de vFlowProxy&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
  &amp;quot;app&amp;quot;: &amp;quot;vFlowProxy&amp;quot;,&lt;br /&gt;
  &amp;quot;version&amp;quot;: &amp;quot;00.00.01&amp;quot;,&lt;br /&gt;
  &amp;quot;sessions_opened&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;sessions_limit&amp;quot;: 200,&lt;br /&gt;
  &amp;quot;sessions_sleep_timeout_s&amp;quot;: 3600,&lt;br /&gt;
  &amp;quot;alarms&amp;quot;: 8&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Integración de vFlow desde Omnisuite ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Descripción general ===&lt;br /&gt;
En Omnisuite, la integración con vFlow, se realiza con el programa vFlowOmnisuite, que podrá ser invocado como ejecutable (más rápido, para debian), o como Python (más universal)&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
    /usr/local/sbin/vFlowOmnisuite (OPCIÓN PREFERENTE)&lt;br /&gt;
    /usr/local/sbin/vFlowOmnisuite.py (LEGACY)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Asociado al programa existen los siguientes ficheros de configuración (.ini):&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; de plataforma''' Omnisuite en vFlow --&amp;gt; Solo contiene uuid de la plataforma; se entrega un &amp;quot;.ini&amp;quot; a modo de ejemplo en &amp;lt;code&amp;gt;/etc/MDtel/vFlow/platform.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE PLATAFORMA&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
   [uuids]&lt;br /&gt;
   platform=1d111530-e22d-11f0-b0f2-5254008bef96&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; por agente''' en vFlow --&amp;gt; Solo contiene uuid del agente según su identificación en vFlow ('''NO''' en un orquestador, por ejemplo flowise); se entrega un &amp;quot;.ini&amp;quot; asociado a un agente &amp;quot;loop&amp;quot; existente en Flowise &amp;lt;code&amp;gt;/etc/MDtel/vFlow/agent_loop_01.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE AGENTE&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
   [uuids]&lt;br /&gt;
   agent=1a3a1020-ea1d-11f0-b4a5-5254008bef96&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; por servicio''' --&amp;gt; Configuración de cada servicio en Omnisuite; se entrega un &amp;quot;.ini&amp;quot; a modo de ejemplo en &amp;lt;code&amp;gt;/etc/MDtel/vFlow/service.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
En cada fichero de servicio configuraremos&lt;br /&gt;
::* Donde está Vflow&lt;br /&gt;
::* Agente&lt;br /&gt;
::* Plataforma&lt;br /&gt;
::* timeout_s --&amp;gt; Importante, es afectado por el LLM&lt;br /&gt;
::* channel_text_type --&amp;gt; IMPORTANTE si el servicio es de texto que esté bien (vacio solo si el servicio es de texto, NO COMENTARLO)&lt;br /&gt;
::* environment --&amp;gt; production, staging, test&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE SERVICIO&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
  [arch_uuids]&lt;br /&gt;
  agent=/etc/MDtel/vFlow/agent_loop_01.ini&lt;br /&gt;
  platform=/etc/MDtel/vFlow/platform.ini&lt;br /&gt;
&lt;br /&gt;
  [vflow]&lt;br /&gt;
  host_port=172.25.129.242:7900&lt;br /&gt;
  timeout_s=20&lt;br /&gt;
  # channel_type=[voice|chat|email]&lt;br /&gt;
  channel_type=chat&lt;br /&gt;
  # environment=[production|staging|test]&lt;br /&gt;
  environment=production&lt;br /&gt;
  language=es&lt;br /&gt;
&lt;br /&gt;
  [omnisuite]&lt;br /&gt;
  # channel_text_type=[chat|mail|sms|whatsup]&lt;br /&gt;
  channel_text_type=chat&lt;br /&gt;
  service_id=vflow_service_id&lt;br /&gt;
  service_name=vflow_service_name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La imagen siguiente muestra el esquema de relación entre orquestador/plataforma/agente/servicio en la plataforma y en vFlow&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Relaciones vFlow plat orq ag serv.png|800px|miniaturadeimagen|centro|Relación orquestador-plataforma-agente-servicio]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Invocación ===&lt;br /&gt;
==== Generales ====&lt;br /&gt;
&lt;br /&gt;
'''Ver configuración'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; configPrint&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
Configuration:&lt;br /&gt;
  agent_arch_uuid=/etc/MDtel/vFlow/agent_fse_rapido.ini&lt;br /&gt;
  agent_uuid=3487af28-1d14-11f1-803c-525400ef204c&lt;br /&gt;
  platform_arch_uuid=/etc/MDtel/vFlow/platform_labomsui.ini&lt;br /&gt;
  platform_uuid=9a54ea74-f050-11f0-bdf1-5254008bef96&lt;br /&gt;
&lt;br /&gt;
  vflow_host_port=labvflow.mdnova.local&lt;br /&gt;
  vflow_timeout_s=50&lt;br /&gt;
  vflow_environment=production&lt;br /&gt;
  vflow_channel_type=voice&lt;br /&gt;
  vflow_language=es&lt;br /&gt;
&lt;br /&gt;
  omnisuite_channel_text_type=chat&lt;br /&gt;
  omnisuite_service_id=287&lt;br /&gt;
  omnisuite_service_name=desarrollo&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;errorCad&amp;quot;: &amp;quot;OK&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Ver versión'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite version&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&lt;br /&gt;
==== Para canales de texto ====&lt;br /&gt;
&lt;br /&gt;
Para canales de texto en Omnisuite existe un único Comando de invocación &amp;quot;omnisuiteText&amp;quot;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; omnisuiteText &amp;lt;omnisuite_id&amp;gt; &amp;lt;omnisuite_websiteId&amp;gt; &amp;lt;omnisuite_createdAt&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt; &amp;lt;question&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros ( Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Obligatoriedad !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;config_arch&amp;gt;` || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_id&amp;gt;` || OBLIGATORIO || Identificativo de la interacción en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_websiteId&amp;gt;` || OBLIGATORIO || Identificativo del servicio en Omnisuite (ej. website id en chat)&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_createdAt&amp;gt;` || OBLIGATORIO || Creación de la interacción&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_id&amp;gt;` || OPCIONAL || Id de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_phone_number&amp;gt;` || OPCIONAL || Telf de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_email&amp;gt;` || OPCIONAL || Email de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;question&amp;gt;` || OBLIGATORIO || Texto a enviar al orquestado (p. ej. Flowise)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
 &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
 &amp;quot;session&amp;quot;: &amp;quot;e926548d-fdcf-11f0-a793-525400ef204c&amp;quot;,&lt;br /&gt;
 &amp;quot;language&amp;quot;: &amp;quot;es&amp;quot;,&lt;br /&gt;
 &amp;quot;response&amp;quot;: &amp;quot;HOLA&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Para canales de voz ====&lt;br /&gt;
Para  canales de voz, existen comandos para &amp;quot;abrir sesión&amp;quot;, &amp;quot;enviar texto&amp;quot; y &amp;quot;cerrar sesión&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Abrir sesión =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; sessionOpen &amp;lt;omnisuite_UniqueId&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros (Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Requisito !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;omnisuite_UniqueId&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Unique_ID de asterisk de la llamada en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_id&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Id de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_phone_number&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Telf de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_email&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Email de cliente en Omnisuite&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
    &amp;quot;session&amp;quot;: &amp;quot;ec73df29-f08a-11f0-a8ec-525400ef204c&amp;quot;,&lt;br /&gt;
    &amp;quot;platform_id&amp;quot;: &amp;quot;146&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''El value correspondiente al key &amp;quot;session&amp;quot; deberá ser guardado en una variable para siguientes invocaciones'''&lt;br /&gt;
&lt;br /&gt;
===== Enviar texto =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; textRequest &amp;lt;vflow_session_uuid&amp;gt; &amp;lt;question&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Requisito !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_session_uuid&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Variable &amp;quot;session&amp;quot; almacenada en el &amp;quot;sessionOpen&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;question&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Texto a enviar al orquestado (p. ej. Flowise) (normal, abandoned, other)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
    &amp;quot;session&amp;quot;: &amp;quot;c6f6fad7-f6c1-11f0-a793-525400ef204c&amp;quot;,&lt;br /&gt;
    &amp;quot;language&amp;quot;: &amp;quot;ES&amp;quot;,&lt;br /&gt;
    &amp;quot;response&amp;quot;: &amp;quot;Cristóbal Colón.&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Cerrar sesión=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; sessionClose &amp;lt;vflow_session_uuid&amp;gt; &amp;lt;vflow_cause&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros  (Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Estado !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_session_uuid&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Variable &amp;quot;session&amp;quot; almacenada en el &amp;quot;sessionOpen&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_cause&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || (normal, abandoned, expired, other)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 104,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;Wrong session&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ejemplos para omnisuite ===&lt;br /&gt;
&lt;br /&gt;
'''Ejemplo de chat'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_chat.ini&amp;quot; &amp;quot;omnisuiteText&amp;quot; &amp;quot;{{interaction.id}}&amp;quot; &amp;quot;{{account.id}}&amp;quot; &amp;quot;{{interaction.createdAt}}&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;{{message.body}}&amp;quot; | jq -r '.response'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Ejemplo de voz'''&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen cally square.jpg|1024px|none|miniatura|Ejemplo de flujo de Cally Square]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_voice.ini&amp;quot; &amp;quot;sessionOpen&amp;quot; &amp;quot;{UNIQUEID}&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; |  jq -r '.session' &amp;lt;/pre&amp;gt;&lt;br /&gt;
::&amp;lt;small&amp;gt;salida del comando almacenado en variable &amp;quot;vflow_sessionopen_response&amp;quot; para su posterior uso en cally square&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen sessionopen.jpg|550px|center|miniatura|Abrir sesión en vFlow]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_desa_voz.ini&amp;quot; &amp;quot;textRequest&amp;quot; &amp;quot;{vflow_sessionopen_response}&amp;quot; &amp;quot;{OPENAI_WHISPER_TRANSCRIPT}&amp;quot; | jq -r '.response'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::&amp;lt;small&amp;gt;la voz se ha transcrito con OpenAI, por eso se usa como parámetro {OPENAI_WHISPER_TRANSCRIPT})&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen textrequest.jpg|550px|center|miniatura|Enviar texto en vFlow]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt; &lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_desa_voz.ini&amp;quot; &amp;quot;sessionClose&amp;quot; &amp;quot;{{vflow_sessionopen_response}}&amp;quot; &amp;quot;normal&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen sessionclose.jpg|900px|center|miniatura|Cerrar sesión en vFlow]]&lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:VIVAit Call]]&lt;br /&gt;
[[Category:Omnisuite]]&lt;br /&gt;
[[Category:IA]]&lt;/div&gt;</summary>
		<author><name>Alfredo.rodriguez</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_de_vFlow&amp;diff=17199</id>
		<title>Manual de operación de vFlow</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_de_vFlow&amp;diff=17199"/>
		<updated>2026-03-24T11:22:40Z</updated>

		<summary type="html">&lt;p&gt;Alfredo.rodriguez: /* Generales */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Descripción general vFlow ==&lt;br /&gt;
&lt;br /&gt;
vFlow es un módulo de conexión a sistemas de inteligencia artifical para sistemas de comunicaciones unificadas, ya sean sistemas corporativos o contact center&lt;br /&gt;
Gracias a vFlow, las plataformas de UC dispondrán de una solución para comunicarse con sistemas IA utilizando un mismo mecanismo independientemente de la solución de inteligencia artificial que se utilice&lt;br /&gt;
&lt;br /&gt;
Para proporcionar el servicio de manera completa, vFlow (en concreto el orquestador) se conectará a sistemas de inteligencia artificial (LLM) que permitirán desarrollar los agentes definidos en los orquestadores&lt;br /&gt;
&lt;br /&gt;
'''Conceptos:'''&lt;br /&gt;
* Plataforma&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Plataforma de comunicaciones unificadas; por ejemplo Omnisuite o VIVAit Call&lt;br /&gt;
* Orquestador&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Plataforma agéntica de IA (por ejemplo Flowise)&lt;br /&gt;
* vFlowProxy&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Módulo VIVAit que conecta multiples plataformas con múltiples orquestadores&lt;br /&gt;
* LLM&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Modelo de lenguaje natural que usará un orquestadores&lt;br /&gt;
* Agente&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Cada uno de los flujos creados en vFlow; corresponde a un par plataforma/agentflow de orquestador&lt;br /&gt;
* Servicio&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Cada elemento de negocio en la plataforma de CU (por ejemplo VDN)&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Arquitectura Vflow - v2.jpg|1000px|center|Arquitecura de vFlow]]&lt;br /&gt;
&lt;br /&gt;
Los '''módulos principales''' de vFlow son:&lt;br /&gt;
* vFlowProxy: Recibe las conexiones de los sistemas de comunicaciones unificadas, y conecta con los orquestadores de Inteligencia Artificial de manera segura y adaptada al tipo de servicio; el acceso a vFlow Proxy desde las plataformas se realizará mediante:&lt;br /&gt;
* Programa cliente: Se utiliza en el sistema de comunicaciones unificadas (actualmente VIVAit Call y Omnsisuite) para invocar a vFlow&lt;br /&gt;
* API REST: Alternativa al programa cliente, vFlowProxy proporciona una API REST que facilita que cualquier plataforma pueda comunicarse mediante un procedimiento estándar y documentado&lt;br /&gt;
* Portal de administración vFlow: Permite visualizar las interaciones realizadas y configurar el sistema&lt;br /&gt;
* Orquestador de IA: Herramienta de Inteligencia Artificial que permitirá la creación de aplicaciones personalizadas (agentes)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Otros elementos''' relevantes serán:&lt;br /&gt;
* Base de datos vFlow:&lt;br /&gt;
:* Almacena información sobre sesiones y transacciones realizadas&lt;br /&gt;
:* Almacena información de configuración sobre vFlow&lt;br /&gt;
:* Gestiona el RAG de las inteligencias artificiales a usar&lt;br /&gt;
&lt;br /&gt;
== Puesta en marcha de nodo vFlow ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Existe un nodo vFlow en los repositorios habituales proporcionados&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para '''dar de alta nodo vflow en un cliente''' hay que:&lt;br /&gt;
* Configurar IP (por defecto la maquina va configurada por DHCP)&lt;br /&gt;
* Adaptar el firewall, para ello REVISAR el fichero &amp;lt;code&amp;gt;/etc/firewall/vars.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
* Certificados validos en apache&lt;br /&gt;
* REVISAR ficheros &amp;lt;code&amp;gt;/etc/apache2/sites-enabled/flowise.conf&amp;lt;/code&amp;gt; y &amp;lt;code&amp;gt;/etc/apache2/sites-enabled/vFlow.conf&amp;lt;/code&amp;gt; la variable &amp;lt;code&amp;gt;ServerName&amp;lt;/code&amp;gt; (nombre valido de la maquina)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Accesos vFlow''' (se debe cambiar tras instalación):&lt;br /&gt;
* Usuario ssh y de SO por defecto es sat y clave a proporcionar.&lt;br /&gt;
* Para el portal de flowise las credenciales son usuario: vfloadmin@vflow.com clave: A proporcionar&lt;br /&gt;
* Para el portal de vflow las credenciales son usaurio sat y clave a proporcionar.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Accesos BBDD vFlow'''&lt;br /&gt;
* Para acceder a la base de datos desde el workbenck solo desde localhost (o tunel):&lt;br /&gt;
* BBDD Vlfow (admin)  vflowadmin // clave a proporcionar&lt;br /&gt;
* BBDD Vlfow (no_admin)  vflow //  clave a proporcionar&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Portal orquestador Flowise'''&lt;br /&gt;
&lt;br /&gt;
ubicado en https://host.cliente.xx:4567&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #fef6e7; border: 1px solid #fbd68a; padding: 1em; border-radius: 4px;width: fit-content; margin-left: 50px&amp;quot;&amp;gt;&lt;br /&gt;
'''⚠️ ATENCION !!'''&lt;br /&gt;
'''Los cambios en tablas de configuración de BBDD de vFlow (orquestadores, plataformas, agentes) requieren reinicio del servicio vFlowProxy'''&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', 'Monaco', 'Courier New', monospace;&amp;quot;&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service status&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service stop&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service start&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El fichero de configuración del demonio &amp;lt;cvode&amp;gt;vFlowProxy&amp;lt;/code&amp;gt; se encuentra en &amp;lt;code&amp;gt;/etc/MDtel/vFlowProxy.conf&amp;lt;/code&amp;gt;, si bien este fichero de configuración no se modificará habitualmente (los parámetros generales de configuración de vFlowProxy se encuentran en la BBDD de vFlow)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Relevante para poder '''poner en marcha un loader''':&lt;br /&gt;
* Subir el fichero inicial previamente a la carpeta destino según entorno (p. ej &amp;lt;code&amp;gt;/var/www/html/storages/production&amp;lt;/code&amp;gt;&lt;br /&gt;
* Tipo de loader --&amp;gt; API&lt;br /&gt;
* Método --&amp;gt; GET&lt;br /&gt;
* URL --&amp;gt; (ejemplo: http://172.25.129.242/storages/test/fichero-pru.txt)&lt;br /&gt;
::* Existirán URL &amp;quot;production&amp;quot;, &amp;quot;staging&amp;quot; y &amp;quot;test&amp;quot;&lt;br /&gt;
* Text Splitter: Recursive&lt;br /&gt;
* Qdrant --&amp;gt; localhost:6333&lt;br /&gt;
* Record Manager --&amp;gt; SQLite&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Se adjunta imagen a modo de ejemplo&lt;br /&gt;
[[Archivo:Alta loader vflow.png|800px|miniaturadeimagen|no|alta loader vFlow|link=]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gestión en vFlow ==&lt;br /&gt;
vFlow prevé la existencia de tres entornos que permita hacer una gestión segura de agentes y RAG:&lt;br /&gt;
&lt;br /&gt;
* Producción&lt;br /&gt;
* Preproducción&lt;br /&gt;
* Pruebas&lt;br /&gt;
&lt;br /&gt;
Para cada agente o store de RAG se podrá desplegar un entorno (producción), dos o los tres entornos&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #f0fff4; border: 3px solid #c6f6d5; padding: 1em; border-radius: 4px;width: fit-content; margin-left: 0px&amp;quot;&amp;gt;&lt;br /&gt;
✅ '''Recomendación'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En la mayoría de los casos con disponer de entorno de producción y preproducción tanto para agente como para RAG será suficiente&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Para realizar una gestión completa en vFlow (suponiendo tres entornos y gestión de agentes y RAG), deberemos tener&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Archivo:Gestión RAG.png|1000px|miniaturadeimagen|centro|Gestión RAG en vFlow|link=]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''En orquestador'''&lt;br /&gt;
* Crear '''tres stores''' (pro/pre/pru); en cada store:&lt;br /&gt;
::* En total '''tres loaders'''. Crear un loader por entorno (p.ej /pro/nombrefich). &lt;br /&gt;
::* Subir un primer &amp;quot;nombrefich&amp;quot;&lt;br /&gt;
::::* tipo texto (versión 0)&lt;br /&gt;
::::* el mismo para todos los entornos&lt;br /&gt;
::::* se sube por medios convencionales (p. ej SCP)&lt;br /&gt;
* Asegurar que los stores queden totalmente creados (estado &amp;quot;UPSERTED&amp;quot;)&lt;br /&gt;
* Crear '''tres agentes''' (pro/pre/pru)&lt;br /&gt;
::* Asociar a stores (pro/pre/pru)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''En flow'''&lt;br /&gt;
* Crear '''un agente'''&lt;br /&gt;
::* Vincularlo a los tres agentes de orquestador (pro/pre/pru)&lt;br /&gt;
* Crear '''un store'''&lt;br /&gt;
::* Vinculado a los tres stores de orquestador (pro/pre/pru)&lt;br /&gt;
* Crear '''un loader'''&lt;br /&gt;
::* Loader vinculado a agente de vflow&lt;br /&gt;
::* C_NAME loader coincidirá con los de orquestador (p.ej &amp;quot;nombrefich&amp;quot;)&lt;br /&gt;
::* Subir nueva versión v1 (&amp;quot;.txt&amp;quot;, &amp;quot;.pdf&amp;quot;, &amp;quot;.doc&amp;quot;, &amp;quot;.docx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Diagnósticos ==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/vFlowProxy/vFlowProxy.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En nodo vFlowProxy&lt;br /&gt;
::para cualquier canal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
nc localhost 1131&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En nodo vFlowProxy&lt;br /&gt;
::Monitoriza estado del proceso vflowProxy&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
  &amp;quot;proceso&amp;quot;: {&lt;br /&gt;
    &amp;quot;nombre&amp;quot;: &amp;quot;vFlowProxy&amp;quot;,&lt;br /&gt;
    &amp;quot;version&amp;quot;: &amp;quot;00.00.01&amp;quot;,&lt;br /&gt;
    &amp;quot;inicio_ts&amp;quot;: 1771315153,&lt;br /&gt;
    &amp;quot;inicio_cad&amp;quot;: &amp;quot;20260217 085913&amp;quot;,&lt;br /&gt;
    &amp;quot;log_alarmas_val&amp;quot;: 8,&lt;br /&gt;
    &amp;quot;log_alarma_ultimo_ts&amp;quot;: 1771970401,&lt;br /&gt;
    &amp;quot;log_alarma_ultimo_ts_cad&amp;quot;: &amp;quot;20260224 230001&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;diagnostico&amp;quot;: {&lt;br /&gt;
    &amp;quot;gmp&amp;quot;: {&lt;br /&gt;
      &amp;quot;msj_val&amp;quot;: 1022,&lt;br /&gt;
      &amp;quot;msj_max&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;buf_val&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;buf_max&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;tarea_val&amp;quot;: 7,&lt;br /&gt;
      &amp;quot;tarea_max&amp;quot;: 15&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;tiempo&amp;quot;: {&lt;br /&gt;
      &amp;quot;uptime&amp;quot;: 716665,&lt;br /&gt;
      &amp;quot;uptime_dias&amp;quot;: 8,&lt;br /&gt;
      &amp;quot;uptime_horas&amp;quot;: 7,&lt;br /&gt;
      &amp;quot;uptime_minutos&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;uptime_segundos&amp;quot;: 25&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;wws&amp;quot;: {&lt;br /&gt;
      &amp;quot;conexiones_val&amp;quot;: 0,&lt;br /&gt;
      &amp;quot;conexiones_max_periodo&amp;quot;: 0,&lt;br /&gt;
      &amp;quot;hilos_val&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;hilos_max&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;wsi_cad&amp;quot;: &amp;quot;sesiones=0/200&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;alarmas_nivel_max&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;alarmas&amp;quot;: []&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es relevante la monitorización de sesiones  &amp;lt;code&amp;gt;&amp;quot;wsi_cad&amp;quot;: &amp;quot;sesiones=0/200&amp;quot;&amp;lt;/code&amp;gt; (usadas/máximas)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
asterisk -rv | grep callsquare_name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::en nodo Omnisuite&lt;br /&gt;
::para canal voz&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/xcally/agi-combined.yyyy-mm-dd.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::en nodo Omnisuite&lt;br /&gt;
::para canal voz&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/xcally/routing-combined.yyyy-mm-dd.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::para canal voz&lt;br /&gt;
&lt;br /&gt;
== Para probar desde vFlow ==&lt;br /&gt;
&lt;br /&gt;
En /home/sat/vFlowProxy hay scripts de prueba (se configuran en el vars.sh); para usar los scripts de prueba tendremos que tener también &amp;quot;.ini&amp;quot; en vFlow&lt;br /&gt;
&lt;br /&gt;
Es útil comenzar con&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/home/sat/vFlowProxy/vFlowGetInfo.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
que sin parámetros adicionales confirma el correcto estado de vFlowProxy&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
  &amp;quot;app&amp;quot;: &amp;quot;vFlowProxy&amp;quot;,&lt;br /&gt;
  &amp;quot;version&amp;quot;: &amp;quot;00.00.01&amp;quot;,&lt;br /&gt;
  &amp;quot;sessions_opened&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;sessions_limit&amp;quot;: 200,&lt;br /&gt;
  &amp;quot;sessions_sleep_timeout_s&amp;quot;: 3600,&lt;br /&gt;
  &amp;quot;alarms&amp;quot;: 8&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Integración de vFlow desde Omnisuite ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Descripción general ===&lt;br /&gt;
En Omnisuite, la integración con vFlow, se realiza con el programa vFlowOmnisuite, que podrá ser invocado como ejecutable (más rápido, para debian), o como Python (más universal)&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
    /usr/local/sbin/vFlowOmnisuite (OPCIÓN PREFERENTE)&lt;br /&gt;
    /usr/local/sbin/vFlowOmnisuite.py (LEGACY)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Asociado al programa existen los siguientes ficheros de configuración (.ini):&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; de plataforma''' Omnisuite en vFlow --&amp;gt; Solo contiene uuid de la plataforma; se entrega un &amp;quot;.ini&amp;quot; a modo de ejemplo en &amp;lt;code&amp;gt;/etc/MDtel/vFlow/platform.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE PLATAFORMA&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
   [uuids]&lt;br /&gt;
   platform=1d111530-e22d-11f0-b0f2-5254008bef96&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; por agente''' en vFlow --&amp;gt; Solo contiene uuid del agente según su identificación en vFlow ('''NO''' en un orquestador, por ejemplo flowise); se entrega un &amp;quot;.ini&amp;quot; asociado a un agente &amp;quot;loop&amp;quot; existente en Flowise &amp;lt;code&amp;gt;/etc/MDtel/vFlow/agent_loop_01.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE AGENTE&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
   [uuids]&lt;br /&gt;
   agent=1a3a1020-ea1d-11f0-b4a5-5254008bef96&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; por servicio''' --&amp;gt; Configuración de cada servicio en Omnisuite; se entrega un &amp;quot;.ini&amp;quot; a modo de ejemplo en &amp;lt;code&amp;gt;/etc/MDtel/vFlow/service.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
En cada fichero de servicio configuraremos&lt;br /&gt;
::* Donde está Vflow&lt;br /&gt;
::* Agente&lt;br /&gt;
::* Plataforma&lt;br /&gt;
::* timeout_s --&amp;gt; Importante, es afectado por el LLM&lt;br /&gt;
::* channel_text_type --&amp;gt; IMPORTANTE si el servicio es de texto que esté bien (vacio solo si el servicio es de texto, NO COMENTARLO)&lt;br /&gt;
::* environment --&amp;gt; production, staging, test&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE SERVICIO&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
  [arch_uuids]&lt;br /&gt;
  agent=/etc/MDtel/vFlow/agent_loop_01.ini&lt;br /&gt;
  platform=/etc/MDtel/vFlow/platform.ini&lt;br /&gt;
&lt;br /&gt;
  [vflow]&lt;br /&gt;
  host_port=172.25.129.242:7900&lt;br /&gt;
  timeout_s=20&lt;br /&gt;
  # channel_type=[voice|chat|email]&lt;br /&gt;
  channel_type=chat&lt;br /&gt;
  # environment=[production|staging|test]&lt;br /&gt;
  environment=production&lt;br /&gt;
  language=es&lt;br /&gt;
&lt;br /&gt;
  [omnisuite]&lt;br /&gt;
  # channel_text_type=[chat|mail|sms|whatsup]&lt;br /&gt;
  channel_text_type=chat&lt;br /&gt;
  service_id=vflow_service_id&lt;br /&gt;
  service_name=vflow_service_name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La imagen siguiente muestra el esquema de relación entre orquestador/plataforma/agente/servicio en la plataforma y en vFlow&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Relaciones vFlow plat orq ag serv.png|800px|miniaturadeimagen|centro|Relación orquestador-plataforma-agente-servicio]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Invocación ===&lt;br /&gt;
==== Generales ====&lt;br /&gt;
&lt;br /&gt;
'''Ver configuración'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; configPrint&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
Configuration:&lt;br /&gt;
  agent_arch_uuid=/etc/MDtel/vFlow/agent_fse_rapido.ini&lt;br /&gt;
  agent_uuid=3487af28-1d14-11f1-803c-525400ef204c&lt;br /&gt;
  platform_arch_uuid=/etc/MDtel/vFlow/platform_labomsui.ini&lt;br /&gt;
  platform_uuid=9a54ea74-f050-11f0-bdf1-5254008bef96&lt;br /&gt;
&lt;br /&gt;
  vflow_host_port=labvflow.mdnova.local&lt;br /&gt;
  vflow_timeout_s=50&lt;br /&gt;
  vflow_environment=production&lt;br /&gt;
  vflow_channel_type=voice&lt;br /&gt;
  vflow_language=es&lt;br /&gt;
&lt;br /&gt;
  omnisuite_channel_text_type=chat&lt;br /&gt;
  omnisuite_service_id=287&lt;br /&gt;
  omnisuite_service_name=desarrollo&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;errorCad&amp;quot;: &amp;quot;OK&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Ver versión'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;version&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&lt;br /&gt;
==== Para canales de texto ====&lt;br /&gt;
&lt;br /&gt;
Para canales de texto en Omnisuite existe un único Comando de invocación &amp;quot;omnisuiteText&amp;quot;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; omnisuiteText &amp;lt;omnisuite_id&amp;gt; &amp;lt;omnisuite_websiteId&amp;gt; &amp;lt;omnisuite_createdAt&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt; &amp;lt;question&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros ( Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Obligatoriedad !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;config_arch&amp;gt;` || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_id&amp;gt;` || OBLIGATORIO || Identificativo de la interacción en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_websiteId&amp;gt;` || OBLIGATORIO || Identificativo del servicio en Omnisuite (ej. website id en chat)&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_createdAt&amp;gt;` || OBLIGATORIO || Creación de la interacción&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_id&amp;gt;` || OPCIONAL || Id de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_phone_number&amp;gt;` || OPCIONAL || Telf de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_email&amp;gt;` || OPCIONAL || Email de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;question&amp;gt;` || OBLIGATORIO || Texto a enviar al orquestado (p. ej. Flowise)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
 &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
 &amp;quot;session&amp;quot;: &amp;quot;e926548d-fdcf-11f0-a793-525400ef204c&amp;quot;,&lt;br /&gt;
 &amp;quot;language&amp;quot;: &amp;quot;es&amp;quot;,&lt;br /&gt;
 &amp;quot;response&amp;quot;: &amp;quot;HOLA&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Para canales de voz ====&lt;br /&gt;
Para  canales de voz, existen comandos para &amp;quot;abrir sesión&amp;quot;, &amp;quot;enviar texto&amp;quot; y &amp;quot;cerrar sesión&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Abrir sesión =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; sessionOpen &amp;lt;omnisuite_UniqueId&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros (Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Requisito !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;omnisuite_UniqueId&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Unique_ID de asterisk de la llamada en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_id&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Id de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_phone_number&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Telf de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_email&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Email de cliente en Omnisuite&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
    &amp;quot;session&amp;quot;: &amp;quot;ec73df29-f08a-11f0-a8ec-525400ef204c&amp;quot;,&lt;br /&gt;
    &amp;quot;platform_id&amp;quot;: &amp;quot;146&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''El value correspondiente al key &amp;quot;session&amp;quot; deberá ser guardado en una variable para siguientes invocaciones'''&lt;br /&gt;
&lt;br /&gt;
===== Enviar texto =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; textRequest &amp;lt;vflow_session_uuid&amp;gt; &amp;lt;question&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Requisito !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_session_uuid&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Variable &amp;quot;session&amp;quot; almacenada en el &amp;quot;sessionOpen&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;question&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Texto a enviar al orquestado (p. ej. Flowise) (normal, abandoned, other)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
    &amp;quot;session&amp;quot;: &amp;quot;c6f6fad7-f6c1-11f0-a793-525400ef204c&amp;quot;,&lt;br /&gt;
    &amp;quot;language&amp;quot;: &amp;quot;ES&amp;quot;,&lt;br /&gt;
    &amp;quot;response&amp;quot;: &amp;quot;Cristóbal Colón.&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Cerrar sesión=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; sessionClose &amp;lt;vflow_session_uuid&amp;gt; &amp;lt;vflow_cause&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros  (Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Estado !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_session_uuid&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Variable &amp;quot;session&amp;quot; almacenada en el &amp;quot;sessionOpen&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_cause&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || (normal, abandoned, expired, other)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 104,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;Wrong session&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ejemplos para omnisuite ===&lt;br /&gt;
&lt;br /&gt;
'''Ejemplo de chat'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_chat.ini&amp;quot; &amp;quot;omnisuiteText&amp;quot; &amp;quot;{{interaction.id}}&amp;quot; &amp;quot;{{account.id}}&amp;quot; &amp;quot;{{interaction.createdAt}}&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;{{message.body}}&amp;quot; | jq -r '.response'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Ejemplo de voz'''&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen cally square.jpg|1024px|none|miniatura|Ejemplo de flujo de Cally Square]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_voice.ini&amp;quot; &amp;quot;sessionOpen&amp;quot; &amp;quot;{UNIQUEID}&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; |  jq -r '.session' &amp;lt;/pre&amp;gt;&lt;br /&gt;
::&amp;lt;small&amp;gt;salida del comando almacenado en variable &amp;quot;vflow_sessionopen_response&amp;quot; para su posterior uso en cally square&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen sessionopen.jpg|550px|center|miniatura|Abrir sesión en vFlow]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_desa_voz.ini&amp;quot; &amp;quot;textRequest&amp;quot; &amp;quot;{vflow_sessionopen_response}&amp;quot; &amp;quot;{OPENAI_WHISPER_TRANSCRIPT}&amp;quot; | jq -r '.response'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::&amp;lt;small&amp;gt;la voz se ha transcrito con OpenAI, por eso se usa como parámetro {OPENAI_WHISPER_TRANSCRIPT})&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen textrequest.jpg|550px|center|miniatura|Enviar texto en vFlow]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt; &lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_desa_voz.ini&amp;quot; &amp;quot;sessionClose&amp;quot; &amp;quot;{{vflow_sessionopen_response}}&amp;quot; &amp;quot;normal&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen sessionclose.jpg|900px|center|miniatura|Cerrar sesión en vFlow]]&lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:VIVAit Call]]&lt;br /&gt;
[[Category:Omnisuite]]&lt;br /&gt;
[[Category:IA]]&lt;/div&gt;</summary>
		<author><name>Alfredo.rodriguez</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_de_vFlow&amp;diff=17198</id>
		<title>Manual de operación de vFlow</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_de_vFlow&amp;diff=17198"/>
		<updated>2026-03-24T11:21:18Z</updated>

		<summary type="html">&lt;p&gt;Alfredo.rodriguez: /* Generales */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Descripción general vFlow ==&lt;br /&gt;
&lt;br /&gt;
vFlow es un módulo de conexión a sistemas de inteligencia artifical para sistemas de comunicaciones unificadas, ya sean sistemas corporativos o contact center&lt;br /&gt;
Gracias a vFlow, las plataformas de UC dispondrán de una solución para comunicarse con sistemas IA utilizando un mismo mecanismo independientemente de la solución de inteligencia artificial que se utilice&lt;br /&gt;
&lt;br /&gt;
Para proporcionar el servicio de manera completa, vFlow (en concreto el orquestador) se conectará a sistemas de inteligencia artificial (LLM) que permitirán desarrollar los agentes definidos en los orquestadores&lt;br /&gt;
&lt;br /&gt;
'''Conceptos:'''&lt;br /&gt;
* Plataforma&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Plataforma de comunicaciones unificadas; por ejemplo Omnisuite o VIVAit Call&lt;br /&gt;
* Orquestador&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Plataforma agéntica de IA (por ejemplo Flowise)&lt;br /&gt;
* vFlowProxy&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Módulo VIVAit que conecta multiples plataformas con múltiples orquestadores&lt;br /&gt;
* LLM&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Modelo de lenguaje natural que usará un orquestadores&lt;br /&gt;
* Agente&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Cada uno de los flujos creados en vFlow; corresponde a un par plataforma/agentflow de orquestador&lt;br /&gt;
* Servicio&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Cada elemento de negocio en la plataforma de CU (por ejemplo VDN)&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Arquitectura Vflow - v2.jpg|1000px|center|Arquitecura de vFlow]]&lt;br /&gt;
&lt;br /&gt;
Los '''módulos principales''' de vFlow son:&lt;br /&gt;
* vFlowProxy: Recibe las conexiones de los sistemas de comunicaciones unificadas, y conecta con los orquestadores de Inteligencia Artificial de manera segura y adaptada al tipo de servicio; el acceso a vFlow Proxy desde las plataformas se realizará mediante:&lt;br /&gt;
* Programa cliente: Se utiliza en el sistema de comunicaciones unificadas (actualmente VIVAit Call y Omnsisuite) para invocar a vFlow&lt;br /&gt;
* API REST: Alternativa al programa cliente, vFlowProxy proporciona una API REST que facilita que cualquier plataforma pueda comunicarse mediante un procedimiento estándar y documentado&lt;br /&gt;
* Portal de administración vFlow: Permite visualizar las interaciones realizadas y configurar el sistema&lt;br /&gt;
* Orquestador de IA: Herramienta de Inteligencia Artificial que permitirá la creación de aplicaciones personalizadas (agentes)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Otros elementos''' relevantes serán:&lt;br /&gt;
* Base de datos vFlow:&lt;br /&gt;
:* Almacena información sobre sesiones y transacciones realizadas&lt;br /&gt;
:* Almacena información de configuración sobre vFlow&lt;br /&gt;
:* Gestiona el RAG de las inteligencias artificiales a usar&lt;br /&gt;
&lt;br /&gt;
== Puesta en marcha de nodo vFlow ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Existe un nodo vFlow en los repositorios habituales proporcionados&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para '''dar de alta nodo vflow en un cliente''' hay que:&lt;br /&gt;
* Configurar IP (por defecto la maquina va configurada por DHCP)&lt;br /&gt;
* Adaptar el firewall, para ello REVISAR el fichero &amp;lt;code&amp;gt;/etc/firewall/vars.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
* Certificados validos en apache&lt;br /&gt;
* REVISAR ficheros &amp;lt;code&amp;gt;/etc/apache2/sites-enabled/flowise.conf&amp;lt;/code&amp;gt; y &amp;lt;code&amp;gt;/etc/apache2/sites-enabled/vFlow.conf&amp;lt;/code&amp;gt; la variable &amp;lt;code&amp;gt;ServerName&amp;lt;/code&amp;gt; (nombre valido de la maquina)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Accesos vFlow''' (se debe cambiar tras instalación):&lt;br /&gt;
* Usuario ssh y de SO por defecto es sat y clave a proporcionar.&lt;br /&gt;
* Para el portal de flowise las credenciales son usuario: vfloadmin@vflow.com clave: A proporcionar&lt;br /&gt;
* Para el portal de vflow las credenciales son usaurio sat y clave a proporcionar.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Accesos BBDD vFlow'''&lt;br /&gt;
* Para acceder a la base de datos desde el workbenck solo desde localhost (o tunel):&lt;br /&gt;
* BBDD Vlfow (admin)  vflowadmin // clave a proporcionar&lt;br /&gt;
* BBDD Vlfow (no_admin)  vflow //  clave a proporcionar&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Portal orquestador Flowise'''&lt;br /&gt;
&lt;br /&gt;
ubicado en https://host.cliente.xx:4567&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #fef6e7; border: 1px solid #fbd68a; padding: 1em; border-radius: 4px;width: fit-content; margin-left: 50px&amp;quot;&amp;gt;&lt;br /&gt;
'''⚠️ ATENCION !!'''&lt;br /&gt;
'''Los cambios en tablas de configuración de BBDD de vFlow (orquestadores, plataformas, agentes) requieren reinicio del servicio vFlowProxy'''&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', 'Monaco', 'Courier New', monospace;&amp;quot;&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service status&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service stop&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service start&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El fichero de configuración del demonio &amp;lt;cvode&amp;gt;vFlowProxy&amp;lt;/code&amp;gt; se encuentra en &amp;lt;code&amp;gt;/etc/MDtel/vFlowProxy.conf&amp;lt;/code&amp;gt;, si bien este fichero de configuración no se modificará habitualmente (los parámetros generales de configuración de vFlowProxy se encuentran en la BBDD de vFlow)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Relevante para poder '''poner en marcha un loader''':&lt;br /&gt;
* Subir el fichero inicial previamente a la carpeta destino según entorno (p. ej &amp;lt;code&amp;gt;/var/www/html/storages/production&amp;lt;/code&amp;gt;&lt;br /&gt;
* Tipo de loader --&amp;gt; API&lt;br /&gt;
* Método --&amp;gt; GET&lt;br /&gt;
* URL --&amp;gt; (ejemplo: http://172.25.129.242/storages/test/fichero-pru.txt)&lt;br /&gt;
::* Existirán URL &amp;quot;production&amp;quot;, &amp;quot;staging&amp;quot; y &amp;quot;test&amp;quot;&lt;br /&gt;
* Text Splitter: Recursive&lt;br /&gt;
* Qdrant --&amp;gt; localhost:6333&lt;br /&gt;
* Record Manager --&amp;gt; SQLite&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Se adjunta imagen a modo de ejemplo&lt;br /&gt;
[[Archivo:Alta loader vflow.png|800px|miniaturadeimagen|no|alta loader vFlow|link=]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gestión en vFlow ==&lt;br /&gt;
vFlow prevé la existencia de tres entornos que permita hacer una gestión segura de agentes y RAG:&lt;br /&gt;
&lt;br /&gt;
* Producción&lt;br /&gt;
* Preproducción&lt;br /&gt;
* Pruebas&lt;br /&gt;
&lt;br /&gt;
Para cada agente o store de RAG se podrá desplegar un entorno (producción), dos o los tres entornos&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #f0fff4; border: 3px solid #c6f6d5; padding: 1em; border-radius: 4px;width: fit-content; margin-left: 0px&amp;quot;&amp;gt;&lt;br /&gt;
✅ '''Recomendación'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En la mayoría de los casos con disponer de entorno de producción y preproducción tanto para agente como para RAG será suficiente&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Para realizar una gestión completa en vFlow (suponiendo tres entornos y gestión de agentes y RAG), deberemos tener&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Archivo:Gestión RAG.png|1000px|miniaturadeimagen|centro|Gestión RAG en vFlow|link=]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''En orquestador'''&lt;br /&gt;
* Crear '''tres stores''' (pro/pre/pru); en cada store:&lt;br /&gt;
::* En total '''tres loaders'''. Crear un loader por entorno (p.ej /pro/nombrefich). &lt;br /&gt;
::* Subir un primer &amp;quot;nombrefich&amp;quot;&lt;br /&gt;
::::* tipo texto (versión 0)&lt;br /&gt;
::::* el mismo para todos los entornos&lt;br /&gt;
::::* se sube por medios convencionales (p. ej SCP)&lt;br /&gt;
* Asegurar que los stores queden totalmente creados (estado &amp;quot;UPSERTED&amp;quot;)&lt;br /&gt;
* Crear '''tres agentes''' (pro/pre/pru)&lt;br /&gt;
::* Asociar a stores (pro/pre/pru)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''En flow'''&lt;br /&gt;
* Crear '''un agente'''&lt;br /&gt;
::* Vincularlo a los tres agentes de orquestador (pro/pre/pru)&lt;br /&gt;
* Crear '''un store'''&lt;br /&gt;
::* Vinculado a los tres stores de orquestador (pro/pre/pru)&lt;br /&gt;
* Crear '''un loader'''&lt;br /&gt;
::* Loader vinculado a agente de vflow&lt;br /&gt;
::* C_NAME loader coincidirá con los de orquestador (p.ej &amp;quot;nombrefich&amp;quot;)&lt;br /&gt;
::* Subir nueva versión v1 (&amp;quot;.txt&amp;quot;, &amp;quot;.pdf&amp;quot;, &amp;quot;.doc&amp;quot;, &amp;quot;.docx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Diagnósticos ==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/vFlowProxy/vFlowProxy.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En nodo vFlowProxy&lt;br /&gt;
::para cualquier canal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
nc localhost 1131&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En nodo vFlowProxy&lt;br /&gt;
::Monitoriza estado del proceso vflowProxy&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
  &amp;quot;proceso&amp;quot;: {&lt;br /&gt;
    &amp;quot;nombre&amp;quot;: &amp;quot;vFlowProxy&amp;quot;,&lt;br /&gt;
    &amp;quot;version&amp;quot;: &amp;quot;00.00.01&amp;quot;,&lt;br /&gt;
    &amp;quot;inicio_ts&amp;quot;: 1771315153,&lt;br /&gt;
    &amp;quot;inicio_cad&amp;quot;: &amp;quot;20260217 085913&amp;quot;,&lt;br /&gt;
    &amp;quot;log_alarmas_val&amp;quot;: 8,&lt;br /&gt;
    &amp;quot;log_alarma_ultimo_ts&amp;quot;: 1771970401,&lt;br /&gt;
    &amp;quot;log_alarma_ultimo_ts_cad&amp;quot;: &amp;quot;20260224 230001&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;diagnostico&amp;quot;: {&lt;br /&gt;
    &amp;quot;gmp&amp;quot;: {&lt;br /&gt;
      &amp;quot;msj_val&amp;quot;: 1022,&lt;br /&gt;
      &amp;quot;msj_max&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;buf_val&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;buf_max&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;tarea_val&amp;quot;: 7,&lt;br /&gt;
      &amp;quot;tarea_max&amp;quot;: 15&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;tiempo&amp;quot;: {&lt;br /&gt;
      &amp;quot;uptime&amp;quot;: 716665,&lt;br /&gt;
      &amp;quot;uptime_dias&amp;quot;: 8,&lt;br /&gt;
      &amp;quot;uptime_horas&amp;quot;: 7,&lt;br /&gt;
      &amp;quot;uptime_minutos&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;uptime_segundos&amp;quot;: 25&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;wws&amp;quot;: {&lt;br /&gt;
      &amp;quot;conexiones_val&amp;quot;: 0,&lt;br /&gt;
      &amp;quot;conexiones_max_periodo&amp;quot;: 0,&lt;br /&gt;
      &amp;quot;hilos_val&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;hilos_max&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;wsi_cad&amp;quot;: &amp;quot;sesiones=0/200&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;alarmas_nivel_max&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;alarmas&amp;quot;: []&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es relevante la monitorización de sesiones  &amp;lt;code&amp;gt;&amp;quot;wsi_cad&amp;quot;: &amp;quot;sesiones=0/200&amp;quot;&amp;lt;/code&amp;gt; (usadas/máximas)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
asterisk -rv | grep callsquare_name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::en nodo Omnisuite&lt;br /&gt;
::para canal voz&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/xcally/agi-combined.yyyy-mm-dd.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::en nodo Omnisuite&lt;br /&gt;
::para canal voz&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/xcally/routing-combined.yyyy-mm-dd.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::para canal voz&lt;br /&gt;
&lt;br /&gt;
== Para probar desde vFlow ==&lt;br /&gt;
&lt;br /&gt;
En /home/sat/vFlowProxy hay scripts de prueba (se configuran en el vars.sh); para usar los scripts de prueba tendremos que tener también &amp;quot;.ini&amp;quot; en vFlow&lt;br /&gt;
&lt;br /&gt;
Es útil comenzar con&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/home/sat/vFlowProxy/vFlowGetInfo.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
que sin parámetros adicionales confirma el correcto estado de vFlowProxy&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
  &amp;quot;app&amp;quot;: &amp;quot;vFlowProxy&amp;quot;,&lt;br /&gt;
  &amp;quot;version&amp;quot;: &amp;quot;00.00.01&amp;quot;,&lt;br /&gt;
  &amp;quot;sessions_opened&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;sessions_limit&amp;quot;: 200,&lt;br /&gt;
  &amp;quot;sessions_sleep_timeout_s&amp;quot;: 3600,&lt;br /&gt;
  &amp;quot;alarms&amp;quot;: 8&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Integración de vFlow desde Omnisuite ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Descripción general ===&lt;br /&gt;
En Omnisuite, la integración con vFlow, se realiza con el programa vFlowOmnisuite, que podrá ser invocado como ejecutable (más rápido, para debian), o como Python (más universal)&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
    /usr/local/sbin/vFlowOmnisuite (OPCIÓN PREFERENTE)&lt;br /&gt;
    /usr/local/sbin/vFlowOmnisuite.py (LEGACY)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Asociado al programa existen los siguientes ficheros de configuración (.ini):&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; de plataforma''' Omnisuite en vFlow --&amp;gt; Solo contiene uuid de la plataforma; se entrega un &amp;quot;.ini&amp;quot; a modo de ejemplo en &amp;lt;code&amp;gt;/etc/MDtel/vFlow/platform.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE PLATAFORMA&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
   [uuids]&lt;br /&gt;
   platform=1d111530-e22d-11f0-b0f2-5254008bef96&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; por agente''' en vFlow --&amp;gt; Solo contiene uuid del agente según su identificación en vFlow ('''NO''' en un orquestador, por ejemplo flowise); se entrega un &amp;quot;.ini&amp;quot; asociado a un agente &amp;quot;loop&amp;quot; existente en Flowise &amp;lt;code&amp;gt;/etc/MDtel/vFlow/agent_loop_01.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE AGENTE&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
   [uuids]&lt;br /&gt;
   agent=1a3a1020-ea1d-11f0-b4a5-5254008bef96&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; por servicio''' --&amp;gt; Configuración de cada servicio en Omnisuite; se entrega un &amp;quot;.ini&amp;quot; a modo de ejemplo en &amp;lt;code&amp;gt;/etc/MDtel/vFlow/service.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
En cada fichero de servicio configuraremos&lt;br /&gt;
::* Donde está Vflow&lt;br /&gt;
::* Agente&lt;br /&gt;
::* Plataforma&lt;br /&gt;
::* timeout_s --&amp;gt; Importante, es afectado por el LLM&lt;br /&gt;
::* channel_text_type --&amp;gt; IMPORTANTE si el servicio es de texto que esté bien (vacio solo si el servicio es de texto, NO COMENTARLO)&lt;br /&gt;
::* environment --&amp;gt; production, staging, test&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE SERVICIO&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
  [arch_uuids]&lt;br /&gt;
  agent=/etc/MDtel/vFlow/agent_loop_01.ini&lt;br /&gt;
  platform=/etc/MDtel/vFlow/platform.ini&lt;br /&gt;
&lt;br /&gt;
  [vflow]&lt;br /&gt;
  host_port=172.25.129.242:7900&lt;br /&gt;
  timeout_s=20&lt;br /&gt;
  # channel_type=[voice|chat|email]&lt;br /&gt;
  channel_type=chat&lt;br /&gt;
  # environment=[production|staging|test]&lt;br /&gt;
  environment=production&lt;br /&gt;
  language=es&lt;br /&gt;
&lt;br /&gt;
  [omnisuite]&lt;br /&gt;
  # channel_text_type=[chat|mail|sms|whatsup]&lt;br /&gt;
  channel_text_type=chat&lt;br /&gt;
  service_id=vflow_service_id&lt;br /&gt;
  service_name=vflow_service_name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La imagen siguiente muestra el esquema de relación entre orquestador/plataforma/agente/servicio en la plataforma y en vFlow&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Relaciones vFlow plat orq ag serv.png|800px|miniaturadeimagen|centro|Relación orquestador-plataforma-agente-servicio]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Invocación ===&lt;br /&gt;
==== Generales ====&lt;br /&gt;
&lt;br /&gt;
'''Ver configuración'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; configPrint&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
Configuration:&lt;br /&gt;
  agent_arch_uuid=/etc/MDtel/vFlow/agent_fse_rapido.ini&lt;br /&gt;
  agent_uuid=3487af28-1d14-11f1-803c-525400ef204c&lt;br /&gt;
  platform_arch_uuid=/etc/MDtel/vFlow/platform_labomsui.ini&lt;br /&gt;
  platform_uuid=9a54ea74-f050-11f0-bdf1-5254008bef96&lt;br /&gt;
&lt;br /&gt;
  vflow_host_port=labvflow.mdnova.local&lt;br /&gt;
  vflow_timeout_s=50&lt;br /&gt;
  vflow_environment=production&lt;br /&gt;
  vflow_channel_type=voice&lt;br /&gt;
  vflow_language=es&lt;br /&gt;
&lt;br /&gt;
  omnisuite_channel_text_type=chat&lt;br /&gt;
  omnisuite_service_id=287&lt;br /&gt;
  omnisuite_service_name=desarrollo&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;errorCad&amp;quot;: &amp;quot;OK&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Ver versión'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; version&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&lt;br /&gt;
==== Para canales de texto ====&lt;br /&gt;
&lt;br /&gt;
Para canales de texto en Omnisuite existe un único Comando de invocación &amp;quot;omnisuiteText&amp;quot;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; omnisuiteText &amp;lt;omnisuite_id&amp;gt; &amp;lt;omnisuite_websiteId&amp;gt; &amp;lt;omnisuite_createdAt&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt; &amp;lt;question&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros ( Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Obligatoriedad !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;config_arch&amp;gt;` || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_id&amp;gt;` || OBLIGATORIO || Identificativo de la interacción en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_websiteId&amp;gt;` || OBLIGATORIO || Identificativo del servicio en Omnisuite (ej. website id en chat)&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_createdAt&amp;gt;` || OBLIGATORIO || Creación de la interacción&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_id&amp;gt;` || OPCIONAL || Id de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_phone_number&amp;gt;` || OPCIONAL || Telf de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_email&amp;gt;` || OPCIONAL || Email de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;question&amp;gt;` || OBLIGATORIO || Texto a enviar al orquestado (p. ej. Flowise)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
 &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
 &amp;quot;session&amp;quot;: &amp;quot;e926548d-fdcf-11f0-a793-525400ef204c&amp;quot;,&lt;br /&gt;
 &amp;quot;language&amp;quot;: &amp;quot;es&amp;quot;,&lt;br /&gt;
 &amp;quot;response&amp;quot;: &amp;quot;HOLA&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Para canales de voz ====&lt;br /&gt;
Para  canales de voz, existen comandos para &amp;quot;abrir sesión&amp;quot;, &amp;quot;enviar texto&amp;quot; y &amp;quot;cerrar sesión&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Abrir sesión =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; sessionOpen &amp;lt;omnisuite_UniqueId&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros (Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Requisito !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;omnisuite_UniqueId&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Unique_ID de asterisk de la llamada en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_id&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Id de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_phone_number&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Telf de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_email&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Email de cliente en Omnisuite&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
    &amp;quot;session&amp;quot;: &amp;quot;ec73df29-f08a-11f0-a8ec-525400ef204c&amp;quot;,&lt;br /&gt;
    &amp;quot;platform_id&amp;quot;: &amp;quot;146&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''El value correspondiente al key &amp;quot;session&amp;quot; deberá ser guardado en una variable para siguientes invocaciones'''&lt;br /&gt;
&lt;br /&gt;
===== Enviar texto =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; textRequest &amp;lt;vflow_session_uuid&amp;gt; &amp;lt;question&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Requisito !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_session_uuid&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Variable &amp;quot;session&amp;quot; almacenada en el &amp;quot;sessionOpen&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;question&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Texto a enviar al orquestado (p. ej. Flowise) (normal, abandoned, other)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
    &amp;quot;session&amp;quot;: &amp;quot;c6f6fad7-f6c1-11f0-a793-525400ef204c&amp;quot;,&lt;br /&gt;
    &amp;quot;language&amp;quot;: &amp;quot;ES&amp;quot;,&lt;br /&gt;
    &amp;quot;response&amp;quot;: &amp;quot;Cristóbal Colón.&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Cerrar sesión=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; sessionClose &amp;lt;vflow_session_uuid&amp;gt; &amp;lt;vflow_cause&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros  (Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Estado !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_session_uuid&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Variable &amp;quot;session&amp;quot; almacenada en el &amp;quot;sessionOpen&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_cause&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || (normal, abandoned, expired, other)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 104,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;Wrong session&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ejemplos para omnisuite ===&lt;br /&gt;
&lt;br /&gt;
'''Ejemplo de chat'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_chat.ini&amp;quot; &amp;quot;omnisuiteText&amp;quot; &amp;quot;{{interaction.id}}&amp;quot; &amp;quot;{{account.id}}&amp;quot; &amp;quot;{{interaction.createdAt}}&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;{{message.body}}&amp;quot; | jq -r '.response'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Ejemplo de voz'''&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen cally square.jpg|1024px|none|miniatura|Ejemplo de flujo de Cally Square]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_voice.ini&amp;quot; &amp;quot;sessionOpen&amp;quot; &amp;quot;{UNIQUEID}&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; |  jq -r '.session' &amp;lt;/pre&amp;gt;&lt;br /&gt;
::&amp;lt;small&amp;gt;salida del comando almacenado en variable &amp;quot;vflow_sessionopen_response&amp;quot; para su posterior uso en cally square&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen sessionopen.jpg|550px|center|miniatura|Abrir sesión en vFlow]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_desa_voz.ini&amp;quot; &amp;quot;textRequest&amp;quot; &amp;quot;{vflow_sessionopen_response}&amp;quot; &amp;quot;{OPENAI_WHISPER_TRANSCRIPT}&amp;quot; | jq -r '.response'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::&amp;lt;small&amp;gt;la voz se ha transcrito con OpenAI, por eso se usa como parámetro {OPENAI_WHISPER_TRANSCRIPT})&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen textrequest.jpg|550px|center|miniatura|Enviar texto en vFlow]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt; &lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_desa_voz.ini&amp;quot; &amp;quot;sessionClose&amp;quot; &amp;quot;{{vflow_sessionopen_response}}&amp;quot; &amp;quot;normal&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen sessionclose.jpg|900px|center|miniatura|Cerrar sesión en vFlow]]&lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:VIVAit Call]]&lt;br /&gt;
[[Category:Omnisuite]]&lt;br /&gt;
[[Category:IA]]&lt;/div&gt;</summary>
		<author><name>Alfredo.rodriguez</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_de_vFlow&amp;diff=17193</id>
		<title>Manual de operación de vFlow</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_de_vFlow&amp;diff=17193"/>
		<updated>2026-03-24T11:16:40Z</updated>

		<summary type="html">&lt;p&gt;Alfredo.rodriguez: /* Generales */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Descripción general vFlow ==&lt;br /&gt;
&lt;br /&gt;
vFlow es un módulo de conexión a sistemas de inteligencia artifical para sistemas de comunicaciones unificadas, ya sean sistemas corporativos o contact center&lt;br /&gt;
Gracias a vFlow, las plataformas de UC dispondrán de una solución para comunicarse con sistemas IA utilizando un mismo mecanismo independientemente de la solución de inteligencia artificial que se utilice&lt;br /&gt;
&lt;br /&gt;
Para proporcionar el servicio de manera completa, vFlow (en concreto el orquestador) se conectará a sistemas de inteligencia artificial (LLM) que permitirán desarrollar los agentes definidos en los orquestadores&lt;br /&gt;
&lt;br /&gt;
'''Conceptos:'''&lt;br /&gt;
* Plataforma&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Plataforma de comunicaciones unificadas; por ejemplo Omnisuite o VIVAit Call&lt;br /&gt;
* Orquestador&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Plataforma agéntica de IA (por ejemplo Flowise)&lt;br /&gt;
* vFlowProxy&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Módulo VIVAit que conecta multiples plataformas con múltiples orquestadores&lt;br /&gt;
* LLM&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Modelo de lenguaje natural que usará un orquestadores&lt;br /&gt;
* Agente&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Cada uno de los flujos creados en vFlow; corresponde a un par plataforma/agentflow de orquestador&lt;br /&gt;
* Servicio&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Cada elemento de negocio en la plataforma de CU (por ejemplo VDN)&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Arquitectura Vflow - v2.jpg|1000px|center|Arquitecura de vFlow]]&lt;br /&gt;
&lt;br /&gt;
Los '''módulos principales''' de vFlow son:&lt;br /&gt;
* vFlowProxy: Recibe las conexiones de los sistemas de comunicaciones unificadas, y conecta con los orquestadores de Inteligencia Artificial de manera segura y adaptada al tipo de servicio; el acceso a vFlow Proxy desde las plataformas se realizará mediante:&lt;br /&gt;
* Programa cliente: Se utiliza en el sistema de comunicaciones unificadas (actualmente VIVAit Call y Omnsisuite) para invocar a vFlow&lt;br /&gt;
* API REST: Alternativa al programa cliente, vFlowProxy proporciona una API REST que facilita que cualquier plataforma pueda comunicarse mediante un procedimiento estándar y documentado&lt;br /&gt;
* Portal de administración vFlow: Permite visualizar las interaciones realizadas y configurar el sistema&lt;br /&gt;
* Orquestador de IA: Herramienta de Inteligencia Artificial que permitirá la creación de aplicaciones personalizadas (agentes)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Otros elementos''' relevantes serán:&lt;br /&gt;
* Base de datos vFlow:&lt;br /&gt;
:* Almacena información sobre sesiones y transacciones realizadas&lt;br /&gt;
:* Almacena información de configuración sobre vFlow&lt;br /&gt;
:* Gestiona el RAG de las inteligencias artificiales a usar&lt;br /&gt;
&lt;br /&gt;
== Puesta en marcha de nodo vFlow ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Existe un nodo vFlow en los repositorios habituales proporcionados&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para '''dar de alta nodo vflow en un cliente''' hay que:&lt;br /&gt;
* Configurar IP (por defecto la maquina va configurada por DHCP)&lt;br /&gt;
* Adaptar el firewall, para ello REVISAR el fichero &amp;lt;code&amp;gt;/etc/firewall/vars.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
* Certificados validos en apache&lt;br /&gt;
* REVISAR ficheros &amp;lt;code&amp;gt;/etc/apache2/sites-enabled/flowise.conf&amp;lt;/code&amp;gt; y &amp;lt;code&amp;gt;/etc/apache2/sites-enabled/vFlow.conf&amp;lt;/code&amp;gt; la variable &amp;lt;code&amp;gt;ServerName&amp;lt;/code&amp;gt; (nombre valido de la maquina)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Accesos vFlow''' (se debe cambiar tras instalación):&lt;br /&gt;
* Usuario ssh y de SO por defecto es sat y clave a proporcionar.&lt;br /&gt;
* Para el portal de flowise las credenciales son usuario: vfloadmin@vflow.com clave: A proporcionar&lt;br /&gt;
* Para el portal de vflow las credenciales son usaurio sat y clave a proporcionar.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Accesos BBDD vFlow'''&lt;br /&gt;
* Para acceder a la base de datos desde el workbenck solo desde localhost (o tunel):&lt;br /&gt;
* BBDD Vlfow (admin)  vflowadmin // clave a proporcionar&lt;br /&gt;
* BBDD Vlfow (no_admin)  vflow //  clave a proporcionar&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Portal orquestador Flowise'''&lt;br /&gt;
&lt;br /&gt;
ubicado en https://host.cliente.xx:4567&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #fef6e7; border: 1px solid #fbd68a; padding: 1em; border-radius: 4px;width: fit-content; margin-left: 50px&amp;quot;&amp;gt;&lt;br /&gt;
'''⚠️ ATENCION !!'''&lt;br /&gt;
'''Los cambios en tablas de configuración de BBDD de vFlow (orquestadores, plataformas, agentes) requieren reinicio del servicio vFlowProxy'''&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', 'Monaco', 'Courier New', monospace;&amp;quot;&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service status&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service stop&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service start&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El fichero de configuración del demonio &amp;lt;cvode&amp;gt;vFlowProxy&amp;lt;/code&amp;gt; se encuentra en &amp;lt;code&amp;gt;/etc/MDtel/vFlowProxy.conf&amp;lt;/code&amp;gt;, si bien este fichero de configuración no se modificará habitualmente (los parámetros generales de configuración de vFlowProxy se encuentran en la BBDD de vFlow)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Relevante para poder '''poner en marcha un loader''':&lt;br /&gt;
* Subir el fichero inicial previamente a la carpeta destino según entorno (p. ej &amp;lt;code&amp;gt;/var/www/html/storages/production&amp;lt;/code&amp;gt;&lt;br /&gt;
* Tipo de loader --&amp;gt; API&lt;br /&gt;
* Método --&amp;gt; GET&lt;br /&gt;
* URL --&amp;gt; (ejemplo: http://172.25.129.242/storages/test/fichero-pru.txt)&lt;br /&gt;
::* Existirán URL &amp;quot;production&amp;quot;, &amp;quot;staging&amp;quot; y &amp;quot;test&amp;quot;&lt;br /&gt;
* Text Splitter: Recursive&lt;br /&gt;
* Qdrant --&amp;gt; localhost:6333&lt;br /&gt;
* Record Manager --&amp;gt; SQLite&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Se adjunta imagen a modo de ejemplo&lt;br /&gt;
[[Archivo:Alta loader vflow.png|800px|miniaturadeimagen|no|alta loader vFlow|link=]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gestión en vFlow ==&lt;br /&gt;
vFlow prevé la existencia de tres entornos que permita hacer una gestión segura de agentes y RAG:&lt;br /&gt;
&lt;br /&gt;
* Producción&lt;br /&gt;
* Preproducción&lt;br /&gt;
* Pruebas&lt;br /&gt;
&lt;br /&gt;
Para cada agente o store de RAG se podrá desplegar un entorno (producción), dos o los tres entornos&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #f0fff4; border: 3px solid #c6f6d5; padding: 1em; border-radius: 4px;width: fit-content; margin-left: 0px&amp;quot;&amp;gt;&lt;br /&gt;
✅ '''Recomendación'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En la mayoría de los casos con disponer de entorno de producción y preproducción tanto para agente como para RAG será suficiente&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Para realizar una gestión completa en vFlow (suponiendo tres entornos y gestión de agentes y RAG), deberemos tener&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Archivo:Gestión RAG.png|1000px|miniaturadeimagen|centro|Gestión RAG en vFlow|link=]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''En orquestador'''&lt;br /&gt;
* Crear '''tres stores''' (pro/pre/pru); en cada store:&lt;br /&gt;
::* En total '''tres loaders'''. Crear un loader por entorno (p.ej /pro/nombrefich). &lt;br /&gt;
::* Subir un primer &amp;quot;nombrefich&amp;quot;&lt;br /&gt;
::::* tipo texto (versión 0)&lt;br /&gt;
::::* el mismo para todos los entornos&lt;br /&gt;
::::* se sube por medios convencionales (p. ej SCP)&lt;br /&gt;
* Asegurar que los stores queden totalmente creados (estado &amp;quot;UPSERTED&amp;quot;)&lt;br /&gt;
* Crear '''tres agentes''' (pro/pre/pru)&lt;br /&gt;
::* Asociar a stores (pro/pre/pru)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''En flow'''&lt;br /&gt;
* Crear '''un agente'''&lt;br /&gt;
::* Vincularlo a los tres agentes de orquestador (pro/pre/pru)&lt;br /&gt;
* Crear '''un store'''&lt;br /&gt;
::* Vinculado a los tres stores de orquestador (pro/pre/pru)&lt;br /&gt;
* Crear '''un loader'''&lt;br /&gt;
::* Loader vinculado a agente de vflow&lt;br /&gt;
::* C_NAME loader coincidirá con los de orquestador (p.ej &amp;quot;nombrefich&amp;quot;)&lt;br /&gt;
::* Subir nueva versión v1 (&amp;quot;.txt&amp;quot;, &amp;quot;.pdf&amp;quot;, &amp;quot;.doc&amp;quot;, &amp;quot;.docx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Diagnósticos ==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/vFlowProxy/vFlowProxy.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En nodo vFlowProxy&lt;br /&gt;
::para cualquier canal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
nc localhost 1131&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En nodo vFlowProxy&lt;br /&gt;
::Monitoriza estado del proceso vflowProxy&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
  &amp;quot;proceso&amp;quot;: {&lt;br /&gt;
    &amp;quot;nombre&amp;quot;: &amp;quot;vFlowProxy&amp;quot;,&lt;br /&gt;
    &amp;quot;version&amp;quot;: &amp;quot;00.00.01&amp;quot;,&lt;br /&gt;
    &amp;quot;inicio_ts&amp;quot;: 1771315153,&lt;br /&gt;
    &amp;quot;inicio_cad&amp;quot;: &amp;quot;20260217 085913&amp;quot;,&lt;br /&gt;
    &amp;quot;log_alarmas_val&amp;quot;: 8,&lt;br /&gt;
    &amp;quot;log_alarma_ultimo_ts&amp;quot;: 1771970401,&lt;br /&gt;
    &amp;quot;log_alarma_ultimo_ts_cad&amp;quot;: &amp;quot;20260224 230001&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;diagnostico&amp;quot;: {&lt;br /&gt;
    &amp;quot;gmp&amp;quot;: {&lt;br /&gt;
      &amp;quot;msj_val&amp;quot;: 1022,&lt;br /&gt;
      &amp;quot;msj_max&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;buf_val&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;buf_max&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;tarea_val&amp;quot;: 7,&lt;br /&gt;
      &amp;quot;tarea_max&amp;quot;: 15&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;tiempo&amp;quot;: {&lt;br /&gt;
      &amp;quot;uptime&amp;quot;: 716665,&lt;br /&gt;
      &amp;quot;uptime_dias&amp;quot;: 8,&lt;br /&gt;
      &amp;quot;uptime_horas&amp;quot;: 7,&lt;br /&gt;
      &amp;quot;uptime_minutos&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;uptime_segundos&amp;quot;: 25&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;wws&amp;quot;: {&lt;br /&gt;
      &amp;quot;conexiones_val&amp;quot;: 0,&lt;br /&gt;
      &amp;quot;conexiones_max_periodo&amp;quot;: 0,&lt;br /&gt;
      &amp;quot;hilos_val&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;hilos_max&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;wsi_cad&amp;quot;: &amp;quot;sesiones=0/200&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;alarmas_nivel_max&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;alarmas&amp;quot;: []&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es relevante la monitorización de sesiones  &amp;lt;code&amp;gt;&amp;quot;wsi_cad&amp;quot;: &amp;quot;sesiones=0/200&amp;quot;&amp;lt;/code&amp;gt; (usadas/máximas)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
asterisk -rv | grep callsquare_name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::en nodo Omnisuite&lt;br /&gt;
::para canal voz&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/xcally/agi-combined.yyyy-mm-dd.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::en nodo Omnisuite&lt;br /&gt;
::para canal voz&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/xcally/routing-combined.yyyy-mm-dd.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::para canal voz&lt;br /&gt;
&lt;br /&gt;
== Para probar desde vFlow ==&lt;br /&gt;
&lt;br /&gt;
En /home/sat/vFlowProxy hay scripts de prueba (se configuran en el vars.sh); para usar los scripts de prueba tendremos que tener también &amp;quot;.ini&amp;quot; en vFlow&lt;br /&gt;
&lt;br /&gt;
Es útil comenzar con&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/home/sat/vFlowProxy/vFlowGetInfo.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
que sin parámetros adicionales confirma el correcto estado de vFlowProxy&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
  &amp;quot;app&amp;quot;: &amp;quot;vFlowProxy&amp;quot;,&lt;br /&gt;
  &amp;quot;version&amp;quot;: &amp;quot;00.00.01&amp;quot;,&lt;br /&gt;
  &amp;quot;sessions_opened&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;sessions_limit&amp;quot;: 200,&lt;br /&gt;
  &amp;quot;sessions_sleep_timeout_s&amp;quot;: 3600,&lt;br /&gt;
  &amp;quot;alarms&amp;quot;: 8&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Integración de vFlow desde Omnisuite ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Descripción general ===&lt;br /&gt;
En Omnisuite, la integración con vFlow, se realiza con el programa vFlowOmnisuite, que podrá ser invocado como ejecutable (más rápido, para debian), o como Python (más universal)&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
    /usr/local/sbin/vFlowOmnisuite (OPCIÓN PREFERENTE)&lt;br /&gt;
    /usr/local/sbin/vFlowOmnisuite.py (LEGACY)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Asociado al programa existen los siguientes ficheros de configuración (.ini):&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; de plataforma''' Omnisuite en vFlow --&amp;gt; Solo contiene uuid de la plataforma; se entrega un &amp;quot;.ini&amp;quot; a modo de ejemplo en &amp;lt;code&amp;gt;/etc/MDtel/vFlow/platform.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE PLATAFORMA&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
   [uuids]&lt;br /&gt;
   platform=1d111530-e22d-11f0-b0f2-5254008bef96&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; por agente''' en vFlow --&amp;gt; Solo contiene uuid del agente según su identificación en vFlow ('''NO''' en un orquestador, por ejemplo flowise); se entrega un &amp;quot;.ini&amp;quot; asociado a un agente &amp;quot;loop&amp;quot; existente en Flowise &amp;lt;code&amp;gt;/etc/MDtel/vFlow/agent_loop_01.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE AGENTE&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
   [uuids]&lt;br /&gt;
   agent=1a3a1020-ea1d-11f0-b4a5-5254008bef96&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; por servicio''' --&amp;gt; Configuración de cada servicio en Omnisuite; se entrega un &amp;quot;.ini&amp;quot; a modo de ejemplo en &amp;lt;code&amp;gt;/etc/MDtel/vFlow/service.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
En cada fichero de servicio configuraremos&lt;br /&gt;
::* Donde está Vflow&lt;br /&gt;
::* Agente&lt;br /&gt;
::* Plataforma&lt;br /&gt;
::* timeout_s --&amp;gt; Importante, es afectado por el LLM&lt;br /&gt;
::* channel_text_type --&amp;gt; IMPORTANTE si el servicio es de texto que esté bien (vacio solo si el servicio es de texto, NO COMENTARLO)&lt;br /&gt;
::* environment --&amp;gt; production, staging, test&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE SERVICIO&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
  [arch_uuids]&lt;br /&gt;
  agent=/etc/MDtel/vFlow/agent_loop_01.ini&lt;br /&gt;
  platform=/etc/MDtel/vFlow/platform.ini&lt;br /&gt;
&lt;br /&gt;
  [vflow]&lt;br /&gt;
  host_port=172.25.129.242:7900&lt;br /&gt;
  timeout_s=20&lt;br /&gt;
  # channel_type=[voice|chat|email]&lt;br /&gt;
  channel_type=chat&lt;br /&gt;
  # environment=[production|staging|test]&lt;br /&gt;
  environment=production&lt;br /&gt;
  language=es&lt;br /&gt;
&lt;br /&gt;
  [omnisuite]&lt;br /&gt;
  # channel_text_type=[chat|mail|sms|whatsup]&lt;br /&gt;
  channel_text_type=chat&lt;br /&gt;
  service_id=vflow_service_id&lt;br /&gt;
  service_name=vflow_service_name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La imagen siguiente muestra el esquema de relación entre orquestador/plataforma/agente/servicio en la plataforma y en vFlow&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Relaciones vFlow plat orq ag serv.png|800px|miniaturadeimagen|centro|Relación orquestador-plataforma-agente-servicio]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Invocación ===&lt;br /&gt;
==== Generales ====&lt;br /&gt;
&lt;br /&gt;
Ver configuración&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; configPrint &amp;lt;omnisuite_UniqueId&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
Configuration:&lt;br /&gt;
  agent_arch_uuid=/etc/MDtel/vFlow/agent_fse_rapido.ini&lt;br /&gt;
  agent_uuid=3487af28-1d14-11f1-803c-525400ef204c&lt;br /&gt;
  platform_arch_uuid=/etc/MDtel/vFlow/platform_labomsui.ini&lt;br /&gt;
  platform_uuid=9a54ea74-f050-11f0-bdf1-5254008bef96&lt;br /&gt;
&lt;br /&gt;
  vflow_host_port=labvflow.mdnova.local&lt;br /&gt;
  vflow_timeout_s=50&lt;br /&gt;
  vflow_environment=production&lt;br /&gt;
  vflow_channel_type=voice&lt;br /&gt;
  vflow_language=es&lt;br /&gt;
&lt;br /&gt;
  omnisuite_channel_text_type=chat&lt;br /&gt;
  omnisuite_service_id=287&lt;br /&gt;
  omnisuite_service_name=desarrollo&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;errorCad&amp;quot;: &amp;quot;OK&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ver versión&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Para canales de texto ====&lt;br /&gt;
&lt;br /&gt;
Para canales de texto en Omnisuite existe un único Comando de invocación &amp;quot;omnisuiteText&amp;quot;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; omnisuiteText &amp;lt;omnisuite_id&amp;gt; &amp;lt;omnisuite_websiteId&amp;gt; &amp;lt;omnisuite_createdAt&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt; &amp;lt;question&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros ( Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Obligatoriedad !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;config_arch&amp;gt;` || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_id&amp;gt;` || OBLIGATORIO || Identificativo de la interacción en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_websiteId&amp;gt;` || OBLIGATORIO || Identificativo del servicio en Omnisuite (ej. website id en chat)&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_createdAt&amp;gt;` || OBLIGATORIO || Creación de la interacción&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_id&amp;gt;` || OPCIONAL || Id de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_phone_number&amp;gt;` || OPCIONAL || Telf de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_email&amp;gt;` || OPCIONAL || Email de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;question&amp;gt;` || OBLIGATORIO || Texto a enviar al orquestado (p. ej. Flowise)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
 &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
 &amp;quot;session&amp;quot;: &amp;quot;e926548d-fdcf-11f0-a793-525400ef204c&amp;quot;,&lt;br /&gt;
 &amp;quot;language&amp;quot;: &amp;quot;es&amp;quot;,&lt;br /&gt;
 &amp;quot;response&amp;quot;: &amp;quot;HOLA&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Para canales de voz ====&lt;br /&gt;
Para  canales de voz, existen comandos para &amp;quot;abrir sesión&amp;quot;, &amp;quot;enviar texto&amp;quot; y &amp;quot;cerrar sesión&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Abrir sesión =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; sessionOpen &amp;lt;omnisuite_UniqueId&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros (Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Requisito !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;omnisuite_UniqueId&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Unique_ID de asterisk de la llamada en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_id&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Id de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_phone_number&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Telf de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_email&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Email de cliente en Omnisuite&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
    &amp;quot;session&amp;quot;: &amp;quot;ec73df29-f08a-11f0-a8ec-525400ef204c&amp;quot;,&lt;br /&gt;
    &amp;quot;platform_id&amp;quot;: &amp;quot;146&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''El value correspondiente al key &amp;quot;session&amp;quot; deberá ser guardado en una variable para siguientes invocaciones'''&lt;br /&gt;
&lt;br /&gt;
===== Enviar texto =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; textRequest &amp;lt;vflow_session_uuid&amp;gt; &amp;lt;question&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Requisito !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_session_uuid&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Variable &amp;quot;session&amp;quot; almacenada en el &amp;quot;sessionOpen&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;question&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Texto a enviar al orquestado (p. ej. Flowise) (normal, abandoned, other)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
    &amp;quot;session&amp;quot;: &amp;quot;c6f6fad7-f6c1-11f0-a793-525400ef204c&amp;quot;,&lt;br /&gt;
    &amp;quot;language&amp;quot;: &amp;quot;ES&amp;quot;,&lt;br /&gt;
    &amp;quot;response&amp;quot;: &amp;quot;Cristóbal Colón.&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Cerrar sesión=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; sessionClose &amp;lt;vflow_session_uuid&amp;gt; &amp;lt;vflow_cause&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros  (Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Estado !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_session_uuid&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Variable &amp;quot;session&amp;quot; almacenada en el &amp;quot;sessionOpen&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_cause&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || (normal, abandoned, expired, other)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 104,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;Wrong session&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ejemplos para omnisuite ===&lt;br /&gt;
&lt;br /&gt;
'''Ejemplo de chat'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_chat.ini&amp;quot; &amp;quot;omnisuiteText&amp;quot; &amp;quot;{{interaction.id}}&amp;quot; &amp;quot;{{account.id}}&amp;quot; &amp;quot;{{interaction.createdAt}}&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;{{message.body}}&amp;quot; | jq -r '.response'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Ejemplo de voz'''&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen cally square.jpg|1024px|none|miniatura|Ejemplo de flujo de Cally Square]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_voice.ini&amp;quot; &amp;quot;sessionOpen&amp;quot; &amp;quot;{UNIQUEID}&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; |  jq -r '.session' &amp;lt;/pre&amp;gt;&lt;br /&gt;
::&amp;lt;small&amp;gt;salida del comando almacenado en variable &amp;quot;vflow_sessionopen_response&amp;quot; para su posterior uso en cally square&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen sessionopen.jpg|550px|center|miniatura|Abrir sesión en vFlow]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_desa_voz.ini&amp;quot; &amp;quot;textRequest&amp;quot; &amp;quot;{vflow_sessionopen_response}&amp;quot; &amp;quot;{OPENAI_WHISPER_TRANSCRIPT}&amp;quot; | jq -r '.response'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::&amp;lt;small&amp;gt;la voz se ha transcrito con OpenAI, por eso se usa como parámetro {OPENAI_WHISPER_TRANSCRIPT})&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen textrequest.jpg|550px|center|miniatura|Enviar texto en vFlow]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt; &lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_desa_voz.ini&amp;quot; &amp;quot;sessionClose&amp;quot; &amp;quot;{{vflow_sessionopen_response}}&amp;quot; &amp;quot;normal&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen sessionclose.jpg|900px|center|miniatura|Cerrar sesión en vFlow]]&lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:VIVAit Call]]&lt;br /&gt;
[[Category:Omnisuite]]&lt;br /&gt;
[[Category:IA]]&lt;/div&gt;</summary>
		<author><name>Alfredo.rodriguez</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_de_vFlow&amp;diff=17192</id>
		<title>Manual de operación de vFlow</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_de_vFlow&amp;diff=17192"/>
		<updated>2026-03-24T11:15:55Z</updated>

		<summary type="html">&lt;p&gt;Alfredo.rodriguez: /* Ejemplos para omnisuite */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Descripción general vFlow ==&lt;br /&gt;
&lt;br /&gt;
vFlow es un módulo de conexión a sistemas de inteligencia artifical para sistemas de comunicaciones unificadas, ya sean sistemas corporativos o contact center&lt;br /&gt;
Gracias a vFlow, las plataformas de UC dispondrán de una solución para comunicarse con sistemas IA utilizando un mismo mecanismo independientemente de la solución de inteligencia artificial que se utilice&lt;br /&gt;
&lt;br /&gt;
Para proporcionar el servicio de manera completa, vFlow (en concreto el orquestador) se conectará a sistemas de inteligencia artificial (LLM) que permitirán desarrollar los agentes definidos en los orquestadores&lt;br /&gt;
&lt;br /&gt;
'''Conceptos:'''&lt;br /&gt;
* Plataforma&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Plataforma de comunicaciones unificadas; por ejemplo Omnisuite o VIVAit Call&lt;br /&gt;
* Orquestador&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Plataforma agéntica de IA (por ejemplo Flowise)&lt;br /&gt;
* vFlowProxy&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Módulo VIVAit que conecta multiples plataformas con múltiples orquestadores&lt;br /&gt;
* LLM&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Modelo de lenguaje natural que usará un orquestadores&lt;br /&gt;
* Agente&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Cada uno de los flujos creados en vFlow; corresponde a un par plataforma/agentflow de orquestador&lt;br /&gt;
* Servicio&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Cada elemento de negocio en la plataforma de CU (por ejemplo VDN)&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Arquitectura Vflow - v2.jpg|1000px|center|Arquitecura de vFlow]]&lt;br /&gt;
&lt;br /&gt;
Los '''módulos principales''' de vFlow son:&lt;br /&gt;
* vFlowProxy: Recibe las conexiones de los sistemas de comunicaciones unificadas, y conecta con los orquestadores de Inteligencia Artificial de manera segura y adaptada al tipo de servicio; el acceso a vFlow Proxy desde las plataformas se realizará mediante:&lt;br /&gt;
* Programa cliente: Se utiliza en el sistema de comunicaciones unificadas (actualmente VIVAit Call y Omnsisuite) para invocar a vFlow&lt;br /&gt;
* API REST: Alternativa al programa cliente, vFlowProxy proporciona una API REST que facilita que cualquier plataforma pueda comunicarse mediante un procedimiento estándar y documentado&lt;br /&gt;
* Portal de administración vFlow: Permite visualizar las interaciones realizadas y configurar el sistema&lt;br /&gt;
* Orquestador de IA: Herramienta de Inteligencia Artificial que permitirá la creación de aplicaciones personalizadas (agentes)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Otros elementos''' relevantes serán:&lt;br /&gt;
* Base de datos vFlow:&lt;br /&gt;
:* Almacena información sobre sesiones y transacciones realizadas&lt;br /&gt;
:* Almacena información de configuración sobre vFlow&lt;br /&gt;
:* Gestiona el RAG de las inteligencias artificiales a usar&lt;br /&gt;
&lt;br /&gt;
== Puesta en marcha de nodo vFlow ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Existe un nodo vFlow en los repositorios habituales proporcionados&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para '''dar de alta nodo vflow en un cliente''' hay que:&lt;br /&gt;
* Configurar IP (por defecto la maquina va configurada por DHCP)&lt;br /&gt;
* Adaptar el firewall, para ello REVISAR el fichero &amp;lt;code&amp;gt;/etc/firewall/vars.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
* Certificados validos en apache&lt;br /&gt;
* REVISAR ficheros &amp;lt;code&amp;gt;/etc/apache2/sites-enabled/flowise.conf&amp;lt;/code&amp;gt; y &amp;lt;code&amp;gt;/etc/apache2/sites-enabled/vFlow.conf&amp;lt;/code&amp;gt; la variable &amp;lt;code&amp;gt;ServerName&amp;lt;/code&amp;gt; (nombre valido de la maquina)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Accesos vFlow''' (se debe cambiar tras instalación):&lt;br /&gt;
* Usuario ssh y de SO por defecto es sat y clave a proporcionar.&lt;br /&gt;
* Para el portal de flowise las credenciales son usuario: vfloadmin@vflow.com clave: A proporcionar&lt;br /&gt;
* Para el portal de vflow las credenciales son usaurio sat y clave a proporcionar.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Accesos BBDD vFlow'''&lt;br /&gt;
* Para acceder a la base de datos desde el workbenck solo desde localhost (o tunel):&lt;br /&gt;
* BBDD Vlfow (admin)  vflowadmin // clave a proporcionar&lt;br /&gt;
* BBDD Vlfow (no_admin)  vflow //  clave a proporcionar&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Portal orquestador Flowise'''&lt;br /&gt;
&lt;br /&gt;
ubicado en https://host.cliente.xx:4567&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #fef6e7; border: 1px solid #fbd68a; padding: 1em; border-radius: 4px;width: fit-content; margin-left: 50px&amp;quot;&amp;gt;&lt;br /&gt;
'''⚠️ ATENCION !!'''&lt;br /&gt;
'''Los cambios en tablas de configuración de BBDD de vFlow (orquestadores, plataformas, agentes) requieren reinicio del servicio vFlowProxy'''&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', 'Monaco', 'Courier New', monospace;&amp;quot;&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service status&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service stop&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service start&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El fichero de configuración del demonio &amp;lt;cvode&amp;gt;vFlowProxy&amp;lt;/code&amp;gt; se encuentra en &amp;lt;code&amp;gt;/etc/MDtel/vFlowProxy.conf&amp;lt;/code&amp;gt;, si bien este fichero de configuración no se modificará habitualmente (los parámetros generales de configuración de vFlowProxy se encuentran en la BBDD de vFlow)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Relevante para poder '''poner en marcha un loader''':&lt;br /&gt;
* Subir el fichero inicial previamente a la carpeta destino según entorno (p. ej &amp;lt;code&amp;gt;/var/www/html/storages/production&amp;lt;/code&amp;gt;&lt;br /&gt;
* Tipo de loader --&amp;gt; API&lt;br /&gt;
* Método --&amp;gt; GET&lt;br /&gt;
* URL --&amp;gt; (ejemplo: http://172.25.129.242/storages/test/fichero-pru.txt)&lt;br /&gt;
::* Existirán URL &amp;quot;production&amp;quot;, &amp;quot;staging&amp;quot; y &amp;quot;test&amp;quot;&lt;br /&gt;
* Text Splitter: Recursive&lt;br /&gt;
* Qdrant --&amp;gt; localhost:6333&lt;br /&gt;
* Record Manager --&amp;gt; SQLite&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Se adjunta imagen a modo de ejemplo&lt;br /&gt;
[[Archivo:Alta loader vflow.png|800px|miniaturadeimagen|no|alta loader vFlow|link=]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gestión en vFlow ==&lt;br /&gt;
vFlow prevé la existencia de tres entornos que permita hacer una gestión segura de agentes y RAG:&lt;br /&gt;
&lt;br /&gt;
* Producción&lt;br /&gt;
* Preproducción&lt;br /&gt;
* Pruebas&lt;br /&gt;
&lt;br /&gt;
Para cada agente o store de RAG se podrá desplegar un entorno (producción), dos o los tres entornos&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #f0fff4; border: 3px solid #c6f6d5; padding: 1em; border-radius: 4px;width: fit-content; margin-left: 0px&amp;quot;&amp;gt;&lt;br /&gt;
✅ '''Recomendación'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En la mayoría de los casos con disponer de entorno de producción y preproducción tanto para agente como para RAG será suficiente&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Para realizar una gestión completa en vFlow (suponiendo tres entornos y gestión de agentes y RAG), deberemos tener&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Archivo:Gestión RAG.png|1000px|miniaturadeimagen|centro|Gestión RAG en vFlow|link=]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''En orquestador'''&lt;br /&gt;
* Crear '''tres stores''' (pro/pre/pru); en cada store:&lt;br /&gt;
::* En total '''tres loaders'''. Crear un loader por entorno (p.ej /pro/nombrefich). &lt;br /&gt;
::* Subir un primer &amp;quot;nombrefich&amp;quot;&lt;br /&gt;
::::* tipo texto (versión 0)&lt;br /&gt;
::::* el mismo para todos los entornos&lt;br /&gt;
::::* se sube por medios convencionales (p. ej SCP)&lt;br /&gt;
* Asegurar que los stores queden totalmente creados (estado &amp;quot;UPSERTED&amp;quot;)&lt;br /&gt;
* Crear '''tres agentes''' (pro/pre/pru)&lt;br /&gt;
::* Asociar a stores (pro/pre/pru)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''En flow'''&lt;br /&gt;
* Crear '''un agente'''&lt;br /&gt;
::* Vincularlo a los tres agentes de orquestador (pro/pre/pru)&lt;br /&gt;
* Crear '''un store'''&lt;br /&gt;
::* Vinculado a los tres stores de orquestador (pro/pre/pru)&lt;br /&gt;
* Crear '''un loader'''&lt;br /&gt;
::* Loader vinculado a agente de vflow&lt;br /&gt;
::* C_NAME loader coincidirá con los de orquestador (p.ej &amp;quot;nombrefich&amp;quot;)&lt;br /&gt;
::* Subir nueva versión v1 (&amp;quot;.txt&amp;quot;, &amp;quot;.pdf&amp;quot;, &amp;quot;.doc&amp;quot;, &amp;quot;.docx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Diagnósticos ==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/vFlowProxy/vFlowProxy.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En nodo vFlowProxy&lt;br /&gt;
::para cualquier canal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
nc localhost 1131&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En nodo vFlowProxy&lt;br /&gt;
::Monitoriza estado del proceso vflowProxy&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
  &amp;quot;proceso&amp;quot;: {&lt;br /&gt;
    &amp;quot;nombre&amp;quot;: &amp;quot;vFlowProxy&amp;quot;,&lt;br /&gt;
    &amp;quot;version&amp;quot;: &amp;quot;00.00.01&amp;quot;,&lt;br /&gt;
    &amp;quot;inicio_ts&amp;quot;: 1771315153,&lt;br /&gt;
    &amp;quot;inicio_cad&amp;quot;: &amp;quot;20260217 085913&amp;quot;,&lt;br /&gt;
    &amp;quot;log_alarmas_val&amp;quot;: 8,&lt;br /&gt;
    &amp;quot;log_alarma_ultimo_ts&amp;quot;: 1771970401,&lt;br /&gt;
    &amp;quot;log_alarma_ultimo_ts_cad&amp;quot;: &amp;quot;20260224 230001&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;diagnostico&amp;quot;: {&lt;br /&gt;
    &amp;quot;gmp&amp;quot;: {&lt;br /&gt;
      &amp;quot;msj_val&amp;quot;: 1022,&lt;br /&gt;
      &amp;quot;msj_max&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;buf_val&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;buf_max&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;tarea_val&amp;quot;: 7,&lt;br /&gt;
      &amp;quot;tarea_max&amp;quot;: 15&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;tiempo&amp;quot;: {&lt;br /&gt;
      &amp;quot;uptime&amp;quot;: 716665,&lt;br /&gt;
      &amp;quot;uptime_dias&amp;quot;: 8,&lt;br /&gt;
      &amp;quot;uptime_horas&amp;quot;: 7,&lt;br /&gt;
      &amp;quot;uptime_minutos&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;uptime_segundos&amp;quot;: 25&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;wws&amp;quot;: {&lt;br /&gt;
      &amp;quot;conexiones_val&amp;quot;: 0,&lt;br /&gt;
      &amp;quot;conexiones_max_periodo&amp;quot;: 0,&lt;br /&gt;
      &amp;quot;hilos_val&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;hilos_max&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;wsi_cad&amp;quot;: &amp;quot;sesiones=0/200&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;alarmas_nivel_max&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;alarmas&amp;quot;: []&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es relevante la monitorización de sesiones  &amp;lt;code&amp;gt;&amp;quot;wsi_cad&amp;quot;: &amp;quot;sesiones=0/200&amp;quot;&amp;lt;/code&amp;gt; (usadas/máximas)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
asterisk -rv | grep callsquare_name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::en nodo Omnisuite&lt;br /&gt;
::para canal voz&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/xcally/agi-combined.yyyy-mm-dd.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::en nodo Omnisuite&lt;br /&gt;
::para canal voz&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/xcally/routing-combined.yyyy-mm-dd.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::para canal voz&lt;br /&gt;
&lt;br /&gt;
== Para probar desde vFlow ==&lt;br /&gt;
&lt;br /&gt;
En /home/sat/vFlowProxy hay scripts de prueba (se configuran en el vars.sh); para usar los scripts de prueba tendremos que tener también &amp;quot;.ini&amp;quot; en vFlow&lt;br /&gt;
&lt;br /&gt;
Es útil comenzar con&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/home/sat/vFlowProxy/vFlowGetInfo.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
que sin parámetros adicionales confirma el correcto estado de vFlowProxy&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
  &amp;quot;app&amp;quot;: &amp;quot;vFlowProxy&amp;quot;,&lt;br /&gt;
  &amp;quot;version&amp;quot;: &amp;quot;00.00.01&amp;quot;,&lt;br /&gt;
  &amp;quot;sessions_opened&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;sessions_limit&amp;quot;: 200,&lt;br /&gt;
  &amp;quot;sessions_sleep_timeout_s&amp;quot;: 3600,&lt;br /&gt;
  &amp;quot;alarms&amp;quot;: 8&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Integración de vFlow desde Omnisuite ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Descripción general ===&lt;br /&gt;
En Omnisuite, la integración con vFlow, se realiza con el programa vFlowOmnisuite, que podrá ser invocado como ejecutable (más rápido, para debian), o como Python (más universal)&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
    /usr/local/sbin/vFlowOmnisuite (OPCIÓN PREFERENTE)&lt;br /&gt;
    /usr/local/sbin/vFlowOmnisuite.py (LEGACY)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Asociado al programa existen los siguientes ficheros de configuración (.ini):&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; de plataforma''' Omnisuite en vFlow --&amp;gt; Solo contiene uuid de la plataforma; se entrega un &amp;quot;.ini&amp;quot; a modo de ejemplo en &amp;lt;code&amp;gt;/etc/MDtel/vFlow/platform.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE PLATAFORMA&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
   [uuids]&lt;br /&gt;
   platform=1d111530-e22d-11f0-b0f2-5254008bef96&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; por agente''' en vFlow --&amp;gt; Solo contiene uuid del agente según su identificación en vFlow ('''NO''' en un orquestador, por ejemplo flowise); se entrega un &amp;quot;.ini&amp;quot; asociado a un agente &amp;quot;loop&amp;quot; existente en Flowise &amp;lt;code&amp;gt;/etc/MDtel/vFlow/agent_loop_01.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE AGENTE&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
   [uuids]&lt;br /&gt;
   agent=1a3a1020-ea1d-11f0-b4a5-5254008bef96&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; por servicio''' --&amp;gt; Configuración de cada servicio en Omnisuite; se entrega un &amp;quot;.ini&amp;quot; a modo de ejemplo en &amp;lt;code&amp;gt;/etc/MDtel/vFlow/service.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
En cada fichero de servicio configuraremos&lt;br /&gt;
::* Donde está Vflow&lt;br /&gt;
::* Agente&lt;br /&gt;
::* Plataforma&lt;br /&gt;
::* timeout_s --&amp;gt; Importante, es afectado por el LLM&lt;br /&gt;
::* channel_text_type --&amp;gt; IMPORTANTE si el servicio es de texto que esté bien (vacio solo si el servicio es de texto, NO COMENTARLO)&lt;br /&gt;
::* environment --&amp;gt; production, staging, test&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE SERVICIO&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
  [arch_uuids]&lt;br /&gt;
  agent=/etc/MDtel/vFlow/agent_loop_01.ini&lt;br /&gt;
  platform=/etc/MDtel/vFlow/platform.ini&lt;br /&gt;
&lt;br /&gt;
  [vflow]&lt;br /&gt;
  host_port=172.25.129.242:7900&lt;br /&gt;
  timeout_s=20&lt;br /&gt;
  # channel_type=[voice|chat|email]&lt;br /&gt;
  channel_type=chat&lt;br /&gt;
  # environment=[production|staging|test]&lt;br /&gt;
  environment=production&lt;br /&gt;
  language=es&lt;br /&gt;
&lt;br /&gt;
  [omnisuite]&lt;br /&gt;
  # channel_text_type=[chat|mail|sms|whatsup]&lt;br /&gt;
  channel_text_type=chat&lt;br /&gt;
  service_id=vflow_service_id&lt;br /&gt;
  service_name=vflow_service_name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La imagen siguiente muestra el esquema de relación entre orquestador/plataforma/agente/servicio en la plataforma y en vFlow&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Relaciones vFlow plat orq ag serv.png|800px|miniaturadeimagen|centro|Relación orquestador-plataforma-agente-servicio]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Invocación ===&lt;br /&gt;
=== Generales ===&lt;br /&gt;
&lt;br /&gt;
Ver configuración&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; configPrint &amp;lt;omnisuite_UniqueId&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
Configuration:&lt;br /&gt;
  agent_arch_uuid=/etc/MDtel/vFlow/agent_fse_rapido.ini&lt;br /&gt;
  agent_uuid=3487af28-1d14-11f1-803c-525400ef204c&lt;br /&gt;
  platform_arch_uuid=/etc/MDtel/vFlow/platform_labomsui.ini&lt;br /&gt;
  platform_uuid=9a54ea74-f050-11f0-bdf1-5254008bef96&lt;br /&gt;
&lt;br /&gt;
  vflow_host_port=labvflow.mdnova.local&lt;br /&gt;
  vflow_timeout_s=50&lt;br /&gt;
  vflow_environment=production&lt;br /&gt;
  vflow_channel_type=voice&lt;br /&gt;
  vflow_language=es&lt;br /&gt;
&lt;br /&gt;
  omnisuite_channel_text_type=chat&lt;br /&gt;
  omnisuite_service_id=287&lt;br /&gt;
  omnisuite_service_name=desarrollo&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;errorCad&amp;quot;: &amp;quot;OK&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ver versión&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Para canales de texto ====&lt;br /&gt;
&lt;br /&gt;
Para canales de texto en Omnisuite existe un único Comando de invocación &amp;quot;omnisuiteText&amp;quot;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; omnisuiteText &amp;lt;omnisuite_id&amp;gt; &amp;lt;omnisuite_websiteId&amp;gt; &amp;lt;omnisuite_createdAt&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt; &amp;lt;question&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros ( Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Obligatoriedad !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;config_arch&amp;gt;` || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_id&amp;gt;` || OBLIGATORIO || Identificativo de la interacción en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_websiteId&amp;gt;` || OBLIGATORIO || Identificativo del servicio en Omnisuite (ej. website id en chat)&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_createdAt&amp;gt;` || OBLIGATORIO || Creación de la interacción&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_id&amp;gt;` || OPCIONAL || Id de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_phone_number&amp;gt;` || OPCIONAL || Telf de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_email&amp;gt;` || OPCIONAL || Email de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;question&amp;gt;` || OBLIGATORIO || Texto a enviar al orquestado (p. ej. Flowise)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
 &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
 &amp;quot;session&amp;quot;: &amp;quot;e926548d-fdcf-11f0-a793-525400ef204c&amp;quot;,&lt;br /&gt;
 &amp;quot;language&amp;quot;: &amp;quot;es&amp;quot;,&lt;br /&gt;
 &amp;quot;response&amp;quot;: &amp;quot;HOLA&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Para canales de voz ====&lt;br /&gt;
Para  canales de voz, existen comandos para &amp;quot;abrir sesión&amp;quot;, &amp;quot;enviar texto&amp;quot; y &amp;quot;cerrar sesión&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Abrir sesión =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; sessionOpen &amp;lt;omnisuite_UniqueId&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros (Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Requisito !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;omnisuite_UniqueId&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Unique_ID de asterisk de la llamada en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_id&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Id de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_phone_number&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Telf de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_email&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Email de cliente en Omnisuite&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
    &amp;quot;session&amp;quot;: &amp;quot;ec73df29-f08a-11f0-a8ec-525400ef204c&amp;quot;,&lt;br /&gt;
    &amp;quot;platform_id&amp;quot;: &amp;quot;146&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''El value correspondiente al key &amp;quot;session&amp;quot; deberá ser guardado en una variable para siguientes invocaciones'''&lt;br /&gt;
&lt;br /&gt;
===== Enviar texto =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; textRequest &amp;lt;vflow_session_uuid&amp;gt; &amp;lt;question&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Requisito !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_session_uuid&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Variable &amp;quot;session&amp;quot; almacenada en el &amp;quot;sessionOpen&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;question&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Texto a enviar al orquestado (p. ej. Flowise) (normal, abandoned, other)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
    &amp;quot;session&amp;quot;: &amp;quot;c6f6fad7-f6c1-11f0-a793-525400ef204c&amp;quot;,&lt;br /&gt;
    &amp;quot;language&amp;quot;: &amp;quot;ES&amp;quot;,&lt;br /&gt;
    &amp;quot;response&amp;quot;: &amp;quot;Cristóbal Colón.&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Cerrar sesión=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; sessionClose &amp;lt;vflow_session_uuid&amp;gt; &amp;lt;vflow_cause&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros  (Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Estado !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_session_uuid&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Variable &amp;quot;session&amp;quot; almacenada en el &amp;quot;sessionOpen&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_cause&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || (normal, abandoned, expired, other)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 104,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;Wrong session&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ejemplos para omnisuite ===&lt;br /&gt;
&lt;br /&gt;
'''Ejemplo de chat'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_chat.ini&amp;quot; &amp;quot;omnisuiteText&amp;quot; &amp;quot;{{interaction.id}}&amp;quot; &amp;quot;{{account.id}}&amp;quot; &amp;quot;{{interaction.createdAt}}&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;{{message.body}}&amp;quot; | jq -r '.response'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Ejemplo de voz'''&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen cally square.jpg|1024px|none|miniatura|Ejemplo de flujo de Cally Square]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_voice.ini&amp;quot; &amp;quot;sessionOpen&amp;quot; &amp;quot;{UNIQUEID}&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; |  jq -r '.session' &amp;lt;/pre&amp;gt;&lt;br /&gt;
::&amp;lt;small&amp;gt;salida del comando almacenado en variable &amp;quot;vflow_sessionopen_response&amp;quot; para su posterior uso en cally square&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen sessionopen.jpg|550px|center|miniatura|Abrir sesión en vFlow]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_desa_voz.ini&amp;quot; &amp;quot;textRequest&amp;quot; &amp;quot;{vflow_sessionopen_response}&amp;quot; &amp;quot;{OPENAI_WHISPER_TRANSCRIPT}&amp;quot; | jq -r '.response'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::&amp;lt;small&amp;gt;la voz se ha transcrito con OpenAI, por eso se usa como parámetro {OPENAI_WHISPER_TRANSCRIPT})&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen textrequest.jpg|550px|center|miniatura|Enviar texto en vFlow]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt; &lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_desa_voz.ini&amp;quot; &amp;quot;sessionClose&amp;quot; &amp;quot;{{vflow_sessionopen_response}}&amp;quot; &amp;quot;normal&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen sessionclose.jpg|900px|center|miniatura|Cerrar sesión en vFlow]]&lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:VIVAit Call]]&lt;br /&gt;
[[Category:Omnisuite]]&lt;br /&gt;
[[Category:IA]]&lt;/div&gt;</summary>
		<author><name>Alfredo.rodriguez</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_de_vFlow&amp;diff=17190</id>
		<title>Manual de operación de vFlow</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_de_vFlow&amp;diff=17190"/>
		<updated>2026-03-24T11:15:31Z</updated>

		<summary type="html">&lt;p&gt;Alfredo.rodriguez: /* Enviar texto */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Descripción general vFlow ==&lt;br /&gt;
&lt;br /&gt;
vFlow es un módulo de conexión a sistemas de inteligencia artifical para sistemas de comunicaciones unificadas, ya sean sistemas corporativos o contact center&lt;br /&gt;
Gracias a vFlow, las plataformas de UC dispondrán de una solución para comunicarse con sistemas IA utilizando un mismo mecanismo independientemente de la solución de inteligencia artificial que se utilice&lt;br /&gt;
&lt;br /&gt;
Para proporcionar el servicio de manera completa, vFlow (en concreto el orquestador) se conectará a sistemas de inteligencia artificial (LLM) que permitirán desarrollar los agentes definidos en los orquestadores&lt;br /&gt;
&lt;br /&gt;
'''Conceptos:'''&lt;br /&gt;
* Plataforma&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Plataforma de comunicaciones unificadas; por ejemplo Omnisuite o VIVAit Call&lt;br /&gt;
* Orquestador&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Plataforma agéntica de IA (por ejemplo Flowise)&lt;br /&gt;
* vFlowProxy&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Módulo VIVAit que conecta multiples plataformas con múltiples orquestadores&lt;br /&gt;
* LLM&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Modelo de lenguaje natural que usará un orquestadores&lt;br /&gt;
* Agente&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Cada uno de los flujos creados en vFlow; corresponde a un par plataforma/agentflow de orquestador&lt;br /&gt;
* Servicio&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Cada elemento de negocio en la plataforma de CU (por ejemplo VDN)&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Arquitectura Vflow - v2.jpg|1000px|center|Arquitecura de vFlow]]&lt;br /&gt;
&lt;br /&gt;
Los '''módulos principales''' de vFlow son:&lt;br /&gt;
* vFlowProxy: Recibe las conexiones de los sistemas de comunicaciones unificadas, y conecta con los orquestadores de Inteligencia Artificial de manera segura y adaptada al tipo de servicio; el acceso a vFlow Proxy desde las plataformas se realizará mediante:&lt;br /&gt;
* Programa cliente: Se utiliza en el sistema de comunicaciones unificadas (actualmente VIVAit Call y Omnsisuite) para invocar a vFlow&lt;br /&gt;
* API REST: Alternativa al programa cliente, vFlowProxy proporciona una API REST que facilita que cualquier plataforma pueda comunicarse mediante un procedimiento estándar y documentado&lt;br /&gt;
* Portal de administración vFlow: Permite visualizar las interaciones realizadas y configurar el sistema&lt;br /&gt;
* Orquestador de IA: Herramienta de Inteligencia Artificial que permitirá la creación de aplicaciones personalizadas (agentes)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Otros elementos''' relevantes serán:&lt;br /&gt;
* Base de datos vFlow:&lt;br /&gt;
:* Almacena información sobre sesiones y transacciones realizadas&lt;br /&gt;
:* Almacena información de configuración sobre vFlow&lt;br /&gt;
:* Gestiona el RAG de las inteligencias artificiales a usar&lt;br /&gt;
&lt;br /&gt;
== Puesta en marcha de nodo vFlow ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Existe un nodo vFlow en los repositorios habituales proporcionados&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para '''dar de alta nodo vflow en un cliente''' hay que:&lt;br /&gt;
* Configurar IP (por defecto la maquina va configurada por DHCP)&lt;br /&gt;
* Adaptar el firewall, para ello REVISAR el fichero &amp;lt;code&amp;gt;/etc/firewall/vars.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
* Certificados validos en apache&lt;br /&gt;
* REVISAR ficheros &amp;lt;code&amp;gt;/etc/apache2/sites-enabled/flowise.conf&amp;lt;/code&amp;gt; y &amp;lt;code&amp;gt;/etc/apache2/sites-enabled/vFlow.conf&amp;lt;/code&amp;gt; la variable &amp;lt;code&amp;gt;ServerName&amp;lt;/code&amp;gt; (nombre valido de la maquina)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Accesos vFlow''' (se debe cambiar tras instalación):&lt;br /&gt;
* Usuario ssh y de SO por defecto es sat y clave a proporcionar.&lt;br /&gt;
* Para el portal de flowise las credenciales son usuario: vfloadmin@vflow.com clave: A proporcionar&lt;br /&gt;
* Para el portal de vflow las credenciales son usaurio sat y clave a proporcionar.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Accesos BBDD vFlow'''&lt;br /&gt;
* Para acceder a la base de datos desde el workbenck solo desde localhost (o tunel):&lt;br /&gt;
* BBDD Vlfow (admin)  vflowadmin // clave a proporcionar&lt;br /&gt;
* BBDD Vlfow (no_admin)  vflow //  clave a proporcionar&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Portal orquestador Flowise'''&lt;br /&gt;
&lt;br /&gt;
ubicado en https://host.cliente.xx:4567&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #fef6e7; border: 1px solid #fbd68a; padding: 1em; border-radius: 4px;width: fit-content; margin-left: 50px&amp;quot;&amp;gt;&lt;br /&gt;
'''⚠️ ATENCION !!'''&lt;br /&gt;
'''Los cambios en tablas de configuración de BBDD de vFlow (orquestadores, plataformas, agentes) requieren reinicio del servicio vFlowProxy'''&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', 'Monaco', 'Courier New', monospace;&amp;quot;&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service status&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service stop&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service start&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El fichero de configuración del demonio &amp;lt;cvode&amp;gt;vFlowProxy&amp;lt;/code&amp;gt; se encuentra en &amp;lt;code&amp;gt;/etc/MDtel/vFlowProxy.conf&amp;lt;/code&amp;gt;, si bien este fichero de configuración no se modificará habitualmente (los parámetros generales de configuración de vFlowProxy se encuentran en la BBDD de vFlow)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Relevante para poder '''poner en marcha un loader''':&lt;br /&gt;
* Subir el fichero inicial previamente a la carpeta destino según entorno (p. ej &amp;lt;code&amp;gt;/var/www/html/storages/production&amp;lt;/code&amp;gt;&lt;br /&gt;
* Tipo de loader --&amp;gt; API&lt;br /&gt;
* Método --&amp;gt; GET&lt;br /&gt;
* URL --&amp;gt; (ejemplo: http://172.25.129.242/storages/test/fichero-pru.txt)&lt;br /&gt;
::* Existirán URL &amp;quot;production&amp;quot;, &amp;quot;staging&amp;quot; y &amp;quot;test&amp;quot;&lt;br /&gt;
* Text Splitter: Recursive&lt;br /&gt;
* Qdrant --&amp;gt; localhost:6333&lt;br /&gt;
* Record Manager --&amp;gt; SQLite&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Se adjunta imagen a modo de ejemplo&lt;br /&gt;
[[Archivo:Alta loader vflow.png|800px|miniaturadeimagen|no|alta loader vFlow|link=]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gestión en vFlow ==&lt;br /&gt;
vFlow prevé la existencia de tres entornos que permita hacer una gestión segura de agentes y RAG:&lt;br /&gt;
&lt;br /&gt;
* Producción&lt;br /&gt;
* Preproducción&lt;br /&gt;
* Pruebas&lt;br /&gt;
&lt;br /&gt;
Para cada agente o store de RAG se podrá desplegar un entorno (producción), dos o los tres entornos&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #f0fff4; border: 3px solid #c6f6d5; padding: 1em; border-radius: 4px;width: fit-content; margin-left: 0px&amp;quot;&amp;gt;&lt;br /&gt;
✅ '''Recomendación'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En la mayoría de los casos con disponer de entorno de producción y preproducción tanto para agente como para RAG será suficiente&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Para realizar una gestión completa en vFlow (suponiendo tres entornos y gestión de agentes y RAG), deberemos tener&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Archivo:Gestión RAG.png|1000px|miniaturadeimagen|centro|Gestión RAG en vFlow|link=]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''En orquestador'''&lt;br /&gt;
* Crear '''tres stores''' (pro/pre/pru); en cada store:&lt;br /&gt;
::* En total '''tres loaders'''. Crear un loader por entorno (p.ej /pro/nombrefich). &lt;br /&gt;
::* Subir un primer &amp;quot;nombrefich&amp;quot;&lt;br /&gt;
::::* tipo texto (versión 0)&lt;br /&gt;
::::* el mismo para todos los entornos&lt;br /&gt;
::::* se sube por medios convencionales (p. ej SCP)&lt;br /&gt;
* Asegurar que los stores queden totalmente creados (estado &amp;quot;UPSERTED&amp;quot;)&lt;br /&gt;
* Crear '''tres agentes''' (pro/pre/pru)&lt;br /&gt;
::* Asociar a stores (pro/pre/pru)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''En flow'''&lt;br /&gt;
* Crear '''un agente'''&lt;br /&gt;
::* Vincularlo a los tres agentes de orquestador (pro/pre/pru)&lt;br /&gt;
* Crear '''un store'''&lt;br /&gt;
::* Vinculado a los tres stores de orquestador (pro/pre/pru)&lt;br /&gt;
* Crear '''un loader'''&lt;br /&gt;
::* Loader vinculado a agente de vflow&lt;br /&gt;
::* C_NAME loader coincidirá con los de orquestador (p.ej &amp;quot;nombrefich&amp;quot;)&lt;br /&gt;
::* Subir nueva versión v1 (&amp;quot;.txt&amp;quot;, &amp;quot;.pdf&amp;quot;, &amp;quot;.doc&amp;quot;, &amp;quot;.docx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Diagnósticos ==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/vFlowProxy/vFlowProxy.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En nodo vFlowProxy&lt;br /&gt;
::para cualquier canal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
nc localhost 1131&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En nodo vFlowProxy&lt;br /&gt;
::Monitoriza estado del proceso vflowProxy&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
  &amp;quot;proceso&amp;quot;: {&lt;br /&gt;
    &amp;quot;nombre&amp;quot;: &amp;quot;vFlowProxy&amp;quot;,&lt;br /&gt;
    &amp;quot;version&amp;quot;: &amp;quot;00.00.01&amp;quot;,&lt;br /&gt;
    &amp;quot;inicio_ts&amp;quot;: 1771315153,&lt;br /&gt;
    &amp;quot;inicio_cad&amp;quot;: &amp;quot;20260217 085913&amp;quot;,&lt;br /&gt;
    &amp;quot;log_alarmas_val&amp;quot;: 8,&lt;br /&gt;
    &amp;quot;log_alarma_ultimo_ts&amp;quot;: 1771970401,&lt;br /&gt;
    &amp;quot;log_alarma_ultimo_ts_cad&amp;quot;: &amp;quot;20260224 230001&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;diagnostico&amp;quot;: {&lt;br /&gt;
    &amp;quot;gmp&amp;quot;: {&lt;br /&gt;
      &amp;quot;msj_val&amp;quot;: 1022,&lt;br /&gt;
      &amp;quot;msj_max&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;buf_val&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;buf_max&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;tarea_val&amp;quot;: 7,&lt;br /&gt;
      &amp;quot;tarea_max&amp;quot;: 15&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;tiempo&amp;quot;: {&lt;br /&gt;
      &amp;quot;uptime&amp;quot;: 716665,&lt;br /&gt;
      &amp;quot;uptime_dias&amp;quot;: 8,&lt;br /&gt;
      &amp;quot;uptime_horas&amp;quot;: 7,&lt;br /&gt;
      &amp;quot;uptime_minutos&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;uptime_segundos&amp;quot;: 25&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;wws&amp;quot;: {&lt;br /&gt;
      &amp;quot;conexiones_val&amp;quot;: 0,&lt;br /&gt;
      &amp;quot;conexiones_max_periodo&amp;quot;: 0,&lt;br /&gt;
      &amp;quot;hilos_val&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;hilos_max&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;wsi_cad&amp;quot;: &amp;quot;sesiones=0/200&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;alarmas_nivel_max&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;alarmas&amp;quot;: []&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es relevante la monitorización de sesiones  &amp;lt;code&amp;gt;&amp;quot;wsi_cad&amp;quot;: &amp;quot;sesiones=0/200&amp;quot;&amp;lt;/code&amp;gt; (usadas/máximas)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
asterisk -rv | grep callsquare_name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::en nodo Omnisuite&lt;br /&gt;
::para canal voz&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/xcally/agi-combined.yyyy-mm-dd.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::en nodo Omnisuite&lt;br /&gt;
::para canal voz&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/xcally/routing-combined.yyyy-mm-dd.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::para canal voz&lt;br /&gt;
&lt;br /&gt;
== Para probar desde vFlow ==&lt;br /&gt;
&lt;br /&gt;
En /home/sat/vFlowProxy hay scripts de prueba (se configuran en el vars.sh); para usar los scripts de prueba tendremos que tener también &amp;quot;.ini&amp;quot; en vFlow&lt;br /&gt;
&lt;br /&gt;
Es útil comenzar con&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/home/sat/vFlowProxy/vFlowGetInfo.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
que sin parámetros adicionales confirma el correcto estado de vFlowProxy&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
  &amp;quot;app&amp;quot;: &amp;quot;vFlowProxy&amp;quot;,&lt;br /&gt;
  &amp;quot;version&amp;quot;: &amp;quot;00.00.01&amp;quot;,&lt;br /&gt;
  &amp;quot;sessions_opened&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;sessions_limit&amp;quot;: 200,&lt;br /&gt;
  &amp;quot;sessions_sleep_timeout_s&amp;quot;: 3600,&lt;br /&gt;
  &amp;quot;alarms&amp;quot;: 8&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Integración de vFlow desde Omnisuite ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Descripción general ===&lt;br /&gt;
En Omnisuite, la integración con vFlow, se realiza con el programa vFlowOmnisuite, que podrá ser invocado como ejecutable (más rápido, para debian), o como Python (más universal)&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
    /usr/local/sbin/vFlowOmnisuite (OPCIÓN PREFERENTE)&lt;br /&gt;
    /usr/local/sbin/vFlowOmnisuite.py (LEGACY)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Asociado al programa existen los siguientes ficheros de configuración (.ini):&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; de plataforma''' Omnisuite en vFlow --&amp;gt; Solo contiene uuid de la plataforma; se entrega un &amp;quot;.ini&amp;quot; a modo de ejemplo en &amp;lt;code&amp;gt;/etc/MDtel/vFlow/platform.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE PLATAFORMA&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
   [uuids]&lt;br /&gt;
   platform=1d111530-e22d-11f0-b0f2-5254008bef96&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; por agente''' en vFlow --&amp;gt; Solo contiene uuid del agente según su identificación en vFlow ('''NO''' en un orquestador, por ejemplo flowise); se entrega un &amp;quot;.ini&amp;quot; asociado a un agente &amp;quot;loop&amp;quot; existente en Flowise &amp;lt;code&amp;gt;/etc/MDtel/vFlow/agent_loop_01.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE AGENTE&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
   [uuids]&lt;br /&gt;
   agent=1a3a1020-ea1d-11f0-b4a5-5254008bef96&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; por servicio''' --&amp;gt; Configuración de cada servicio en Omnisuite; se entrega un &amp;quot;.ini&amp;quot; a modo de ejemplo en &amp;lt;code&amp;gt;/etc/MDtel/vFlow/service.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
En cada fichero de servicio configuraremos&lt;br /&gt;
::* Donde está Vflow&lt;br /&gt;
::* Agente&lt;br /&gt;
::* Plataforma&lt;br /&gt;
::* timeout_s --&amp;gt; Importante, es afectado por el LLM&lt;br /&gt;
::* channel_text_type --&amp;gt; IMPORTANTE si el servicio es de texto que esté bien (vacio solo si el servicio es de texto, NO COMENTARLO)&lt;br /&gt;
::* environment --&amp;gt; production, staging, test&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE SERVICIO&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
  [arch_uuids]&lt;br /&gt;
  agent=/etc/MDtel/vFlow/agent_loop_01.ini&lt;br /&gt;
  platform=/etc/MDtel/vFlow/platform.ini&lt;br /&gt;
&lt;br /&gt;
  [vflow]&lt;br /&gt;
  host_port=172.25.129.242:7900&lt;br /&gt;
  timeout_s=20&lt;br /&gt;
  # channel_type=[voice|chat|email]&lt;br /&gt;
  channel_type=chat&lt;br /&gt;
  # environment=[production|staging|test]&lt;br /&gt;
  environment=production&lt;br /&gt;
  language=es&lt;br /&gt;
&lt;br /&gt;
  [omnisuite]&lt;br /&gt;
  # channel_text_type=[chat|mail|sms|whatsup]&lt;br /&gt;
  channel_text_type=chat&lt;br /&gt;
  service_id=vflow_service_id&lt;br /&gt;
  service_name=vflow_service_name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La imagen siguiente muestra el esquema de relación entre orquestador/plataforma/agente/servicio en la plataforma y en vFlow&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Relaciones vFlow plat orq ag serv.png|800px|miniaturadeimagen|centro|Relación orquestador-plataforma-agente-servicio]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Invocación ===&lt;br /&gt;
=== Generales ===&lt;br /&gt;
&lt;br /&gt;
Ver configuración&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; configPrint &amp;lt;omnisuite_UniqueId&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
Configuration:&lt;br /&gt;
  agent_arch_uuid=/etc/MDtel/vFlow/agent_fse_rapido.ini&lt;br /&gt;
  agent_uuid=3487af28-1d14-11f1-803c-525400ef204c&lt;br /&gt;
  platform_arch_uuid=/etc/MDtel/vFlow/platform_labomsui.ini&lt;br /&gt;
  platform_uuid=9a54ea74-f050-11f0-bdf1-5254008bef96&lt;br /&gt;
&lt;br /&gt;
  vflow_host_port=labvflow.mdnova.local&lt;br /&gt;
  vflow_timeout_s=50&lt;br /&gt;
  vflow_environment=production&lt;br /&gt;
  vflow_channel_type=voice&lt;br /&gt;
  vflow_language=es&lt;br /&gt;
&lt;br /&gt;
  omnisuite_channel_text_type=chat&lt;br /&gt;
  omnisuite_service_id=287&lt;br /&gt;
  omnisuite_service_name=desarrollo&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;errorCad&amp;quot;: &amp;quot;OK&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ver versión&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Para canales de texto ====&lt;br /&gt;
&lt;br /&gt;
Para canales de texto en Omnisuite existe un único Comando de invocación &amp;quot;omnisuiteText&amp;quot;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; omnisuiteText &amp;lt;omnisuite_id&amp;gt; &amp;lt;omnisuite_websiteId&amp;gt; &amp;lt;omnisuite_createdAt&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt; &amp;lt;question&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros ( Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Obligatoriedad !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;config_arch&amp;gt;` || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_id&amp;gt;` || OBLIGATORIO || Identificativo de la interacción en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_websiteId&amp;gt;` || OBLIGATORIO || Identificativo del servicio en Omnisuite (ej. website id en chat)&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_createdAt&amp;gt;` || OBLIGATORIO || Creación de la interacción&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_id&amp;gt;` || OPCIONAL || Id de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_phone_number&amp;gt;` || OPCIONAL || Telf de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_email&amp;gt;` || OPCIONAL || Email de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;question&amp;gt;` || OBLIGATORIO || Texto a enviar al orquestado (p. ej. Flowise)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
 &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
 &amp;quot;session&amp;quot;: &amp;quot;e926548d-fdcf-11f0-a793-525400ef204c&amp;quot;,&lt;br /&gt;
 &amp;quot;language&amp;quot;: &amp;quot;es&amp;quot;,&lt;br /&gt;
 &amp;quot;response&amp;quot;: &amp;quot;HOLA&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Para canales de voz ====&lt;br /&gt;
Para  canales de voz, existen comandos para &amp;quot;abrir sesión&amp;quot;, &amp;quot;enviar texto&amp;quot; y &amp;quot;cerrar sesión&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Abrir sesión =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; sessionOpen &amp;lt;omnisuite_UniqueId&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros (Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Requisito !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;omnisuite_UniqueId&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Unique_ID de asterisk de la llamada en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_id&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Id de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_phone_number&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Telf de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_email&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Email de cliente en Omnisuite&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
    &amp;quot;session&amp;quot;: &amp;quot;ec73df29-f08a-11f0-a8ec-525400ef204c&amp;quot;,&lt;br /&gt;
    &amp;quot;platform_id&amp;quot;: &amp;quot;146&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''El value correspondiente al key &amp;quot;session&amp;quot; deberá ser guardado en una variable para siguientes invocaciones'''&lt;br /&gt;
&lt;br /&gt;
===== Enviar texto =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; textRequest &amp;lt;vflow_session_uuid&amp;gt; &amp;lt;question&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Requisito !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_session_uuid&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Variable &amp;quot;session&amp;quot; almacenada en el &amp;quot;sessionOpen&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;question&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Texto a enviar al orquestado (p. ej. Flowise) (normal, abandoned, other)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
    &amp;quot;session&amp;quot;: &amp;quot;c6f6fad7-f6c1-11f0-a793-525400ef204c&amp;quot;,&lt;br /&gt;
    &amp;quot;language&amp;quot;: &amp;quot;ES&amp;quot;,&lt;br /&gt;
    &amp;quot;response&amp;quot;: &amp;quot;Cristóbal Colón.&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Cerrar sesión=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; sessionClose &amp;lt;vflow_session_uuid&amp;gt; &amp;lt;vflow_cause&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros  (Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Estado !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_session_uuid&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Variable &amp;quot;session&amp;quot; almacenada en el &amp;quot;sessionOpen&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_cause&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || (normal, abandoned, expired, other)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 104,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;Wrong session&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ejemplos para omnisuite ===&lt;br /&gt;
&lt;br /&gt;
'''Ejemplo de chat'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 1400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_chat.ini&amp;quot; &amp;quot;omnisuiteText&amp;quot; &amp;quot;{{interaction.id}}&amp;quot; &amp;quot;{{account.id}}&amp;quot; &amp;quot;{{interaction.createdAt}}&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;{{message.body}}&amp;quot; | jq -r '.response'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Ejemplo de voz'''&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen cally square.jpg|1024px|none|miniatura|Ejemplo de flujo de Cally Square]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 1000px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_voice.ini&amp;quot; &amp;quot;sessionOpen&amp;quot; &amp;quot;{UNIQUEID}&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; |  jq -r '.session' &amp;lt;/pre&amp;gt;&lt;br /&gt;
::&amp;lt;small&amp;gt;salida del comando almacenado en variable &amp;quot;vflow_sessionopen_response&amp;quot; para su posterior uso en cally square&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen sessionopen.jpg|550px|center|miniatura|Abrir sesión en vFlow]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 1400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_desa_voz.ini&amp;quot; &amp;quot;textRequest&amp;quot; &amp;quot;{vflow_sessionopen_response}&amp;quot; &amp;quot;{OPENAI_WHISPER_TRANSCRIPT}&amp;quot; | jq -r '.response'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::&amp;lt;small&amp;gt;la voz se ha transcrito con OpenAI, por eso se usa como parámetro {OPENAI_WHISPER_TRANSCRIPT})&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen textrequest.jpg|550px|center|miniatura|Enviar texto en vFlow]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 1000px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt; &lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_desa_voz.ini&amp;quot; &amp;quot;sessionClose&amp;quot; &amp;quot;{{vflow_sessionopen_response}}&amp;quot; &amp;quot;normal&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen sessionclose.jpg|900px|center|miniatura|Cerrar sesión en vFlow]]&lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:VIVAit Call]]&lt;br /&gt;
[[Category:Omnisuite]]&lt;br /&gt;
[[Category:IA]]&lt;/div&gt;</summary>
		<author><name>Alfredo.rodriguez</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_de_vFlow&amp;diff=17189</id>
		<title>Manual de operación de vFlow</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_de_vFlow&amp;diff=17189"/>
		<updated>2026-03-24T11:15:11Z</updated>

		<summary type="html">&lt;p&gt;Alfredo.rodriguez: /* Cerrar sesión */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Descripción general vFlow ==&lt;br /&gt;
&lt;br /&gt;
vFlow es un módulo de conexión a sistemas de inteligencia artifical para sistemas de comunicaciones unificadas, ya sean sistemas corporativos o contact center&lt;br /&gt;
Gracias a vFlow, las plataformas de UC dispondrán de una solución para comunicarse con sistemas IA utilizando un mismo mecanismo independientemente de la solución de inteligencia artificial que se utilice&lt;br /&gt;
&lt;br /&gt;
Para proporcionar el servicio de manera completa, vFlow (en concreto el orquestador) se conectará a sistemas de inteligencia artificial (LLM) que permitirán desarrollar los agentes definidos en los orquestadores&lt;br /&gt;
&lt;br /&gt;
'''Conceptos:'''&lt;br /&gt;
* Plataforma&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Plataforma de comunicaciones unificadas; por ejemplo Omnisuite o VIVAit Call&lt;br /&gt;
* Orquestador&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Plataforma agéntica de IA (por ejemplo Flowise)&lt;br /&gt;
* vFlowProxy&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Módulo VIVAit que conecta multiples plataformas con múltiples orquestadores&lt;br /&gt;
* LLM&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Modelo de lenguaje natural que usará un orquestadores&lt;br /&gt;
* Agente&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Cada uno de los flujos creados en vFlow; corresponde a un par plataforma/agentflow de orquestador&lt;br /&gt;
* Servicio&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Cada elemento de negocio en la plataforma de CU (por ejemplo VDN)&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Arquitectura Vflow - v2.jpg|1000px|center|Arquitecura de vFlow]]&lt;br /&gt;
&lt;br /&gt;
Los '''módulos principales''' de vFlow son:&lt;br /&gt;
* vFlowProxy: Recibe las conexiones de los sistemas de comunicaciones unificadas, y conecta con los orquestadores de Inteligencia Artificial de manera segura y adaptada al tipo de servicio; el acceso a vFlow Proxy desde las plataformas se realizará mediante:&lt;br /&gt;
* Programa cliente: Se utiliza en el sistema de comunicaciones unificadas (actualmente VIVAit Call y Omnsisuite) para invocar a vFlow&lt;br /&gt;
* API REST: Alternativa al programa cliente, vFlowProxy proporciona una API REST que facilita que cualquier plataforma pueda comunicarse mediante un procedimiento estándar y documentado&lt;br /&gt;
* Portal de administración vFlow: Permite visualizar las interaciones realizadas y configurar el sistema&lt;br /&gt;
* Orquestador de IA: Herramienta de Inteligencia Artificial que permitirá la creación de aplicaciones personalizadas (agentes)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Otros elementos''' relevantes serán:&lt;br /&gt;
* Base de datos vFlow:&lt;br /&gt;
:* Almacena información sobre sesiones y transacciones realizadas&lt;br /&gt;
:* Almacena información de configuración sobre vFlow&lt;br /&gt;
:* Gestiona el RAG de las inteligencias artificiales a usar&lt;br /&gt;
&lt;br /&gt;
== Puesta en marcha de nodo vFlow ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Existe un nodo vFlow en los repositorios habituales proporcionados&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para '''dar de alta nodo vflow en un cliente''' hay que:&lt;br /&gt;
* Configurar IP (por defecto la maquina va configurada por DHCP)&lt;br /&gt;
* Adaptar el firewall, para ello REVISAR el fichero &amp;lt;code&amp;gt;/etc/firewall/vars.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
* Certificados validos en apache&lt;br /&gt;
* REVISAR ficheros &amp;lt;code&amp;gt;/etc/apache2/sites-enabled/flowise.conf&amp;lt;/code&amp;gt; y &amp;lt;code&amp;gt;/etc/apache2/sites-enabled/vFlow.conf&amp;lt;/code&amp;gt; la variable &amp;lt;code&amp;gt;ServerName&amp;lt;/code&amp;gt; (nombre valido de la maquina)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Accesos vFlow''' (se debe cambiar tras instalación):&lt;br /&gt;
* Usuario ssh y de SO por defecto es sat y clave a proporcionar.&lt;br /&gt;
* Para el portal de flowise las credenciales son usuario: vfloadmin@vflow.com clave: A proporcionar&lt;br /&gt;
* Para el portal de vflow las credenciales son usaurio sat y clave a proporcionar.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Accesos BBDD vFlow'''&lt;br /&gt;
* Para acceder a la base de datos desde el workbenck solo desde localhost (o tunel):&lt;br /&gt;
* BBDD Vlfow (admin)  vflowadmin // clave a proporcionar&lt;br /&gt;
* BBDD Vlfow (no_admin)  vflow //  clave a proporcionar&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Portal orquestador Flowise'''&lt;br /&gt;
&lt;br /&gt;
ubicado en https://host.cliente.xx:4567&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #fef6e7; border: 1px solid #fbd68a; padding: 1em; border-radius: 4px;width: fit-content; margin-left: 50px&amp;quot;&amp;gt;&lt;br /&gt;
'''⚠️ ATENCION !!'''&lt;br /&gt;
'''Los cambios en tablas de configuración de BBDD de vFlow (orquestadores, plataformas, agentes) requieren reinicio del servicio vFlowProxy'''&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', 'Monaco', 'Courier New', monospace;&amp;quot;&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service status&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service stop&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service start&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El fichero de configuración del demonio &amp;lt;cvode&amp;gt;vFlowProxy&amp;lt;/code&amp;gt; se encuentra en &amp;lt;code&amp;gt;/etc/MDtel/vFlowProxy.conf&amp;lt;/code&amp;gt;, si bien este fichero de configuración no se modificará habitualmente (los parámetros generales de configuración de vFlowProxy se encuentran en la BBDD de vFlow)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Relevante para poder '''poner en marcha un loader''':&lt;br /&gt;
* Subir el fichero inicial previamente a la carpeta destino según entorno (p. ej &amp;lt;code&amp;gt;/var/www/html/storages/production&amp;lt;/code&amp;gt;&lt;br /&gt;
* Tipo de loader --&amp;gt; API&lt;br /&gt;
* Método --&amp;gt; GET&lt;br /&gt;
* URL --&amp;gt; (ejemplo: http://172.25.129.242/storages/test/fichero-pru.txt)&lt;br /&gt;
::* Existirán URL &amp;quot;production&amp;quot;, &amp;quot;staging&amp;quot; y &amp;quot;test&amp;quot;&lt;br /&gt;
* Text Splitter: Recursive&lt;br /&gt;
* Qdrant --&amp;gt; localhost:6333&lt;br /&gt;
* Record Manager --&amp;gt; SQLite&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Se adjunta imagen a modo de ejemplo&lt;br /&gt;
[[Archivo:Alta loader vflow.png|800px|miniaturadeimagen|no|alta loader vFlow|link=]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gestión en vFlow ==&lt;br /&gt;
vFlow prevé la existencia de tres entornos que permita hacer una gestión segura de agentes y RAG:&lt;br /&gt;
&lt;br /&gt;
* Producción&lt;br /&gt;
* Preproducción&lt;br /&gt;
* Pruebas&lt;br /&gt;
&lt;br /&gt;
Para cada agente o store de RAG se podrá desplegar un entorno (producción), dos o los tres entornos&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #f0fff4; border: 3px solid #c6f6d5; padding: 1em; border-radius: 4px;width: fit-content; margin-left: 0px&amp;quot;&amp;gt;&lt;br /&gt;
✅ '''Recomendación'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En la mayoría de los casos con disponer de entorno de producción y preproducción tanto para agente como para RAG será suficiente&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Para realizar una gestión completa en vFlow (suponiendo tres entornos y gestión de agentes y RAG), deberemos tener&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Archivo:Gestión RAG.png|1000px|miniaturadeimagen|centro|Gestión RAG en vFlow|link=]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''En orquestador'''&lt;br /&gt;
* Crear '''tres stores''' (pro/pre/pru); en cada store:&lt;br /&gt;
::* En total '''tres loaders'''. Crear un loader por entorno (p.ej /pro/nombrefich). &lt;br /&gt;
::* Subir un primer &amp;quot;nombrefich&amp;quot;&lt;br /&gt;
::::* tipo texto (versión 0)&lt;br /&gt;
::::* el mismo para todos los entornos&lt;br /&gt;
::::* se sube por medios convencionales (p. ej SCP)&lt;br /&gt;
* Asegurar que los stores queden totalmente creados (estado &amp;quot;UPSERTED&amp;quot;)&lt;br /&gt;
* Crear '''tres agentes''' (pro/pre/pru)&lt;br /&gt;
::* Asociar a stores (pro/pre/pru)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''En flow'''&lt;br /&gt;
* Crear '''un agente'''&lt;br /&gt;
::* Vincularlo a los tres agentes de orquestador (pro/pre/pru)&lt;br /&gt;
* Crear '''un store'''&lt;br /&gt;
::* Vinculado a los tres stores de orquestador (pro/pre/pru)&lt;br /&gt;
* Crear '''un loader'''&lt;br /&gt;
::* Loader vinculado a agente de vflow&lt;br /&gt;
::* C_NAME loader coincidirá con los de orquestador (p.ej &amp;quot;nombrefich&amp;quot;)&lt;br /&gt;
::* Subir nueva versión v1 (&amp;quot;.txt&amp;quot;, &amp;quot;.pdf&amp;quot;, &amp;quot;.doc&amp;quot;, &amp;quot;.docx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Diagnósticos ==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/vFlowProxy/vFlowProxy.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En nodo vFlowProxy&lt;br /&gt;
::para cualquier canal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
nc localhost 1131&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En nodo vFlowProxy&lt;br /&gt;
::Monitoriza estado del proceso vflowProxy&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
  &amp;quot;proceso&amp;quot;: {&lt;br /&gt;
    &amp;quot;nombre&amp;quot;: &amp;quot;vFlowProxy&amp;quot;,&lt;br /&gt;
    &amp;quot;version&amp;quot;: &amp;quot;00.00.01&amp;quot;,&lt;br /&gt;
    &amp;quot;inicio_ts&amp;quot;: 1771315153,&lt;br /&gt;
    &amp;quot;inicio_cad&amp;quot;: &amp;quot;20260217 085913&amp;quot;,&lt;br /&gt;
    &amp;quot;log_alarmas_val&amp;quot;: 8,&lt;br /&gt;
    &amp;quot;log_alarma_ultimo_ts&amp;quot;: 1771970401,&lt;br /&gt;
    &amp;quot;log_alarma_ultimo_ts_cad&amp;quot;: &amp;quot;20260224 230001&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;diagnostico&amp;quot;: {&lt;br /&gt;
    &amp;quot;gmp&amp;quot;: {&lt;br /&gt;
      &amp;quot;msj_val&amp;quot;: 1022,&lt;br /&gt;
      &amp;quot;msj_max&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;buf_val&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;buf_max&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;tarea_val&amp;quot;: 7,&lt;br /&gt;
      &amp;quot;tarea_max&amp;quot;: 15&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;tiempo&amp;quot;: {&lt;br /&gt;
      &amp;quot;uptime&amp;quot;: 716665,&lt;br /&gt;
      &amp;quot;uptime_dias&amp;quot;: 8,&lt;br /&gt;
      &amp;quot;uptime_horas&amp;quot;: 7,&lt;br /&gt;
      &amp;quot;uptime_minutos&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;uptime_segundos&amp;quot;: 25&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;wws&amp;quot;: {&lt;br /&gt;
      &amp;quot;conexiones_val&amp;quot;: 0,&lt;br /&gt;
      &amp;quot;conexiones_max_periodo&amp;quot;: 0,&lt;br /&gt;
      &amp;quot;hilos_val&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;hilos_max&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;wsi_cad&amp;quot;: &amp;quot;sesiones=0/200&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;alarmas_nivel_max&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;alarmas&amp;quot;: []&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es relevante la monitorización de sesiones  &amp;lt;code&amp;gt;&amp;quot;wsi_cad&amp;quot;: &amp;quot;sesiones=0/200&amp;quot;&amp;lt;/code&amp;gt; (usadas/máximas)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
asterisk -rv | grep callsquare_name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::en nodo Omnisuite&lt;br /&gt;
::para canal voz&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/xcally/agi-combined.yyyy-mm-dd.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::en nodo Omnisuite&lt;br /&gt;
::para canal voz&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/xcally/routing-combined.yyyy-mm-dd.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::para canal voz&lt;br /&gt;
&lt;br /&gt;
== Para probar desde vFlow ==&lt;br /&gt;
&lt;br /&gt;
En /home/sat/vFlowProxy hay scripts de prueba (se configuran en el vars.sh); para usar los scripts de prueba tendremos que tener también &amp;quot;.ini&amp;quot; en vFlow&lt;br /&gt;
&lt;br /&gt;
Es útil comenzar con&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/home/sat/vFlowProxy/vFlowGetInfo.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
que sin parámetros adicionales confirma el correcto estado de vFlowProxy&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
  &amp;quot;app&amp;quot;: &amp;quot;vFlowProxy&amp;quot;,&lt;br /&gt;
  &amp;quot;version&amp;quot;: &amp;quot;00.00.01&amp;quot;,&lt;br /&gt;
  &amp;quot;sessions_opened&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;sessions_limit&amp;quot;: 200,&lt;br /&gt;
  &amp;quot;sessions_sleep_timeout_s&amp;quot;: 3600,&lt;br /&gt;
  &amp;quot;alarms&amp;quot;: 8&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Integración de vFlow desde Omnisuite ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Descripción general ===&lt;br /&gt;
En Omnisuite, la integración con vFlow, se realiza con el programa vFlowOmnisuite, que podrá ser invocado como ejecutable (más rápido, para debian), o como Python (más universal)&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
    /usr/local/sbin/vFlowOmnisuite (OPCIÓN PREFERENTE)&lt;br /&gt;
    /usr/local/sbin/vFlowOmnisuite.py (LEGACY)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Asociado al programa existen los siguientes ficheros de configuración (.ini):&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; de plataforma''' Omnisuite en vFlow --&amp;gt; Solo contiene uuid de la plataforma; se entrega un &amp;quot;.ini&amp;quot; a modo de ejemplo en &amp;lt;code&amp;gt;/etc/MDtel/vFlow/platform.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE PLATAFORMA&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
   [uuids]&lt;br /&gt;
   platform=1d111530-e22d-11f0-b0f2-5254008bef96&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; por agente''' en vFlow --&amp;gt; Solo contiene uuid del agente según su identificación en vFlow ('''NO''' en un orquestador, por ejemplo flowise); se entrega un &amp;quot;.ini&amp;quot; asociado a un agente &amp;quot;loop&amp;quot; existente en Flowise &amp;lt;code&amp;gt;/etc/MDtel/vFlow/agent_loop_01.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE AGENTE&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
   [uuids]&lt;br /&gt;
   agent=1a3a1020-ea1d-11f0-b4a5-5254008bef96&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; por servicio''' --&amp;gt; Configuración de cada servicio en Omnisuite; se entrega un &amp;quot;.ini&amp;quot; a modo de ejemplo en &amp;lt;code&amp;gt;/etc/MDtel/vFlow/service.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
En cada fichero de servicio configuraremos&lt;br /&gt;
::* Donde está Vflow&lt;br /&gt;
::* Agente&lt;br /&gt;
::* Plataforma&lt;br /&gt;
::* timeout_s --&amp;gt; Importante, es afectado por el LLM&lt;br /&gt;
::* channel_text_type --&amp;gt; IMPORTANTE si el servicio es de texto que esté bien (vacio solo si el servicio es de texto, NO COMENTARLO)&lt;br /&gt;
::* environment --&amp;gt; production, staging, test&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE SERVICIO&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
  [arch_uuids]&lt;br /&gt;
  agent=/etc/MDtel/vFlow/agent_loop_01.ini&lt;br /&gt;
  platform=/etc/MDtel/vFlow/platform.ini&lt;br /&gt;
&lt;br /&gt;
  [vflow]&lt;br /&gt;
  host_port=172.25.129.242:7900&lt;br /&gt;
  timeout_s=20&lt;br /&gt;
  # channel_type=[voice|chat|email]&lt;br /&gt;
  channel_type=chat&lt;br /&gt;
  # environment=[production|staging|test]&lt;br /&gt;
  environment=production&lt;br /&gt;
  language=es&lt;br /&gt;
&lt;br /&gt;
  [omnisuite]&lt;br /&gt;
  # channel_text_type=[chat|mail|sms|whatsup]&lt;br /&gt;
  channel_text_type=chat&lt;br /&gt;
  service_id=vflow_service_id&lt;br /&gt;
  service_name=vflow_service_name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La imagen siguiente muestra el esquema de relación entre orquestador/plataforma/agente/servicio en la plataforma y en vFlow&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Relaciones vFlow plat orq ag serv.png|800px|miniaturadeimagen|centro|Relación orquestador-plataforma-agente-servicio]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Invocación ===&lt;br /&gt;
=== Generales ===&lt;br /&gt;
&lt;br /&gt;
Ver configuración&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; configPrint &amp;lt;omnisuite_UniqueId&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
Configuration:&lt;br /&gt;
  agent_arch_uuid=/etc/MDtel/vFlow/agent_fse_rapido.ini&lt;br /&gt;
  agent_uuid=3487af28-1d14-11f1-803c-525400ef204c&lt;br /&gt;
  platform_arch_uuid=/etc/MDtel/vFlow/platform_labomsui.ini&lt;br /&gt;
  platform_uuid=9a54ea74-f050-11f0-bdf1-5254008bef96&lt;br /&gt;
&lt;br /&gt;
  vflow_host_port=labvflow.mdnova.local&lt;br /&gt;
  vflow_timeout_s=50&lt;br /&gt;
  vflow_environment=production&lt;br /&gt;
  vflow_channel_type=voice&lt;br /&gt;
  vflow_language=es&lt;br /&gt;
&lt;br /&gt;
  omnisuite_channel_text_type=chat&lt;br /&gt;
  omnisuite_service_id=287&lt;br /&gt;
  omnisuite_service_name=desarrollo&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;errorCad&amp;quot;: &amp;quot;OK&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ver versión&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Para canales de texto ====&lt;br /&gt;
&lt;br /&gt;
Para canales de texto en Omnisuite existe un único Comando de invocación &amp;quot;omnisuiteText&amp;quot;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; omnisuiteText &amp;lt;omnisuite_id&amp;gt; &amp;lt;omnisuite_websiteId&amp;gt; &amp;lt;omnisuite_createdAt&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt; &amp;lt;question&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros ( Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Obligatoriedad !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;config_arch&amp;gt;` || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_id&amp;gt;` || OBLIGATORIO || Identificativo de la interacción en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_websiteId&amp;gt;` || OBLIGATORIO || Identificativo del servicio en Omnisuite (ej. website id en chat)&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_createdAt&amp;gt;` || OBLIGATORIO || Creación de la interacción&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_id&amp;gt;` || OPCIONAL || Id de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_phone_number&amp;gt;` || OPCIONAL || Telf de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_email&amp;gt;` || OPCIONAL || Email de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;question&amp;gt;` || OBLIGATORIO || Texto a enviar al orquestado (p. ej. Flowise)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
 &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
 &amp;quot;session&amp;quot;: &amp;quot;e926548d-fdcf-11f0-a793-525400ef204c&amp;quot;,&lt;br /&gt;
 &amp;quot;language&amp;quot;: &amp;quot;es&amp;quot;,&lt;br /&gt;
 &amp;quot;response&amp;quot;: &amp;quot;HOLA&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Para canales de voz ====&lt;br /&gt;
Para  canales de voz, existen comandos para &amp;quot;abrir sesión&amp;quot;, &amp;quot;enviar texto&amp;quot; y &amp;quot;cerrar sesión&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Abrir sesión =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; sessionOpen &amp;lt;omnisuite_UniqueId&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros (Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Requisito !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;omnisuite_UniqueId&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Unique_ID de asterisk de la llamada en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_id&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Id de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_phone_number&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Telf de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_email&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Email de cliente en Omnisuite&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
    &amp;quot;session&amp;quot;: &amp;quot;ec73df29-f08a-11f0-a8ec-525400ef204c&amp;quot;,&lt;br /&gt;
    &amp;quot;platform_id&amp;quot;: &amp;quot;146&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''El value correspondiente al key &amp;quot;session&amp;quot; deberá ser guardado en una variable para siguientes invocaciones'''&lt;br /&gt;
&lt;br /&gt;
===== Enviar texto =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 700px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; textRequest &amp;lt;vflow_session_uuid&amp;gt; &amp;lt;question&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Requisito !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_session_uuid&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Variable &amp;quot;session&amp;quot; almacenada en el &amp;quot;sessionOpen&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;question&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Texto a enviar al orquestado (p. ej. Flowise) (normal, abandoned, other)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
    &amp;quot;session&amp;quot;: &amp;quot;c6f6fad7-f6c1-11f0-a793-525400ef204c&amp;quot;,&lt;br /&gt;
    &amp;quot;language&amp;quot;: &amp;quot;ES&amp;quot;,&lt;br /&gt;
    &amp;quot;response&amp;quot;: &amp;quot;Cristóbal Colón.&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Cerrar sesión=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; sessionClose &amp;lt;vflow_session_uuid&amp;gt; &amp;lt;vflow_cause&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros  (Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Estado !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_session_uuid&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Variable &amp;quot;session&amp;quot; almacenada en el &amp;quot;sessionOpen&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_cause&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || (normal, abandoned, expired, other)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 104,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;Wrong session&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ejemplos para omnisuite ===&lt;br /&gt;
&lt;br /&gt;
'''Ejemplo de chat'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 1400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_chat.ini&amp;quot; &amp;quot;omnisuiteText&amp;quot; &amp;quot;{{interaction.id}}&amp;quot; &amp;quot;{{account.id}}&amp;quot; &amp;quot;{{interaction.createdAt}}&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;{{message.body}}&amp;quot; | jq -r '.response'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Ejemplo de voz'''&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen cally square.jpg|1024px|none|miniatura|Ejemplo de flujo de Cally Square]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 1000px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_voice.ini&amp;quot; &amp;quot;sessionOpen&amp;quot; &amp;quot;{UNIQUEID}&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; |  jq -r '.session' &amp;lt;/pre&amp;gt;&lt;br /&gt;
::&amp;lt;small&amp;gt;salida del comando almacenado en variable &amp;quot;vflow_sessionopen_response&amp;quot; para su posterior uso en cally square&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen sessionopen.jpg|550px|center|miniatura|Abrir sesión en vFlow]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 1400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_desa_voz.ini&amp;quot; &amp;quot;textRequest&amp;quot; &amp;quot;{vflow_sessionopen_response}&amp;quot; &amp;quot;{OPENAI_WHISPER_TRANSCRIPT}&amp;quot; | jq -r '.response'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::&amp;lt;small&amp;gt;la voz se ha transcrito con OpenAI, por eso se usa como parámetro {OPENAI_WHISPER_TRANSCRIPT})&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen textrequest.jpg|550px|center|miniatura|Enviar texto en vFlow]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 1000px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt; &lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_desa_voz.ini&amp;quot; &amp;quot;sessionClose&amp;quot; &amp;quot;{{vflow_sessionopen_response}}&amp;quot; &amp;quot;normal&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen sessionclose.jpg|900px|center|miniatura|Cerrar sesión en vFlow]]&lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:VIVAit Call]]&lt;br /&gt;
[[Category:Omnisuite]]&lt;br /&gt;
[[Category:IA]]&lt;/div&gt;</summary>
		<author><name>Alfredo.rodriguez</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_de_vFlow&amp;diff=17188</id>
		<title>Manual de operación de vFlow</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_de_vFlow&amp;diff=17188"/>
		<updated>2026-03-24T11:14:44Z</updated>

		<summary type="html">&lt;p&gt;Alfredo.rodriguez: /* Abrir sesión */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Descripción general vFlow ==&lt;br /&gt;
&lt;br /&gt;
vFlow es un módulo de conexión a sistemas de inteligencia artifical para sistemas de comunicaciones unificadas, ya sean sistemas corporativos o contact center&lt;br /&gt;
Gracias a vFlow, las plataformas de UC dispondrán de una solución para comunicarse con sistemas IA utilizando un mismo mecanismo independientemente de la solución de inteligencia artificial que se utilice&lt;br /&gt;
&lt;br /&gt;
Para proporcionar el servicio de manera completa, vFlow (en concreto el orquestador) se conectará a sistemas de inteligencia artificial (LLM) que permitirán desarrollar los agentes definidos en los orquestadores&lt;br /&gt;
&lt;br /&gt;
'''Conceptos:'''&lt;br /&gt;
* Plataforma&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Plataforma de comunicaciones unificadas; por ejemplo Omnisuite o VIVAit Call&lt;br /&gt;
* Orquestador&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Plataforma agéntica de IA (por ejemplo Flowise)&lt;br /&gt;
* vFlowProxy&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Módulo VIVAit que conecta multiples plataformas con múltiples orquestadores&lt;br /&gt;
* LLM&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Modelo de lenguaje natural que usará un orquestadores&lt;br /&gt;
* Agente&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Cada uno de los flujos creados en vFlow; corresponde a un par plataforma/agentflow de orquestador&lt;br /&gt;
* Servicio&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Cada elemento de negocio en la plataforma de CU (por ejemplo VDN)&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Arquitectura Vflow - v2.jpg|1000px|center|Arquitecura de vFlow]]&lt;br /&gt;
&lt;br /&gt;
Los '''módulos principales''' de vFlow son:&lt;br /&gt;
* vFlowProxy: Recibe las conexiones de los sistemas de comunicaciones unificadas, y conecta con los orquestadores de Inteligencia Artificial de manera segura y adaptada al tipo de servicio; el acceso a vFlow Proxy desde las plataformas se realizará mediante:&lt;br /&gt;
* Programa cliente: Se utiliza en el sistema de comunicaciones unificadas (actualmente VIVAit Call y Omnsisuite) para invocar a vFlow&lt;br /&gt;
* API REST: Alternativa al programa cliente, vFlowProxy proporciona una API REST que facilita que cualquier plataforma pueda comunicarse mediante un procedimiento estándar y documentado&lt;br /&gt;
* Portal de administración vFlow: Permite visualizar las interaciones realizadas y configurar el sistema&lt;br /&gt;
* Orquestador de IA: Herramienta de Inteligencia Artificial que permitirá la creación de aplicaciones personalizadas (agentes)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Otros elementos''' relevantes serán:&lt;br /&gt;
* Base de datos vFlow:&lt;br /&gt;
:* Almacena información sobre sesiones y transacciones realizadas&lt;br /&gt;
:* Almacena información de configuración sobre vFlow&lt;br /&gt;
:* Gestiona el RAG de las inteligencias artificiales a usar&lt;br /&gt;
&lt;br /&gt;
== Puesta en marcha de nodo vFlow ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Existe un nodo vFlow en los repositorios habituales proporcionados&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para '''dar de alta nodo vflow en un cliente''' hay que:&lt;br /&gt;
* Configurar IP (por defecto la maquina va configurada por DHCP)&lt;br /&gt;
* Adaptar el firewall, para ello REVISAR el fichero &amp;lt;code&amp;gt;/etc/firewall/vars.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
* Certificados validos en apache&lt;br /&gt;
* REVISAR ficheros &amp;lt;code&amp;gt;/etc/apache2/sites-enabled/flowise.conf&amp;lt;/code&amp;gt; y &amp;lt;code&amp;gt;/etc/apache2/sites-enabled/vFlow.conf&amp;lt;/code&amp;gt; la variable &amp;lt;code&amp;gt;ServerName&amp;lt;/code&amp;gt; (nombre valido de la maquina)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Accesos vFlow''' (se debe cambiar tras instalación):&lt;br /&gt;
* Usuario ssh y de SO por defecto es sat y clave a proporcionar.&lt;br /&gt;
* Para el portal de flowise las credenciales son usuario: vfloadmin@vflow.com clave: A proporcionar&lt;br /&gt;
* Para el portal de vflow las credenciales son usaurio sat y clave a proporcionar.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Accesos BBDD vFlow'''&lt;br /&gt;
* Para acceder a la base de datos desde el workbenck solo desde localhost (o tunel):&lt;br /&gt;
* BBDD Vlfow (admin)  vflowadmin // clave a proporcionar&lt;br /&gt;
* BBDD Vlfow (no_admin)  vflow //  clave a proporcionar&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Portal orquestador Flowise'''&lt;br /&gt;
&lt;br /&gt;
ubicado en https://host.cliente.xx:4567&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #fef6e7; border: 1px solid #fbd68a; padding: 1em; border-radius: 4px;width: fit-content; margin-left: 50px&amp;quot;&amp;gt;&lt;br /&gt;
'''⚠️ ATENCION !!'''&lt;br /&gt;
'''Los cambios en tablas de configuración de BBDD de vFlow (orquestadores, plataformas, agentes) requieren reinicio del servicio vFlowProxy'''&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', 'Monaco', 'Courier New', monospace;&amp;quot;&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service status&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service stop&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service start&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El fichero de configuración del demonio &amp;lt;cvode&amp;gt;vFlowProxy&amp;lt;/code&amp;gt; se encuentra en &amp;lt;code&amp;gt;/etc/MDtel/vFlowProxy.conf&amp;lt;/code&amp;gt;, si bien este fichero de configuración no se modificará habitualmente (los parámetros generales de configuración de vFlowProxy se encuentran en la BBDD de vFlow)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Relevante para poder '''poner en marcha un loader''':&lt;br /&gt;
* Subir el fichero inicial previamente a la carpeta destino según entorno (p. ej &amp;lt;code&amp;gt;/var/www/html/storages/production&amp;lt;/code&amp;gt;&lt;br /&gt;
* Tipo de loader --&amp;gt; API&lt;br /&gt;
* Método --&amp;gt; GET&lt;br /&gt;
* URL --&amp;gt; (ejemplo: http://172.25.129.242/storages/test/fichero-pru.txt)&lt;br /&gt;
::* Existirán URL &amp;quot;production&amp;quot;, &amp;quot;staging&amp;quot; y &amp;quot;test&amp;quot;&lt;br /&gt;
* Text Splitter: Recursive&lt;br /&gt;
* Qdrant --&amp;gt; localhost:6333&lt;br /&gt;
* Record Manager --&amp;gt; SQLite&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Se adjunta imagen a modo de ejemplo&lt;br /&gt;
[[Archivo:Alta loader vflow.png|800px|miniaturadeimagen|no|alta loader vFlow|link=]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gestión en vFlow ==&lt;br /&gt;
vFlow prevé la existencia de tres entornos que permita hacer una gestión segura de agentes y RAG:&lt;br /&gt;
&lt;br /&gt;
* Producción&lt;br /&gt;
* Preproducción&lt;br /&gt;
* Pruebas&lt;br /&gt;
&lt;br /&gt;
Para cada agente o store de RAG se podrá desplegar un entorno (producción), dos o los tres entornos&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #f0fff4; border: 3px solid #c6f6d5; padding: 1em; border-radius: 4px;width: fit-content; margin-left: 0px&amp;quot;&amp;gt;&lt;br /&gt;
✅ '''Recomendación'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En la mayoría de los casos con disponer de entorno de producción y preproducción tanto para agente como para RAG será suficiente&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Para realizar una gestión completa en vFlow (suponiendo tres entornos y gestión de agentes y RAG), deberemos tener&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Archivo:Gestión RAG.png|1000px|miniaturadeimagen|centro|Gestión RAG en vFlow|link=]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''En orquestador'''&lt;br /&gt;
* Crear '''tres stores''' (pro/pre/pru); en cada store:&lt;br /&gt;
::* En total '''tres loaders'''. Crear un loader por entorno (p.ej /pro/nombrefich). &lt;br /&gt;
::* Subir un primer &amp;quot;nombrefich&amp;quot;&lt;br /&gt;
::::* tipo texto (versión 0)&lt;br /&gt;
::::* el mismo para todos los entornos&lt;br /&gt;
::::* se sube por medios convencionales (p. ej SCP)&lt;br /&gt;
* Asegurar que los stores queden totalmente creados (estado &amp;quot;UPSERTED&amp;quot;)&lt;br /&gt;
* Crear '''tres agentes''' (pro/pre/pru)&lt;br /&gt;
::* Asociar a stores (pro/pre/pru)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''En flow'''&lt;br /&gt;
* Crear '''un agente'''&lt;br /&gt;
::* Vincularlo a los tres agentes de orquestador (pro/pre/pru)&lt;br /&gt;
* Crear '''un store'''&lt;br /&gt;
::* Vinculado a los tres stores de orquestador (pro/pre/pru)&lt;br /&gt;
* Crear '''un loader'''&lt;br /&gt;
::* Loader vinculado a agente de vflow&lt;br /&gt;
::* C_NAME loader coincidirá con los de orquestador (p.ej &amp;quot;nombrefich&amp;quot;)&lt;br /&gt;
::* Subir nueva versión v1 (&amp;quot;.txt&amp;quot;, &amp;quot;.pdf&amp;quot;, &amp;quot;.doc&amp;quot;, &amp;quot;.docx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Diagnósticos ==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/vFlowProxy/vFlowProxy.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En nodo vFlowProxy&lt;br /&gt;
::para cualquier canal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
nc localhost 1131&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En nodo vFlowProxy&lt;br /&gt;
::Monitoriza estado del proceso vflowProxy&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
  &amp;quot;proceso&amp;quot;: {&lt;br /&gt;
    &amp;quot;nombre&amp;quot;: &amp;quot;vFlowProxy&amp;quot;,&lt;br /&gt;
    &amp;quot;version&amp;quot;: &amp;quot;00.00.01&amp;quot;,&lt;br /&gt;
    &amp;quot;inicio_ts&amp;quot;: 1771315153,&lt;br /&gt;
    &amp;quot;inicio_cad&amp;quot;: &amp;quot;20260217 085913&amp;quot;,&lt;br /&gt;
    &amp;quot;log_alarmas_val&amp;quot;: 8,&lt;br /&gt;
    &amp;quot;log_alarma_ultimo_ts&amp;quot;: 1771970401,&lt;br /&gt;
    &amp;quot;log_alarma_ultimo_ts_cad&amp;quot;: &amp;quot;20260224 230001&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;diagnostico&amp;quot;: {&lt;br /&gt;
    &amp;quot;gmp&amp;quot;: {&lt;br /&gt;
      &amp;quot;msj_val&amp;quot;: 1022,&lt;br /&gt;
      &amp;quot;msj_max&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;buf_val&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;buf_max&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;tarea_val&amp;quot;: 7,&lt;br /&gt;
      &amp;quot;tarea_max&amp;quot;: 15&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;tiempo&amp;quot;: {&lt;br /&gt;
      &amp;quot;uptime&amp;quot;: 716665,&lt;br /&gt;
      &amp;quot;uptime_dias&amp;quot;: 8,&lt;br /&gt;
      &amp;quot;uptime_horas&amp;quot;: 7,&lt;br /&gt;
      &amp;quot;uptime_minutos&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;uptime_segundos&amp;quot;: 25&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;wws&amp;quot;: {&lt;br /&gt;
      &amp;quot;conexiones_val&amp;quot;: 0,&lt;br /&gt;
      &amp;quot;conexiones_max_periodo&amp;quot;: 0,&lt;br /&gt;
      &amp;quot;hilos_val&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;hilos_max&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;wsi_cad&amp;quot;: &amp;quot;sesiones=0/200&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;alarmas_nivel_max&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;alarmas&amp;quot;: []&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es relevante la monitorización de sesiones  &amp;lt;code&amp;gt;&amp;quot;wsi_cad&amp;quot;: &amp;quot;sesiones=0/200&amp;quot;&amp;lt;/code&amp;gt; (usadas/máximas)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
asterisk -rv | grep callsquare_name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::en nodo Omnisuite&lt;br /&gt;
::para canal voz&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/xcally/agi-combined.yyyy-mm-dd.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::en nodo Omnisuite&lt;br /&gt;
::para canal voz&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/xcally/routing-combined.yyyy-mm-dd.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::para canal voz&lt;br /&gt;
&lt;br /&gt;
== Para probar desde vFlow ==&lt;br /&gt;
&lt;br /&gt;
En /home/sat/vFlowProxy hay scripts de prueba (se configuran en el vars.sh); para usar los scripts de prueba tendremos que tener también &amp;quot;.ini&amp;quot; en vFlow&lt;br /&gt;
&lt;br /&gt;
Es útil comenzar con&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/home/sat/vFlowProxy/vFlowGetInfo.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
que sin parámetros adicionales confirma el correcto estado de vFlowProxy&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
  &amp;quot;app&amp;quot;: &amp;quot;vFlowProxy&amp;quot;,&lt;br /&gt;
  &amp;quot;version&amp;quot;: &amp;quot;00.00.01&amp;quot;,&lt;br /&gt;
  &amp;quot;sessions_opened&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;sessions_limit&amp;quot;: 200,&lt;br /&gt;
  &amp;quot;sessions_sleep_timeout_s&amp;quot;: 3600,&lt;br /&gt;
  &amp;quot;alarms&amp;quot;: 8&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Integración de vFlow desde Omnisuite ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Descripción general ===&lt;br /&gt;
En Omnisuite, la integración con vFlow, se realiza con el programa vFlowOmnisuite, que podrá ser invocado como ejecutable (más rápido, para debian), o como Python (más universal)&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
    /usr/local/sbin/vFlowOmnisuite (OPCIÓN PREFERENTE)&lt;br /&gt;
    /usr/local/sbin/vFlowOmnisuite.py (LEGACY)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Asociado al programa existen los siguientes ficheros de configuración (.ini):&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; de plataforma''' Omnisuite en vFlow --&amp;gt; Solo contiene uuid de la plataforma; se entrega un &amp;quot;.ini&amp;quot; a modo de ejemplo en &amp;lt;code&amp;gt;/etc/MDtel/vFlow/platform.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE PLATAFORMA&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
   [uuids]&lt;br /&gt;
   platform=1d111530-e22d-11f0-b0f2-5254008bef96&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; por agente''' en vFlow --&amp;gt; Solo contiene uuid del agente según su identificación en vFlow ('''NO''' en un orquestador, por ejemplo flowise); se entrega un &amp;quot;.ini&amp;quot; asociado a un agente &amp;quot;loop&amp;quot; existente en Flowise &amp;lt;code&amp;gt;/etc/MDtel/vFlow/agent_loop_01.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE AGENTE&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
   [uuids]&lt;br /&gt;
   agent=1a3a1020-ea1d-11f0-b4a5-5254008bef96&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; por servicio''' --&amp;gt; Configuración de cada servicio en Omnisuite; se entrega un &amp;quot;.ini&amp;quot; a modo de ejemplo en &amp;lt;code&amp;gt;/etc/MDtel/vFlow/service.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
En cada fichero de servicio configuraremos&lt;br /&gt;
::* Donde está Vflow&lt;br /&gt;
::* Agente&lt;br /&gt;
::* Plataforma&lt;br /&gt;
::* timeout_s --&amp;gt; Importante, es afectado por el LLM&lt;br /&gt;
::* channel_text_type --&amp;gt; IMPORTANTE si el servicio es de texto que esté bien (vacio solo si el servicio es de texto, NO COMENTARLO)&lt;br /&gt;
::* environment --&amp;gt; production, staging, test&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE SERVICIO&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
  [arch_uuids]&lt;br /&gt;
  agent=/etc/MDtel/vFlow/agent_loop_01.ini&lt;br /&gt;
  platform=/etc/MDtel/vFlow/platform.ini&lt;br /&gt;
&lt;br /&gt;
  [vflow]&lt;br /&gt;
  host_port=172.25.129.242:7900&lt;br /&gt;
  timeout_s=20&lt;br /&gt;
  # channel_type=[voice|chat|email]&lt;br /&gt;
  channel_type=chat&lt;br /&gt;
  # environment=[production|staging|test]&lt;br /&gt;
  environment=production&lt;br /&gt;
  language=es&lt;br /&gt;
&lt;br /&gt;
  [omnisuite]&lt;br /&gt;
  # channel_text_type=[chat|mail|sms|whatsup]&lt;br /&gt;
  channel_text_type=chat&lt;br /&gt;
  service_id=vflow_service_id&lt;br /&gt;
  service_name=vflow_service_name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La imagen siguiente muestra el esquema de relación entre orquestador/plataforma/agente/servicio en la plataforma y en vFlow&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Relaciones vFlow plat orq ag serv.png|800px|miniaturadeimagen|centro|Relación orquestador-plataforma-agente-servicio]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Invocación ===&lt;br /&gt;
=== Generales ===&lt;br /&gt;
&lt;br /&gt;
Ver configuración&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; configPrint &amp;lt;omnisuite_UniqueId&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
Configuration:&lt;br /&gt;
  agent_arch_uuid=/etc/MDtel/vFlow/agent_fse_rapido.ini&lt;br /&gt;
  agent_uuid=3487af28-1d14-11f1-803c-525400ef204c&lt;br /&gt;
  platform_arch_uuid=/etc/MDtel/vFlow/platform_labomsui.ini&lt;br /&gt;
  platform_uuid=9a54ea74-f050-11f0-bdf1-5254008bef96&lt;br /&gt;
&lt;br /&gt;
  vflow_host_port=labvflow.mdnova.local&lt;br /&gt;
  vflow_timeout_s=50&lt;br /&gt;
  vflow_environment=production&lt;br /&gt;
  vflow_channel_type=voice&lt;br /&gt;
  vflow_language=es&lt;br /&gt;
&lt;br /&gt;
  omnisuite_channel_text_type=chat&lt;br /&gt;
  omnisuite_service_id=287&lt;br /&gt;
  omnisuite_service_name=desarrollo&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;errorCad&amp;quot;: &amp;quot;OK&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ver versión&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Para canales de texto ====&lt;br /&gt;
&lt;br /&gt;
Para canales de texto en Omnisuite existe un único Comando de invocación &amp;quot;omnisuiteText&amp;quot;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; omnisuiteText &amp;lt;omnisuite_id&amp;gt; &amp;lt;omnisuite_websiteId&amp;gt; &amp;lt;omnisuite_createdAt&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt; &amp;lt;question&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros ( Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Obligatoriedad !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;config_arch&amp;gt;` || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_id&amp;gt;` || OBLIGATORIO || Identificativo de la interacción en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_websiteId&amp;gt;` || OBLIGATORIO || Identificativo del servicio en Omnisuite (ej. website id en chat)&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_createdAt&amp;gt;` || OBLIGATORIO || Creación de la interacción&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_id&amp;gt;` || OPCIONAL || Id de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_phone_number&amp;gt;` || OPCIONAL || Telf de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_email&amp;gt;` || OPCIONAL || Email de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;question&amp;gt;` || OBLIGATORIO || Texto a enviar al orquestado (p. ej. Flowise)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
 &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
 &amp;quot;session&amp;quot;: &amp;quot;e926548d-fdcf-11f0-a793-525400ef204c&amp;quot;,&lt;br /&gt;
 &amp;quot;language&amp;quot;: &amp;quot;es&amp;quot;,&lt;br /&gt;
 &amp;quot;response&amp;quot;: &amp;quot;HOLA&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Para canales de voz ====&lt;br /&gt;
Para  canales de voz, existen comandos para &amp;quot;abrir sesión&amp;quot;, &amp;quot;enviar texto&amp;quot; y &amp;quot;cerrar sesión&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Abrir sesión =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; sessionOpen &amp;lt;omnisuite_UniqueId&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros (Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Requisito !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;omnisuite_UniqueId&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Unique_ID de asterisk de la llamada en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_id&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Id de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_phone_number&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Telf de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_email&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Email de cliente en Omnisuite&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
    &amp;quot;session&amp;quot;: &amp;quot;ec73df29-f08a-11f0-a8ec-525400ef204c&amp;quot;,&lt;br /&gt;
    &amp;quot;platform_id&amp;quot;: &amp;quot;146&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''El value correspondiente al key &amp;quot;session&amp;quot; deberá ser guardado en una variable para siguientes invocaciones'''&lt;br /&gt;
&lt;br /&gt;
===== Enviar texto =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 700px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; textRequest &amp;lt;vflow_session_uuid&amp;gt; &amp;lt;question&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Requisito !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_session_uuid&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Variable &amp;quot;session&amp;quot; almacenada en el &amp;quot;sessionOpen&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;question&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Texto a enviar al orquestado (p. ej. Flowise) (normal, abandoned, other)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
    &amp;quot;session&amp;quot;: &amp;quot;c6f6fad7-f6c1-11f0-a793-525400ef204c&amp;quot;,&lt;br /&gt;
    &amp;quot;language&amp;quot;: &amp;quot;ES&amp;quot;,&lt;br /&gt;
    &amp;quot;response&amp;quot;: &amp;quot;Cristóbal Colón.&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Cerrar sesión=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 800px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; sessionClose &amp;lt;vflow_session_uuid&amp;gt; &amp;lt;vflow_cause&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros  (Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Estado !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_session_uuid&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Variable &amp;quot;session&amp;quot; almacenada en el &amp;quot;sessionOpen&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_cause&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || (normal, abandoned, expired, other)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 104,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;Wrong session&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ejemplos para omnisuite ===&lt;br /&gt;
&lt;br /&gt;
'''Ejemplo de chat'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 1400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_chat.ini&amp;quot; &amp;quot;omnisuiteText&amp;quot; &amp;quot;{{interaction.id}}&amp;quot; &amp;quot;{{account.id}}&amp;quot; &amp;quot;{{interaction.createdAt}}&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;{{message.body}}&amp;quot; | jq -r '.response'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Ejemplo de voz'''&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen cally square.jpg|1024px|none|miniatura|Ejemplo de flujo de Cally Square]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 1000px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_voice.ini&amp;quot; &amp;quot;sessionOpen&amp;quot; &amp;quot;{UNIQUEID}&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; |  jq -r '.session' &amp;lt;/pre&amp;gt;&lt;br /&gt;
::&amp;lt;small&amp;gt;salida del comando almacenado en variable &amp;quot;vflow_sessionopen_response&amp;quot; para su posterior uso en cally square&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen sessionopen.jpg|550px|center|miniatura|Abrir sesión en vFlow]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 1400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_desa_voz.ini&amp;quot; &amp;quot;textRequest&amp;quot; &amp;quot;{vflow_sessionopen_response}&amp;quot; &amp;quot;{OPENAI_WHISPER_TRANSCRIPT}&amp;quot; | jq -r '.response'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::&amp;lt;small&amp;gt;la voz se ha transcrito con OpenAI, por eso se usa como parámetro {OPENAI_WHISPER_TRANSCRIPT})&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen textrequest.jpg|550px|center|miniatura|Enviar texto en vFlow]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 1000px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt; &lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_desa_voz.ini&amp;quot; &amp;quot;sessionClose&amp;quot; &amp;quot;{{vflow_sessionopen_response}}&amp;quot; &amp;quot;normal&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen sessionclose.jpg|900px|center|miniatura|Cerrar sesión en vFlow]]&lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:VIVAit Call]]&lt;br /&gt;
[[Category:Omnisuite]]&lt;br /&gt;
[[Category:IA]]&lt;/div&gt;</summary>
		<author><name>Alfredo.rodriguez</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_de_vFlow&amp;diff=17187</id>
		<title>Manual de operación de vFlow</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_de_vFlow&amp;diff=17187"/>
		<updated>2026-03-24T11:14:35Z</updated>

		<summary type="html">&lt;p&gt;Alfredo.rodriguez: /* Abrir sesión */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Descripción general vFlow ==&lt;br /&gt;
&lt;br /&gt;
vFlow es un módulo de conexión a sistemas de inteligencia artifical para sistemas de comunicaciones unificadas, ya sean sistemas corporativos o contact center&lt;br /&gt;
Gracias a vFlow, las plataformas de UC dispondrán de una solución para comunicarse con sistemas IA utilizando un mismo mecanismo independientemente de la solución de inteligencia artificial que se utilice&lt;br /&gt;
&lt;br /&gt;
Para proporcionar el servicio de manera completa, vFlow (en concreto el orquestador) se conectará a sistemas de inteligencia artificial (LLM) que permitirán desarrollar los agentes definidos en los orquestadores&lt;br /&gt;
&lt;br /&gt;
'''Conceptos:'''&lt;br /&gt;
* Plataforma&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Plataforma de comunicaciones unificadas; por ejemplo Omnisuite o VIVAit Call&lt;br /&gt;
* Orquestador&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Plataforma agéntica de IA (por ejemplo Flowise)&lt;br /&gt;
* vFlowProxy&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Módulo VIVAit que conecta multiples plataformas con múltiples orquestadores&lt;br /&gt;
* LLM&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Modelo de lenguaje natural que usará un orquestadores&lt;br /&gt;
* Agente&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Cada uno de los flujos creados en vFlow; corresponde a un par plataforma/agentflow de orquestador&lt;br /&gt;
* Servicio&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Cada elemento de negocio en la plataforma de CU (por ejemplo VDN)&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Arquitectura Vflow - v2.jpg|1000px|center|Arquitecura de vFlow]]&lt;br /&gt;
&lt;br /&gt;
Los '''módulos principales''' de vFlow son:&lt;br /&gt;
* vFlowProxy: Recibe las conexiones de los sistemas de comunicaciones unificadas, y conecta con los orquestadores de Inteligencia Artificial de manera segura y adaptada al tipo de servicio; el acceso a vFlow Proxy desde las plataformas se realizará mediante:&lt;br /&gt;
* Programa cliente: Se utiliza en el sistema de comunicaciones unificadas (actualmente VIVAit Call y Omnsisuite) para invocar a vFlow&lt;br /&gt;
* API REST: Alternativa al programa cliente, vFlowProxy proporciona una API REST que facilita que cualquier plataforma pueda comunicarse mediante un procedimiento estándar y documentado&lt;br /&gt;
* Portal de administración vFlow: Permite visualizar las interaciones realizadas y configurar el sistema&lt;br /&gt;
* Orquestador de IA: Herramienta de Inteligencia Artificial que permitirá la creación de aplicaciones personalizadas (agentes)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Otros elementos''' relevantes serán:&lt;br /&gt;
* Base de datos vFlow:&lt;br /&gt;
:* Almacena información sobre sesiones y transacciones realizadas&lt;br /&gt;
:* Almacena información de configuración sobre vFlow&lt;br /&gt;
:* Gestiona el RAG de las inteligencias artificiales a usar&lt;br /&gt;
&lt;br /&gt;
== Puesta en marcha de nodo vFlow ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Existe un nodo vFlow en los repositorios habituales proporcionados&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para '''dar de alta nodo vflow en un cliente''' hay que:&lt;br /&gt;
* Configurar IP (por defecto la maquina va configurada por DHCP)&lt;br /&gt;
* Adaptar el firewall, para ello REVISAR el fichero &amp;lt;code&amp;gt;/etc/firewall/vars.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
* Certificados validos en apache&lt;br /&gt;
* REVISAR ficheros &amp;lt;code&amp;gt;/etc/apache2/sites-enabled/flowise.conf&amp;lt;/code&amp;gt; y &amp;lt;code&amp;gt;/etc/apache2/sites-enabled/vFlow.conf&amp;lt;/code&amp;gt; la variable &amp;lt;code&amp;gt;ServerName&amp;lt;/code&amp;gt; (nombre valido de la maquina)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Accesos vFlow''' (se debe cambiar tras instalación):&lt;br /&gt;
* Usuario ssh y de SO por defecto es sat y clave a proporcionar.&lt;br /&gt;
* Para el portal de flowise las credenciales son usuario: vfloadmin@vflow.com clave: A proporcionar&lt;br /&gt;
* Para el portal de vflow las credenciales son usaurio sat y clave a proporcionar.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Accesos BBDD vFlow'''&lt;br /&gt;
* Para acceder a la base de datos desde el workbenck solo desde localhost (o tunel):&lt;br /&gt;
* BBDD Vlfow (admin)  vflowadmin // clave a proporcionar&lt;br /&gt;
* BBDD Vlfow (no_admin)  vflow //  clave a proporcionar&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Portal orquestador Flowise'''&lt;br /&gt;
&lt;br /&gt;
ubicado en https://host.cliente.xx:4567&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #fef6e7; border: 1px solid #fbd68a; padding: 1em; border-radius: 4px;width: fit-content; margin-left: 50px&amp;quot;&amp;gt;&lt;br /&gt;
'''⚠️ ATENCION !!'''&lt;br /&gt;
'''Los cambios en tablas de configuración de BBDD de vFlow (orquestadores, plataformas, agentes) requieren reinicio del servicio vFlowProxy'''&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', 'Monaco', 'Courier New', monospace;&amp;quot;&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service status&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service stop&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service start&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El fichero de configuración del demonio &amp;lt;cvode&amp;gt;vFlowProxy&amp;lt;/code&amp;gt; se encuentra en &amp;lt;code&amp;gt;/etc/MDtel/vFlowProxy.conf&amp;lt;/code&amp;gt;, si bien este fichero de configuración no se modificará habitualmente (los parámetros generales de configuración de vFlowProxy se encuentran en la BBDD de vFlow)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Relevante para poder '''poner en marcha un loader''':&lt;br /&gt;
* Subir el fichero inicial previamente a la carpeta destino según entorno (p. ej &amp;lt;code&amp;gt;/var/www/html/storages/production&amp;lt;/code&amp;gt;&lt;br /&gt;
* Tipo de loader --&amp;gt; API&lt;br /&gt;
* Método --&amp;gt; GET&lt;br /&gt;
* URL --&amp;gt; (ejemplo: http://172.25.129.242/storages/test/fichero-pru.txt)&lt;br /&gt;
::* Existirán URL &amp;quot;production&amp;quot;, &amp;quot;staging&amp;quot; y &amp;quot;test&amp;quot;&lt;br /&gt;
* Text Splitter: Recursive&lt;br /&gt;
* Qdrant --&amp;gt; localhost:6333&lt;br /&gt;
* Record Manager --&amp;gt; SQLite&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Se adjunta imagen a modo de ejemplo&lt;br /&gt;
[[Archivo:Alta loader vflow.png|800px|miniaturadeimagen|no|alta loader vFlow|link=]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gestión en vFlow ==&lt;br /&gt;
vFlow prevé la existencia de tres entornos que permita hacer una gestión segura de agentes y RAG:&lt;br /&gt;
&lt;br /&gt;
* Producción&lt;br /&gt;
* Preproducción&lt;br /&gt;
* Pruebas&lt;br /&gt;
&lt;br /&gt;
Para cada agente o store de RAG se podrá desplegar un entorno (producción), dos o los tres entornos&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #f0fff4; border: 3px solid #c6f6d5; padding: 1em; border-radius: 4px;width: fit-content; margin-left: 0px&amp;quot;&amp;gt;&lt;br /&gt;
✅ '''Recomendación'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En la mayoría de los casos con disponer de entorno de producción y preproducción tanto para agente como para RAG será suficiente&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Para realizar una gestión completa en vFlow (suponiendo tres entornos y gestión de agentes y RAG), deberemos tener&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Archivo:Gestión RAG.png|1000px|miniaturadeimagen|centro|Gestión RAG en vFlow|link=]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''En orquestador'''&lt;br /&gt;
* Crear '''tres stores''' (pro/pre/pru); en cada store:&lt;br /&gt;
::* En total '''tres loaders'''. Crear un loader por entorno (p.ej /pro/nombrefich). &lt;br /&gt;
::* Subir un primer &amp;quot;nombrefich&amp;quot;&lt;br /&gt;
::::* tipo texto (versión 0)&lt;br /&gt;
::::* el mismo para todos los entornos&lt;br /&gt;
::::* se sube por medios convencionales (p. ej SCP)&lt;br /&gt;
* Asegurar que los stores queden totalmente creados (estado &amp;quot;UPSERTED&amp;quot;)&lt;br /&gt;
* Crear '''tres agentes''' (pro/pre/pru)&lt;br /&gt;
::* Asociar a stores (pro/pre/pru)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''En flow'''&lt;br /&gt;
* Crear '''un agente'''&lt;br /&gt;
::* Vincularlo a los tres agentes de orquestador (pro/pre/pru)&lt;br /&gt;
* Crear '''un store'''&lt;br /&gt;
::* Vinculado a los tres stores de orquestador (pro/pre/pru)&lt;br /&gt;
* Crear '''un loader'''&lt;br /&gt;
::* Loader vinculado a agente de vflow&lt;br /&gt;
::* C_NAME loader coincidirá con los de orquestador (p.ej &amp;quot;nombrefich&amp;quot;)&lt;br /&gt;
::* Subir nueva versión v1 (&amp;quot;.txt&amp;quot;, &amp;quot;.pdf&amp;quot;, &amp;quot;.doc&amp;quot;, &amp;quot;.docx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Diagnósticos ==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/vFlowProxy/vFlowProxy.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En nodo vFlowProxy&lt;br /&gt;
::para cualquier canal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
nc localhost 1131&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En nodo vFlowProxy&lt;br /&gt;
::Monitoriza estado del proceso vflowProxy&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
  &amp;quot;proceso&amp;quot;: {&lt;br /&gt;
    &amp;quot;nombre&amp;quot;: &amp;quot;vFlowProxy&amp;quot;,&lt;br /&gt;
    &amp;quot;version&amp;quot;: &amp;quot;00.00.01&amp;quot;,&lt;br /&gt;
    &amp;quot;inicio_ts&amp;quot;: 1771315153,&lt;br /&gt;
    &amp;quot;inicio_cad&amp;quot;: &amp;quot;20260217 085913&amp;quot;,&lt;br /&gt;
    &amp;quot;log_alarmas_val&amp;quot;: 8,&lt;br /&gt;
    &amp;quot;log_alarma_ultimo_ts&amp;quot;: 1771970401,&lt;br /&gt;
    &amp;quot;log_alarma_ultimo_ts_cad&amp;quot;: &amp;quot;20260224 230001&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;diagnostico&amp;quot;: {&lt;br /&gt;
    &amp;quot;gmp&amp;quot;: {&lt;br /&gt;
      &amp;quot;msj_val&amp;quot;: 1022,&lt;br /&gt;
      &amp;quot;msj_max&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;buf_val&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;buf_max&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;tarea_val&amp;quot;: 7,&lt;br /&gt;
      &amp;quot;tarea_max&amp;quot;: 15&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;tiempo&amp;quot;: {&lt;br /&gt;
      &amp;quot;uptime&amp;quot;: 716665,&lt;br /&gt;
      &amp;quot;uptime_dias&amp;quot;: 8,&lt;br /&gt;
      &amp;quot;uptime_horas&amp;quot;: 7,&lt;br /&gt;
      &amp;quot;uptime_minutos&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;uptime_segundos&amp;quot;: 25&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;wws&amp;quot;: {&lt;br /&gt;
      &amp;quot;conexiones_val&amp;quot;: 0,&lt;br /&gt;
      &amp;quot;conexiones_max_periodo&amp;quot;: 0,&lt;br /&gt;
      &amp;quot;hilos_val&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;hilos_max&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;wsi_cad&amp;quot;: &amp;quot;sesiones=0/200&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;alarmas_nivel_max&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;alarmas&amp;quot;: []&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es relevante la monitorización de sesiones  &amp;lt;code&amp;gt;&amp;quot;wsi_cad&amp;quot;: &amp;quot;sesiones=0/200&amp;quot;&amp;lt;/code&amp;gt; (usadas/máximas)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
asterisk -rv | grep callsquare_name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::en nodo Omnisuite&lt;br /&gt;
::para canal voz&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/xcally/agi-combined.yyyy-mm-dd.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::en nodo Omnisuite&lt;br /&gt;
::para canal voz&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/xcally/routing-combined.yyyy-mm-dd.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::para canal voz&lt;br /&gt;
&lt;br /&gt;
== Para probar desde vFlow ==&lt;br /&gt;
&lt;br /&gt;
En /home/sat/vFlowProxy hay scripts de prueba (se configuran en el vars.sh); para usar los scripts de prueba tendremos que tener también &amp;quot;.ini&amp;quot; en vFlow&lt;br /&gt;
&lt;br /&gt;
Es útil comenzar con&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/home/sat/vFlowProxy/vFlowGetInfo.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
que sin parámetros adicionales confirma el correcto estado de vFlowProxy&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
  &amp;quot;app&amp;quot;: &amp;quot;vFlowProxy&amp;quot;,&lt;br /&gt;
  &amp;quot;version&amp;quot;: &amp;quot;00.00.01&amp;quot;,&lt;br /&gt;
  &amp;quot;sessions_opened&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;sessions_limit&amp;quot;: 200,&lt;br /&gt;
  &amp;quot;sessions_sleep_timeout_s&amp;quot;: 3600,&lt;br /&gt;
  &amp;quot;alarms&amp;quot;: 8&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Integración de vFlow desde Omnisuite ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Descripción general ===&lt;br /&gt;
En Omnisuite, la integración con vFlow, se realiza con el programa vFlowOmnisuite, que podrá ser invocado como ejecutable (más rápido, para debian), o como Python (más universal)&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
    /usr/local/sbin/vFlowOmnisuite (OPCIÓN PREFERENTE)&lt;br /&gt;
    /usr/local/sbin/vFlowOmnisuite.py (LEGACY)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Asociado al programa existen los siguientes ficheros de configuración (.ini):&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; de plataforma''' Omnisuite en vFlow --&amp;gt; Solo contiene uuid de la plataforma; se entrega un &amp;quot;.ini&amp;quot; a modo de ejemplo en &amp;lt;code&amp;gt;/etc/MDtel/vFlow/platform.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE PLATAFORMA&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
   [uuids]&lt;br /&gt;
   platform=1d111530-e22d-11f0-b0f2-5254008bef96&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; por agente''' en vFlow --&amp;gt; Solo contiene uuid del agente según su identificación en vFlow ('''NO''' en un orquestador, por ejemplo flowise); se entrega un &amp;quot;.ini&amp;quot; asociado a un agente &amp;quot;loop&amp;quot; existente en Flowise &amp;lt;code&amp;gt;/etc/MDtel/vFlow/agent_loop_01.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE AGENTE&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
   [uuids]&lt;br /&gt;
   agent=1a3a1020-ea1d-11f0-b4a5-5254008bef96&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; por servicio''' --&amp;gt; Configuración de cada servicio en Omnisuite; se entrega un &amp;quot;.ini&amp;quot; a modo de ejemplo en &amp;lt;code&amp;gt;/etc/MDtel/vFlow/service.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
En cada fichero de servicio configuraremos&lt;br /&gt;
::* Donde está Vflow&lt;br /&gt;
::* Agente&lt;br /&gt;
::* Plataforma&lt;br /&gt;
::* timeout_s --&amp;gt; Importante, es afectado por el LLM&lt;br /&gt;
::* channel_text_type --&amp;gt; IMPORTANTE si el servicio es de texto que esté bien (vacio solo si el servicio es de texto, NO COMENTARLO)&lt;br /&gt;
::* environment --&amp;gt; production, staging, test&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE SERVICIO&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
  [arch_uuids]&lt;br /&gt;
  agent=/etc/MDtel/vFlow/agent_loop_01.ini&lt;br /&gt;
  platform=/etc/MDtel/vFlow/platform.ini&lt;br /&gt;
&lt;br /&gt;
  [vflow]&lt;br /&gt;
  host_port=172.25.129.242:7900&lt;br /&gt;
  timeout_s=20&lt;br /&gt;
  # channel_type=[voice|chat|email]&lt;br /&gt;
  channel_type=chat&lt;br /&gt;
  # environment=[production|staging|test]&lt;br /&gt;
  environment=production&lt;br /&gt;
  language=es&lt;br /&gt;
&lt;br /&gt;
  [omnisuite]&lt;br /&gt;
  # channel_text_type=[chat|mail|sms|whatsup]&lt;br /&gt;
  channel_text_type=chat&lt;br /&gt;
  service_id=vflow_service_id&lt;br /&gt;
  service_name=vflow_service_name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La imagen siguiente muestra el esquema de relación entre orquestador/plataforma/agente/servicio en la plataforma y en vFlow&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Relaciones vFlow plat orq ag serv.png|800px|miniaturadeimagen|centro|Relación orquestador-plataforma-agente-servicio]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Invocación ===&lt;br /&gt;
=== Generales ===&lt;br /&gt;
&lt;br /&gt;
Ver configuración&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; configPrint &amp;lt;omnisuite_UniqueId&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
Configuration:&lt;br /&gt;
  agent_arch_uuid=/etc/MDtel/vFlow/agent_fse_rapido.ini&lt;br /&gt;
  agent_uuid=3487af28-1d14-11f1-803c-525400ef204c&lt;br /&gt;
  platform_arch_uuid=/etc/MDtel/vFlow/platform_labomsui.ini&lt;br /&gt;
  platform_uuid=9a54ea74-f050-11f0-bdf1-5254008bef96&lt;br /&gt;
&lt;br /&gt;
  vflow_host_port=labvflow.mdnova.local&lt;br /&gt;
  vflow_timeout_s=50&lt;br /&gt;
  vflow_environment=production&lt;br /&gt;
  vflow_channel_type=voice&lt;br /&gt;
  vflow_language=es&lt;br /&gt;
&lt;br /&gt;
  omnisuite_channel_text_type=chat&lt;br /&gt;
  omnisuite_service_id=287&lt;br /&gt;
  omnisuite_service_name=desarrollo&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;errorCad&amp;quot;: &amp;quot;OK&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ver versión&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Para canales de texto ====&lt;br /&gt;
&lt;br /&gt;
Para canales de texto en Omnisuite existe un único Comando de invocación &amp;quot;omnisuiteText&amp;quot;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; omnisuiteText &amp;lt;omnisuite_id&amp;gt; &amp;lt;omnisuite_websiteId&amp;gt; &amp;lt;omnisuite_createdAt&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt; &amp;lt;question&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros ( Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Obligatoriedad !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;config_arch&amp;gt;` || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_id&amp;gt;` || OBLIGATORIO || Identificativo de la interacción en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_websiteId&amp;gt;` || OBLIGATORIO || Identificativo del servicio en Omnisuite (ej. website id en chat)&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_createdAt&amp;gt;` || OBLIGATORIO || Creación de la interacción&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_id&amp;gt;` || OPCIONAL || Id de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_phone_number&amp;gt;` || OPCIONAL || Telf de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_email&amp;gt;` || OPCIONAL || Email de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;question&amp;gt;` || OBLIGATORIO || Texto a enviar al orquestado (p. ej. Flowise)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
 &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
 &amp;quot;session&amp;quot;: &amp;quot;e926548d-fdcf-11f0-a793-525400ef204c&amp;quot;,&lt;br /&gt;
 &amp;quot;language&amp;quot;: &amp;quot;es&amp;quot;,&lt;br /&gt;
 &amp;quot;response&amp;quot;: &amp;quot;HOLA&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Para canales de voz ====&lt;br /&gt;
Para  canales de voz, existen comandos para &amp;quot;abrir sesión&amp;quot;, &amp;quot;enviar texto&amp;quot; y &amp;quot;cerrar sesión&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Abrir sesión =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; sessionOpen &amp;lt;omnisuite_UniqueId&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros (Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Requisito !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;omnisuite_UniqueId&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Unique_ID de asterisk de la llamada en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_id&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Id de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_phone_number&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Telf de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_email&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Email de cliente en Omnisuite&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
    &amp;quot;session&amp;quot;: &amp;quot;ec73df29-f08a-11f0-a8ec-525400ef204c&amp;quot;,&lt;br /&gt;
    &amp;quot;platform_id&amp;quot;: &amp;quot;146&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''El value correspondiente al key &amp;quot;session&amp;quot; deberá ser guardado en una variable para siguientes invocaciones'''&lt;br /&gt;
&lt;br /&gt;
===== Enviar texto =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 700px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; textRequest &amp;lt;vflow_session_uuid&amp;gt; &amp;lt;question&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Requisito !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_session_uuid&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Variable &amp;quot;session&amp;quot; almacenada en el &amp;quot;sessionOpen&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;question&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Texto a enviar al orquestado (p. ej. Flowise) (normal, abandoned, other)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
    &amp;quot;session&amp;quot;: &amp;quot;c6f6fad7-f6c1-11f0-a793-525400ef204c&amp;quot;,&lt;br /&gt;
    &amp;quot;language&amp;quot;: &amp;quot;ES&amp;quot;,&lt;br /&gt;
    &amp;quot;response&amp;quot;: &amp;quot;Cristóbal Colón.&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Cerrar sesión=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 800px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; sessionClose &amp;lt;vflow_session_uuid&amp;gt; &amp;lt;vflow_cause&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros  (Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Estado !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_session_uuid&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Variable &amp;quot;session&amp;quot; almacenada en el &amp;quot;sessionOpen&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_cause&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || (normal, abandoned, expired, other)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 104,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;Wrong session&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ejemplos para omnisuite ===&lt;br /&gt;
&lt;br /&gt;
'''Ejemplo de chat'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 1400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_chat.ini&amp;quot; &amp;quot;omnisuiteText&amp;quot; &amp;quot;{{interaction.id}}&amp;quot; &amp;quot;{{account.id}}&amp;quot; &amp;quot;{{interaction.createdAt}}&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;{{message.body}}&amp;quot; | jq -r '.response'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Ejemplo de voz'''&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen cally square.jpg|1024px|none|miniatura|Ejemplo de flujo de Cally Square]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 1000px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_voice.ini&amp;quot; &amp;quot;sessionOpen&amp;quot; &amp;quot;{UNIQUEID}&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; |  jq -r '.session' &amp;lt;/pre&amp;gt;&lt;br /&gt;
::&amp;lt;small&amp;gt;salida del comando almacenado en variable &amp;quot;vflow_sessionopen_response&amp;quot; para su posterior uso en cally square&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen sessionopen.jpg|550px|center|miniatura|Abrir sesión en vFlow]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 1400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_desa_voz.ini&amp;quot; &amp;quot;textRequest&amp;quot; &amp;quot;{vflow_sessionopen_response}&amp;quot; &amp;quot;{OPENAI_WHISPER_TRANSCRIPT}&amp;quot; | jq -r '.response'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::&amp;lt;small&amp;gt;la voz se ha transcrito con OpenAI, por eso se usa como parámetro {OPENAI_WHISPER_TRANSCRIPT})&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen textrequest.jpg|550px|center|miniatura|Enviar texto en vFlow]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 1000px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt; &lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_desa_voz.ini&amp;quot; &amp;quot;sessionClose&amp;quot; &amp;quot;{{vflow_sessionopen_response}}&amp;quot; &amp;quot;normal&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen sessionclose.jpg|900px|center|miniatura|Cerrar sesión en vFlow]]&lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:VIVAit Call]]&lt;br /&gt;
[[Category:Omnisuite]]&lt;br /&gt;
[[Category:IA]]&lt;/div&gt;</summary>
		<author><name>Alfredo.rodriguez</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_de_vFlow&amp;diff=17185</id>
		<title>Manual de operación de vFlow</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_de_vFlow&amp;diff=17185"/>
		<updated>2026-03-24T11:14:24Z</updated>

		<summary type="html">&lt;p&gt;Alfredo.rodriguez: /* Para canales de texto */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Descripción general vFlow ==&lt;br /&gt;
&lt;br /&gt;
vFlow es un módulo de conexión a sistemas de inteligencia artifical para sistemas de comunicaciones unificadas, ya sean sistemas corporativos o contact center&lt;br /&gt;
Gracias a vFlow, las plataformas de UC dispondrán de una solución para comunicarse con sistemas IA utilizando un mismo mecanismo independientemente de la solución de inteligencia artificial que se utilice&lt;br /&gt;
&lt;br /&gt;
Para proporcionar el servicio de manera completa, vFlow (en concreto el orquestador) se conectará a sistemas de inteligencia artificial (LLM) que permitirán desarrollar los agentes definidos en los orquestadores&lt;br /&gt;
&lt;br /&gt;
'''Conceptos:'''&lt;br /&gt;
* Plataforma&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Plataforma de comunicaciones unificadas; por ejemplo Omnisuite o VIVAit Call&lt;br /&gt;
* Orquestador&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Plataforma agéntica de IA (por ejemplo Flowise)&lt;br /&gt;
* vFlowProxy&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Módulo VIVAit que conecta multiples plataformas con múltiples orquestadores&lt;br /&gt;
* LLM&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Modelo de lenguaje natural que usará un orquestadores&lt;br /&gt;
* Agente&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Cada uno de los flujos creados en vFlow; corresponde a un par plataforma/agentflow de orquestador&lt;br /&gt;
* Servicio&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Cada elemento de negocio en la plataforma de CU (por ejemplo VDN)&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Arquitectura Vflow - v2.jpg|1000px|center|Arquitecura de vFlow]]&lt;br /&gt;
&lt;br /&gt;
Los '''módulos principales''' de vFlow son:&lt;br /&gt;
* vFlowProxy: Recibe las conexiones de los sistemas de comunicaciones unificadas, y conecta con los orquestadores de Inteligencia Artificial de manera segura y adaptada al tipo de servicio; el acceso a vFlow Proxy desde las plataformas se realizará mediante:&lt;br /&gt;
* Programa cliente: Se utiliza en el sistema de comunicaciones unificadas (actualmente VIVAit Call y Omnsisuite) para invocar a vFlow&lt;br /&gt;
* API REST: Alternativa al programa cliente, vFlowProxy proporciona una API REST que facilita que cualquier plataforma pueda comunicarse mediante un procedimiento estándar y documentado&lt;br /&gt;
* Portal de administración vFlow: Permite visualizar las interaciones realizadas y configurar el sistema&lt;br /&gt;
* Orquestador de IA: Herramienta de Inteligencia Artificial que permitirá la creación de aplicaciones personalizadas (agentes)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Otros elementos''' relevantes serán:&lt;br /&gt;
* Base de datos vFlow:&lt;br /&gt;
:* Almacena información sobre sesiones y transacciones realizadas&lt;br /&gt;
:* Almacena información de configuración sobre vFlow&lt;br /&gt;
:* Gestiona el RAG de las inteligencias artificiales a usar&lt;br /&gt;
&lt;br /&gt;
== Puesta en marcha de nodo vFlow ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Existe un nodo vFlow en los repositorios habituales proporcionados&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para '''dar de alta nodo vflow en un cliente''' hay que:&lt;br /&gt;
* Configurar IP (por defecto la maquina va configurada por DHCP)&lt;br /&gt;
* Adaptar el firewall, para ello REVISAR el fichero &amp;lt;code&amp;gt;/etc/firewall/vars.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
* Certificados validos en apache&lt;br /&gt;
* REVISAR ficheros &amp;lt;code&amp;gt;/etc/apache2/sites-enabled/flowise.conf&amp;lt;/code&amp;gt; y &amp;lt;code&amp;gt;/etc/apache2/sites-enabled/vFlow.conf&amp;lt;/code&amp;gt; la variable &amp;lt;code&amp;gt;ServerName&amp;lt;/code&amp;gt; (nombre valido de la maquina)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Accesos vFlow''' (se debe cambiar tras instalación):&lt;br /&gt;
* Usuario ssh y de SO por defecto es sat y clave a proporcionar.&lt;br /&gt;
* Para el portal de flowise las credenciales son usuario: vfloadmin@vflow.com clave: A proporcionar&lt;br /&gt;
* Para el portal de vflow las credenciales son usaurio sat y clave a proporcionar.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Accesos BBDD vFlow'''&lt;br /&gt;
* Para acceder a la base de datos desde el workbenck solo desde localhost (o tunel):&lt;br /&gt;
* BBDD Vlfow (admin)  vflowadmin // clave a proporcionar&lt;br /&gt;
* BBDD Vlfow (no_admin)  vflow //  clave a proporcionar&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Portal orquestador Flowise'''&lt;br /&gt;
&lt;br /&gt;
ubicado en https://host.cliente.xx:4567&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #fef6e7; border: 1px solid #fbd68a; padding: 1em; border-radius: 4px;width: fit-content; margin-left: 50px&amp;quot;&amp;gt;&lt;br /&gt;
'''⚠️ ATENCION !!'''&lt;br /&gt;
'''Los cambios en tablas de configuración de BBDD de vFlow (orquestadores, plataformas, agentes) requieren reinicio del servicio vFlowProxy'''&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', 'Monaco', 'Courier New', monospace;&amp;quot;&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service status&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service stop&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service start&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El fichero de configuración del demonio &amp;lt;cvode&amp;gt;vFlowProxy&amp;lt;/code&amp;gt; se encuentra en &amp;lt;code&amp;gt;/etc/MDtel/vFlowProxy.conf&amp;lt;/code&amp;gt;, si bien este fichero de configuración no se modificará habitualmente (los parámetros generales de configuración de vFlowProxy se encuentran en la BBDD de vFlow)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Relevante para poder '''poner en marcha un loader''':&lt;br /&gt;
* Subir el fichero inicial previamente a la carpeta destino según entorno (p. ej &amp;lt;code&amp;gt;/var/www/html/storages/production&amp;lt;/code&amp;gt;&lt;br /&gt;
* Tipo de loader --&amp;gt; API&lt;br /&gt;
* Método --&amp;gt; GET&lt;br /&gt;
* URL --&amp;gt; (ejemplo: http://172.25.129.242/storages/test/fichero-pru.txt)&lt;br /&gt;
::* Existirán URL &amp;quot;production&amp;quot;, &amp;quot;staging&amp;quot; y &amp;quot;test&amp;quot;&lt;br /&gt;
* Text Splitter: Recursive&lt;br /&gt;
* Qdrant --&amp;gt; localhost:6333&lt;br /&gt;
* Record Manager --&amp;gt; SQLite&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Se adjunta imagen a modo de ejemplo&lt;br /&gt;
[[Archivo:Alta loader vflow.png|800px|miniaturadeimagen|no|alta loader vFlow|link=]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gestión en vFlow ==&lt;br /&gt;
vFlow prevé la existencia de tres entornos que permita hacer una gestión segura de agentes y RAG:&lt;br /&gt;
&lt;br /&gt;
* Producción&lt;br /&gt;
* Preproducción&lt;br /&gt;
* Pruebas&lt;br /&gt;
&lt;br /&gt;
Para cada agente o store de RAG se podrá desplegar un entorno (producción), dos o los tres entornos&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #f0fff4; border: 3px solid #c6f6d5; padding: 1em; border-radius: 4px;width: fit-content; margin-left: 0px&amp;quot;&amp;gt;&lt;br /&gt;
✅ '''Recomendación'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En la mayoría de los casos con disponer de entorno de producción y preproducción tanto para agente como para RAG será suficiente&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Para realizar una gestión completa en vFlow (suponiendo tres entornos y gestión de agentes y RAG), deberemos tener&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Archivo:Gestión RAG.png|1000px|miniaturadeimagen|centro|Gestión RAG en vFlow|link=]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''En orquestador'''&lt;br /&gt;
* Crear '''tres stores''' (pro/pre/pru); en cada store:&lt;br /&gt;
::* En total '''tres loaders'''. Crear un loader por entorno (p.ej /pro/nombrefich). &lt;br /&gt;
::* Subir un primer &amp;quot;nombrefich&amp;quot;&lt;br /&gt;
::::* tipo texto (versión 0)&lt;br /&gt;
::::* el mismo para todos los entornos&lt;br /&gt;
::::* se sube por medios convencionales (p. ej SCP)&lt;br /&gt;
* Asegurar que los stores queden totalmente creados (estado &amp;quot;UPSERTED&amp;quot;)&lt;br /&gt;
* Crear '''tres agentes''' (pro/pre/pru)&lt;br /&gt;
::* Asociar a stores (pro/pre/pru)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''En flow'''&lt;br /&gt;
* Crear '''un agente'''&lt;br /&gt;
::* Vincularlo a los tres agentes de orquestador (pro/pre/pru)&lt;br /&gt;
* Crear '''un store'''&lt;br /&gt;
::* Vinculado a los tres stores de orquestador (pro/pre/pru)&lt;br /&gt;
* Crear '''un loader'''&lt;br /&gt;
::* Loader vinculado a agente de vflow&lt;br /&gt;
::* C_NAME loader coincidirá con los de orquestador (p.ej &amp;quot;nombrefich&amp;quot;)&lt;br /&gt;
::* Subir nueva versión v1 (&amp;quot;.txt&amp;quot;, &amp;quot;.pdf&amp;quot;, &amp;quot;.doc&amp;quot;, &amp;quot;.docx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Diagnósticos ==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/vFlowProxy/vFlowProxy.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En nodo vFlowProxy&lt;br /&gt;
::para cualquier canal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
nc localhost 1131&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En nodo vFlowProxy&lt;br /&gt;
::Monitoriza estado del proceso vflowProxy&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
  &amp;quot;proceso&amp;quot;: {&lt;br /&gt;
    &amp;quot;nombre&amp;quot;: &amp;quot;vFlowProxy&amp;quot;,&lt;br /&gt;
    &amp;quot;version&amp;quot;: &amp;quot;00.00.01&amp;quot;,&lt;br /&gt;
    &amp;quot;inicio_ts&amp;quot;: 1771315153,&lt;br /&gt;
    &amp;quot;inicio_cad&amp;quot;: &amp;quot;20260217 085913&amp;quot;,&lt;br /&gt;
    &amp;quot;log_alarmas_val&amp;quot;: 8,&lt;br /&gt;
    &amp;quot;log_alarma_ultimo_ts&amp;quot;: 1771970401,&lt;br /&gt;
    &amp;quot;log_alarma_ultimo_ts_cad&amp;quot;: &amp;quot;20260224 230001&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;diagnostico&amp;quot;: {&lt;br /&gt;
    &amp;quot;gmp&amp;quot;: {&lt;br /&gt;
      &amp;quot;msj_val&amp;quot;: 1022,&lt;br /&gt;
      &amp;quot;msj_max&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;buf_val&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;buf_max&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;tarea_val&amp;quot;: 7,&lt;br /&gt;
      &amp;quot;tarea_max&amp;quot;: 15&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;tiempo&amp;quot;: {&lt;br /&gt;
      &amp;quot;uptime&amp;quot;: 716665,&lt;br /&gt;
      &amp;quot;uptime_dias&amp;quot;: 8,&lt;br /&gt;
      &amp;quot;uptime_horas&amp;quot;: 7,&lt;br /&gt;
      &amp;quot;uptime_minutos&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;uptime_segundos&amp;quot;: 25&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;wws&amp;quot;: {&lt;br /&gt;
      &amp;quot;conexiones_val&amp;quot;: 0,&lt;br /&gt;
      &amp;quot;conexiones_max_periodo&amp;quot;: 0,&lt;br /&gt;
      &amp;quot;hilos_val&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;hilos_max&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;wsi_cad&amp;quot;: &amp;quot;sesiones=0/200&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;alarmas_nivel_max&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;alarmas&amp;quot;: []&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es relevante la monitorización de sesiones  &amp;lt;code&amp;gt;&amp;quot;wsi_cad&amp;quot;: &amp;quot;sesiones=0/200&amp;quot;&amp;lt;/code&amp;gt; (usadas/máximas)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
asterisk -rv | grep callsquare_name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::en nodo Omnisuite&lt;br /&gt;
::para canal voz&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/xcally/agi-combined.yyyy-mm-dd.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::en nodo Omnisuite&lt;br /&gt;
::para canal voz&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/xcally/routing-combined.yyyy-mm-dd.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::para canal voz&lt;br /&gt;
&lt;br /&gt;
== Para probar desde vFlow ==&lt;br /&gt;
&lt;br /&gt;
En /home/sat/vFlowProxy hay scripts de prueba (se configuran en el vars.sh); para usar los scripts de prueba tendremos que tener también &amp;quot;.ini&amp;quot; en vFlow&lt;br /&gt;
&lt;br /&gt;
Es útil comenzar con&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/home/sat/vFlowProxy/vFlowGetInfo.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
que sin parámetros adicionales confirma el correcto estado de vFlowProxy&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
  &amp;quot;app&amp;quot;: &amp;quot;vFlowProxy&amp;quot;,&lt;br /&gt;
  &amp;quot;version&amp;quot;: &amp;quot;00.00.01&amp;quot;,&lt;br /&gt;
  &amp;quot;sessions_opened&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;sessions_limit&amp;quot;: 200,&lt;br /&gt;
  &amp;quot;sessions_sleep_timeout_s&amp;quot;: 3600,&lt;br /&gt;
  &amp;quot;alarms&amp;quot;: 8&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Integración de vFlow desde Omnisuite ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Descripción general ===&lt;br /&gt;
En Omnisuite, la integración con vFlow, se realiza con el programa vFlowOmnisuite, que podrá ser invocado como ejecutable (más rápido, para debian), o como Python (más universal)&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
    /usr/local/sbin/vFlowOmnisuite (OPCIÓN PREFERENTE)&lt;br /&gt;
    /usr/local/sbin/vFlowOmnisuite.py (LEGACY)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Asociado al programa existen los siguientes ficheros de configuración (.ini):&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; de plataforma''' Omnisuite en vFlow --&amp;gt; Solo contiene uuid de la plataforma; se entrega un &amp;quot;.ini&amp;quot; a modo de ejemplo en &amp;lt;code&amp;gt;/etc/MDtel/vFlow/platform.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE PLATAFORMA&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
   [uuids]&lt;br /&gt;
   platform=1d111530-e22d-11f0-b0f2-5254008bef96&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; por agente''' en vFlow --&amp;gt; Solo contiene uuid del agente según su identificación en vFlow ('''NO''' en un orquestador, por ejemplo flowise); se entrega un &amp;quot;.ini&amp;quot; asociado a un agente &amp;quot;loop&amp;quot; existente en Flowise &amp;lt;code&amp;gt;/etc/MDtel/vFlow/agent_loop_01.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE AGENTE&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
   [uuids]&lt;br /&gt;
   agent=1a3a1020-ea1d-11f0-b4a5-5254008bef96&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; por servicio''' --&amp;gt; Configuración de cada servicio en Omnisuite; se entrega un &amp;quot;.ini&amp;quot; a modo de ejemplo en &amp;lt;code&amp;gt;/etc/MDtel/vFlow/service.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
En cada fichero de servicio configuraremos&lt;br /&gt;
::* Donde está Vflow&lt;br /&gt;
::* Agente&lt;br /&gt;
::* Plataforma&lt;br /&gt;
::* timeout_s --&amp;gt; Importante, es afectado por el LLM&lt;br /&gt;
::* channel_text_type --&amp;gt; IMPORTANTE si el servicio es de texto que esté bien (vacio solo si el servicio es de texto, NO COMENTARLO)&lt;br /&gt;
::* environment --&amp;gt; production, staging, test&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE SERVICIO&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
  [arch_uuids]&lt;br /&gt;
  agent=/etc/MDtel/vFlow/agent_loop_01.ini&lt;br /&gt;
  platform=/etc/MDtel/vFlow/platform.ini&lt;br /&gt;
&lt;br /&gt;
  [vflow]&lt;br /&gt;
  host_port=172.25.129.242:7900&lt;br /&gt;
  timeout_s=20&lt;br /&gt;
  # channel_type=[voice|chat|email]&lt;br /&gt;
  channel_type=chat&lt;br /&gt;
  # environment=[production|staging|test]&lt;br /&gt;
  environment=production&lt;br /&gt;
  language=es&lt;br /&gt;
&lt;br /&gt;
  [omnisuite]&lt;br /&gt;
  # channel_text_type=[chat|mail|sms|whatsup]&lt;br /&gt;
  channel_text_type=chat&lt;br /&gt;
  service_id=vflow_service_id&lt;br /&gt;
  service_name=vflow_service_name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La imagen siguiente muestra el esquema de relación entre orquestador/plataforma/agente/servicio en la plataforma y en vFlow&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Relaciones vFlow plat orq ag serv.png|800px|miniaturadeimagen|centro|Relación orquestador-plataforma-agente-servicio]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Invocación ===&lt;br /&gt;
=== Generales ===&lt;br /&gt;
&lt;br /&gt;
Ver configuración&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; configPrint &amp;lt;omnisuite_UniqueId&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
Configuration:&lt;br /&gt;
  agent_arch_uuid=/etc/MDtel/vFlow/agent_fse_rapido.ini&lt;br /&gt;
  agent_uuid=3487af28-1d14-11f1-803c-525400ef204c&lt;br /&gt;
  platform_arch_uuid=/etc/MDtel/vFlow/platform_labomsui.ini&lt;br /&gt;
  platform_uuid=9a54ea74-f050-11f0-bdf1-5254008bef96&lt;br /&gt;
&lt;br /&gt;
  vflow_host_port=labvflow.mdnova.local&lt;br /&gt;
  vflow_timeout_s=50&lt;br /&gt;
  vflow_environment=production&lt;br /&gt;
  vflow_channel_type=voice&lt;br /&gt;
  vflow_language=es&lt;br /&gt;
&lt;br /&gt;
  omnisuite_channel_text_type=chat&lt;br /&gt;
  omnisuite_service_id=287&lt;br /&gt;
  omnisuite_service_name=desarrollo&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;errorCad&amp;quot;: &amp;quot;OK&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ver versión&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Para canales de texto ====&lt;br /&gt;
&lt;br /&gt;
Para canales de texto en Omnisuite existe un único Comando de invocación &amp;quot;omnisuiteText&amp;quot;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; omnisuiteText &amp;lt;omnisuite_id&amp;gt; &amp;lt;omnisuite_websiteId&amp;gt; &amp;lt;omnisuite_createdAt&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt; &amp;lt;question&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros ( Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Obligatoriedad !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;config_arch&amp;gt;` || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_id&amp;gt;` || OBLIGATORIO || Identificativo de la interacción en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_websiteId&amp;gt;` || OBLIGATORIO || Identificativo del servicio en Omnisuite (ej. website id en chat)&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_createdAt&amp;gt;` || OBLIGATORIO || Creación de la interacción&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_id&amp;gt;` || OPCIONAL || Id de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_phone_number&amp;gt;` || OPCIONAL || Telf de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_email&amp;gt;` || OPCIONAL || Email de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;question&amp;gt;` || OBLIGATORIO || Texto a enviar al orquestado (p. ej. Flowise)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
 &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
 &amp;quot;session&amp;quot;: &amp;quot;e926548d-fdcf-11f0-a793-525400ef204c&amp;quot;,&lt;br /&gt;
 &amp;quot;language&amp;quot;: &amp;quot;es&amp;quot;,&lt;br /&gt;
 &amp;quot;response&amp;quot;: &amp;quot;HOLA&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Para canales de voz ====&lt;br /&gt;
Para  canales de voz, existen comandos para &amp;quot;abrir sesión&amp;quot;, &amp;quot;enviar texto&amp;quot; y &amp;quot;cerrar sesión&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Abrir sesión =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 1200px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; sessionOpen &amp;lt;omnisuite_UniqueId&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros (Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Requisito !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;omnisuite_UniqueId&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Unique_ID de asterisk de la llamada en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_id&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Id de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_phone_number&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Telf de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_email&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Email de cliente en Omnisuite&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
    &amp;quot;session&amp;quot;: &amp;quot;ec73df29-f08a-11f0-a8ec-525400ef204c&amp;quot;,&lt;br /&gt;
    &amp;quot;platform_id&amp;quot;: &amp;quot;146&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''El value correspondiente al key &amp;quot;session&amp;quot; deberá ser guardado en una variable para siguientes invocaciones'''&lt;br /&gt;
&lt;br /&gt;
===== Enviar texto =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 700px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; textRequest &amp;lt;vflow_session_uuid&amp;gt; &amp;lt;question&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Requisito !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_session_uuid&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Variable &amp;quot;session&amp;quot; almacenada en el &amp;quot;sessionOpen&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;question&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Texto a enviar al orquestado (p. ej. Flowise) (normal, abandoned, other)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
    &amp;quot;session&amp;quot;: &amp;quot;c6f6fad7-f6c1-11f0-a793-525400ef204c&amp;quot;,&lt;br /&gt;
    &amp;quot;language&amp;quot;: &amp;quot;ES&amp;quot;,&lt;br /&gt;
    &amp;quot;response&amp;quot;: &amp;quot;Cristóbal Colón.&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Cerrar sesión=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 800px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; sessionClose &amp;lt;vflow_session_uuid&amp;gt; &amp;lt;vflow_cause&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros  (Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Estado !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_session_uuid&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Variable &amp;quot;session&amp;quot; almacenada en el &amp;quot;sessionOpen&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_cause&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || (normal, abandoned, expired, other)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 104,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;Wrong session&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ejemplos para omnisuite ===&lt;br /&gt;
&lt;br /&gt;
'''Ejemplo de chat'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 1400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_chat.ini&amp;quot; &amp;quot;omnisuiteText&amp;quot; &amp;quot;{{interaction.id}}&amp;quot; &amp;quot;{{account.id}}&amp;quot; &amp;quot;{{interaction.createdAt}}&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;{{message.body}}&amp;quot; | jq -r '.response'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Ejemplo de voz'''&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen cally square.jpg|1024px|none|miniatura|Ejemplo de flujo de Cally Square]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 1000px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_voice.ini&amp;quot; &amp;quot;sessionOpen&amp;quot; &amp;quot;{UNIQUEID}&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; |  jq -r '.session' &amp;lt;/pre&amp;gt;&lt;br /&gt;
::&amp;lt;small&amp;gt;salida del comando almacenado en variable &amp;quot;vflow_sessionopen_response&amp;quot; para su posterior uso en cally square&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen sessionopen.jpg|550px|center|miniatura|Abrir sesión en vFlow]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 1400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_desa_voz.ini&amp;quot; &amp;quot;textRequest&amp;quot; &amp;quot;{vflow_sessionopen_response}&amp;quot; &amp;quot;{OPENAI_WHISPER_TRANSCRIPT}&amp;quot; | jq -r '.response'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::&amp;lt;small&amp;gt;la voz se ha transcrito con OpenAI, por eso se usa como parámetro {OPENAI_WHISPER_TRANSCRIPT})&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen textrequest.jpg|550px|center|miniatura|Enviar texto en vFlow]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 1000px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt; &lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_desa_voz.ini&amp;quot; &amp;quot;sessionClose&amp;quot; &amp;quot;{{vflow_sessionopen_response}}&amp;quot; &amp;quot;normal&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen sessionclose.jpg|900px|center|miniatura|Cerrar sesión en vFlow]]&lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:VIVAit Call]]&lt;br /&gt;
[[Category:Omnisuite]]&lt;br /&gt;
[[Category:IA]]&lt;/div&gt;</summary>
		<author><name>Alfredo.rodriguez</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_de_vFlow&amp;diff=17184</id>
		<title>Manual de operación de vFlow</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_de_vFlow&amp;diff=17184"/>
		<updated>2026-03-24T11:14:13Z</updated>

		<summary type="html">&lt;p&gt;Alfredo.rodriguez: /* Generales */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Descripción general vFlow ==&lt;br /&gt;
&lt;br /&gt;
vFlow es un módulo de conexión a sistemas de inteligencia artifical para sistemas de comunicaciones unificadas, ya sean sistemas corporativos o contact center&lt;br /&gt;
Gracias a vFlow, las plataformas de UC dispondrán de una solución para comunicarse con sistemas IA utilizando un mismo mecanismo independientemente de la solución de inteligencia artificial que se utilice&lt;br /&gt;
&lt;br /&gt;
Para proporcionar el servicio de manera completa, vFlow (en concreto el orquestador) se conectará a sistemas de inteligencia artificial (LLM) que permitirán desarrollar los agentes definidos en los orquestadores&lt;br /&gt;
&lt;br /&gt;
'''Conceptos:'''&lt;br /&gt;
* Plataforma&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Plataforma de comunicaciones unificadas; por ejemplo Omnisuite o VIVAit Call&lt;br /&gt;
* Orquestador&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Plataforma agéntica de IA (por ejemplo Flowise)&lt;br /&gt;
* vFlowProxy&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Módulo VIVAit que conecta multiples plataformas con múltiples orquestadores&lt;br /&gt;
* LLM&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Modelo de lenguaje natural que usará un orquestadores&lt;br /&gt;
* Agente&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Cada uno de los flujos creados en vFlow; corresponde a un par plataforma/agentflow de orquestador&lt;br /&gt;
* Servicio&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Cada elemento de negocio en la plataforma de CU (por ejemplo VDN)&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Arquitectura Vflow - v2.jpg|1000px|center|Arquitecura de vFlow]]&lt;br /&gt;
&lt;br /&gt;
Los '''módulos principales''' de vFlow son:&lt;br /&gt;
* vFlowProxy: Recibe las conexiones de los sistemas de comunicaciones unificadas, y conecta con los orquestadores de Inteligencia Artificial de manera segura y adaptada al tipo de servicio; el acceso a vFlow Proxy desde las plataformas se realizará mediante:&lt;br /&gt;
* Programa cliente: Se utiliza en el sistema de comunicaciones unificadas (actualmente VIVAit Call y Omnsisuite) para invocar a vFlow&lt;br /&gt;
* API REST: Alternativa al programa cliente, vFlowProxy proporciona una API REST que facilita que cualquier plataforma pueda comunicarse mediante un procedimiento estándar y documentado&lt;br /&gt;
* Portal de administración vFlow: Permite visualizar las interaciones realizadas y configurar el sistema&lt;br /&gt;
* Orquestador de IA: Herramienta de Inteligencia Artificial que permitirá la creación de aplicaciones personalizadas (agentes)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Otros elementos''' relevantes serán:&lt;br /&gt;
* Base de datos vFlow:&lt;br /&gt;
:* Almacena información sobre sesiones y transacciones realizadas&lt;br /&gt;
:* Almacena información de configuración sobre vFlow&lt;br /&gt;
:* Gestiona el RAG de las inteligencias artificiales a usar&lt;br /&gt;
&lt;br /&gt;
== Puesta en marcha de nodo vFlow ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Existe un nodo vFlow en los repositorios habituales proporcionados&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para '''dar de alta nodo vflow en un cliente''' hay que:&lt;br /&gt;
* Configurar IP (por defecto la maquina va configurada por DHCP)&lt;br /&gt;
* Adaptar el firewall, para ello REVISAR el fichero &amp;lt;code&amp;gt;/etc/firewall/vars.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
* Certificados validos en apache&lt;br /&gt;
* REVISAR ficheros &amp;lt;code&amp;gt;/etc/apache2/sites-enabled/flowise.conf&amp;lt;/code&amp;gt; y &amp;lt;code&amp;gt;/etc/apache2/sites-enabled/vFlow.conf&amp;lt;/code&amp;gt; la variable &amp;lt;code&amp;gt;ServerName&amp;lt;/code&amp;gt; (nombre valido de la maquina)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Accesos vFlow''' (se debe cambiar tras instalación):&lt;br /&gt;
* Usuario ssh y de SO por defecto es sat y clave a proporcionar.&lt;br /&gt;
* Para el portal de flowise las credenciales son usuario: vfloadmin@vflow.com clave: A proporcionar&lt;br /&gt;
* Para el portal de vflow las credenciales son usaurio sat y clave a proporcionar.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Accesos BBDD vFlow'''&lt;br /&gt;
* Para acceder a la base de datos desde el workbenck solo desde localhost (o tunel):&lt;br /&gt;
* BBDD Vlfow (admin)  vflowadmin // clave a proporcionar&lt;br /&gt;
* BBDD Vlfow (no_admin)  vflow //  clave a proporcionar&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Portal orquestador Flowise'''&lt;br /&gt;
&lt;br /&gt;
ubicado en https://host.cliente.xx:4567&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #fef6e7; border: 1px solid #fbd68a; padding: 1em; border-radius: 4px;width: fit-content; margin-left: 50px&amp;quot;&amp;gt;&lt;br /&gt;
'''⚠️ ATENCION !!'''&lt;br /&gt;
'''Los cambios en tablas de configuración de BBDD de vFlow (orquestadores, plataformas, agentes) requieren reinicio del servicio vFlowProxy'''&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', 'Monaco', 'Courier New', monospace;&amp;quot;&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service status&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service stop&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service start&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El fichero de configuración del demonio &amp;lt;cvode&amp;gt;vFlowProxy&amp;lt;/code&amp;gt; se encuentra en &amp;lt;code&amp;gt;/etc/MDtel/vFlowProxy.conf&amp;lt;/code&amp;gt;, si bien este fichero de configuración no se modificará habitualmente (los parámetros generales de configuración de vFlowProxy se encuentran en la BBDD de vFlow)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Relevante para poder '''poner en marcha un loader''':&lt;br /&gt;
* Subir el fichero inicial previamente a la carpeta destino según entorno (p. ej &amp;lt;code&amp;gt;/var/www/html/storages/production&amp;lt;/code&amp;gt;&lt;br /&gt;
* Tipo de loader --&amp;gt; API&lt;br /&gt;
* Método --&amp;gt; GET&lt;br /&gt;
* URL --&amp;gt; (ejemplo: http://172.25.129.242/storages/test/fichero-pru.txt)&lt;br /&gt;
::* Existirán URL &amp;quot;production&amp;quot;, &amp;quot;staging&amp;quot; y &amp;quot;test&amp;quot;&lt;br /&gt;
* Text Splitter: Recursive&lt;br /&gt;
* Qdrant --&amp;gt; localhost:6333&lt;br /&gt;
* Record Manager --&amp;gt; SQLite&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Se adjunta imagen a modo de ejemplo&lt;br /&gt;
[[Archivo:Alta loader vflow.png|800px|miniaturadeimagen|no|alta loader vFlow|link=]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gestión en vFlow ==&lt;br /&gt;
vFlow prevé la existencia de tres entornos que permita hacer una gestión segura de agentes y RAG:&lt;br /&gt;
&lt;br /&gt;
* Producción&lt;br /&gt;
* Preproducción&lt;br /&gt;
* Pruebas&lt;br /&gt;
&lt;br /&gt;
Para cada agente o store de RAG se podrá desplegar un entorno (producción), dos o los tres entornos&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #f0fff4; border: 3px solid #c6f6d5; padding: 1em; border-radius: 4px;width: fit-content; margin-left: 0px&amp;quot;&amp;gt;&lt;br /&gt;
✅ '''Recomendación'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En la mayoría de los casos con disponer de entorno de producción y preproducción tanto para agente como para RAG será suficiente&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Para realizar una gestión completa en vFlow (suponiendo tres entornos y gestión de agentes y RAG), deberemos tener&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Archivo:Gestión RAG.png|1000px|miniaturadeimagen|centro|Gestión RAG en vFlow|link=]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''En orquestador'''&lt;br /&gt;
* Crear '''tres stores''' (pro/pre/pru); en cada store:&lt;br /&gt;
::* En total '''tres loaders'''. Crear un loader por entorno (p.ej /pro/nombrefich). &lt;br /&gt;
::* Subir un primer &amp;quot;nombrefich&amp;quot;&lt;br /&gt;
::::* tipo texto (versión 0)&lt;br /&gt;
::::* el mismo para todos los entornos&lt;br /&gt;
::::* se sube por medios convencionales (p. ej SCP)&lt;br /&gt;
* Asegurar que los stores queden totalmente creados (estado &amp;quot;UPSERTED&amp;quot;)&lt;br /&gt;
* Crear '''tres agentes''' (pro/pre/pru)&lt;br /&gt;
::* Asociar a stores (pro/pre/pru)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''En flow'''&lt;br /&gt;
* Crear '''un agente'''&lt;br /&gt;
::* Vincularlo a los tres agentes de orquestador (pro/pre/pru)&lt;br /&gt;
* Crear '''un store'''&lt;br /&gt;
::* Vinculado a los tres stores de orquestador (pro/pre/pru)&lt;br /&gt;
* Crear '''un loader'''&lt;br /&gt;
::* Loader vinculado a agente de vflow&lt;br /&gt;
::* C_NAME loader coincidirá con los de orquestador (p.ej &amp;quot;nombrefich&amp;quot;)&lt;br /&gt;
::* Subir nueva versión v1 (&amp;quot;.txt&amp;quot;, &amp;quot;.pdf&amp;quot;, &amp;quot;.doc&amp;quot;, &amp;quot;.docx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Diagnósticos ==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/vFlowProxy/vFlowProxy.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En nodo vFlowProxy&lt;br /&gt;
::para cualquier canal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
nc localhost 1131&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En nodo vFlowProxy&lt;br /&gt;
::Monitoriza estado del proceso vflowProxy&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
  &amp;quot;proceso&amp;quot;: {&lt;br /&gt;
    &amp;quot;nombre&amp;quot;: &amp;quot;vFlowProxy&amp;quot;,&lt;br /&gt;
    &amp;quot;version&amp;quot;: &amp;quot;00.00.01&amp;quot;,&lt;br /&gt;
    &amp;quot;inicio_ts&amp;quot;: 1771315153,&lt;br /&gt;
    &amp;quot;inicio_cad&amp;quot;: &amp;quot;20260217 085913&amp;quot;,&lt;br /&gt;
    &amp;quot;log_alarmas_val&amp;quot;: 8,&lt;br /&gt;
    &amp;quot;log_alarma_ultimo_ts&amp;quot;: 1771970401,&lt;br /&gt;
    &amp;quot;log_alarma_ultimo_ts_cad&amp;quot;: &amp;quot;20260224 230001&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;diagnostico&amp;quot;: {&lt;br /&gt;
    &amp;quot;gmp&amp;quot;: {&lt;br /&gt;
      &amp;quot;msj_val&amp;quot;: 1022,&lt;br /&gt;
      &amp;quot;msj_max&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;buf_val&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;buf_max&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;tarea_val&amp;quot;: 7,&lt;br /&gt;
      &amp;quot;tarea_max&amp;quot;: 15&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;tiempo&amp;quot;: {&lt;br /&gt;
      &amp;quot;uptime&amp;quot;: 716665,&lt;br /&gt;
      &amp;quot;uptime_dias&amp;quot;: 8,&lt;br /&gt;
      &amp;quot;uptime_horas&amp;quot;: 7,&lt;br /&gt;
      &amp;quot;uptime_minutos&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;uptime_segundos&amp;quot;: 25&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;wws&amp;quot;: {&lt;br /&gt;
      &amp;quot;conexiones_val&amp;quot;: 0,&lt;br /&gt;
      &amp;quot;conexiones_max_periodo&amp;quot;: 0,&lt;br /&gt;
      &amp;quot;hilos_val&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;hilos_max&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;wsi_cad&amp;quot;: &amp;quot;sesiones=0/200&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;alarmas_nivel_max&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;alarmas&amp;quot;: []&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es relevante la monitorización de sesiones  &amp;lt;code&amp;gt;&amp;quot;wsi_cad&amp;quot;: &amp;quot;sesiones=0/200&amp;quot;&amp;lt;/code&amp;gt; (usadas/máximas)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
asterisk -rv | grep callsquare_name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::en nodo Omnisuite&lt;br /&gt;
::para canal voz&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/xcally/agi-combined.yyyy-mm-dd.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::en nodo Omnisuite&lt;br /&gt;
::para canal voz&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/xcally/routing-combined.yyyy-mm-dd.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::para canal voz&lt;br /&gt;
&lt;br /&gt;
== Para probar desde vFlow ==&lt;br /&gt;
&lt;br /&gt;
En /home/sat/vFlowProxy hay scripts de prueba (se configuran en el vars.sh); para usar los scripts de prueba tendremos que tener también &amp;quot;.ini&amp;quot; en vFlow&lt;br /&gt;
&lt;br /&gt;
Es útil comenzar con&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/home/sat/vFlowProxy/vFlowGetInfo.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
que sin parámetros adicionales confirma el correcto estado de vFlowProxy&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
  &amp;quot;app&amp;quot;: &amp;quot;vFlowProxy&amp;quot;,&lt;br /&gt;
  &amp;quot;version&amp;quot;: &amp;quot;00.00.01&amp;quot;,&lt;br /&gt;
  &amp;quot;sessions_opened&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;sessions_limit&amp;quot;: 200,&lt;br /&gt;
  &amp;quot;sessions_sleep_timeout_s&amp;quot;: 3600,&lt;br /&gt;
  &amp;quot;alarms&amp;quot;: 8&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Integración de vFlow desde Omnisuite ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Descripción general ===&lt;br /&gt;
En Omnisuite, la integración con vFlow, se realiza con el programa vFlowOmnisuite, que podrá ser invocado como ejecutable (más rápido, para debian), o como Python (más universal)&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
    /usr/local/sbin/vFlowOmnisuite (OPCIÓN PREFERENTE)&lt;br /&gt;
    /usr/local/sbin/vFlowOmnisuite.py (LEGACY)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Asociado al programa existen los siguientes ficheros de configuración (.ini):&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; de plataforma''' Omnisuite en vFlow --&amp;gt; Solo contiene uuid de la plataforma; se entrega un &amp;quot;.ini&amp;quot; a modo de ejemplo en &amp;lt;code&amp;gt;/etc/MDtel/vFlow/platform.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE PLATAFORMA&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
   [uuids]&lt;br /&gt;
   platform=1d111530-e22d-11f0-b0f2-5254008bef96&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; por agente''' en vFlow --&amp;gt; Solo contiene uuid del agente según su identificación en vFlow ('''NO''' en un orquestador, por ejemplo flowise); se entrega un &amp;quot;.ini&amp;quot; asociado a un agente &amp;quot;loop&amp;quot; existente en Flowise &amp;lt;code&amp;gt;/etc/MDtel/vFlow/agent_loop_01.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE AGENTE&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
   [uuids]&lt;br /&gt;
   agent=1a3a1020-ea1d-11f0-b4a5-5254008bef96&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; por servicio''' --&amp;gt; Configuración de cada servicio en Omnisuite; se entrega un &amp;quot;.ini&amp;quot; a modo de ejemplo en &amp;lt;code&amp;gt;/etc/MDtel/vFlow/service.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
En cada fichero de servicio configuraremos&lt;br /&gt;
::* Donde está Vflow&lt;br /&gt;
::* Agente&lt;br /&gt;
::* Plataforma&lt;br /&gt;
::* timeout_s --&amp;gt; Importante, es afectado por el LLM&lt;br /&gt;
::* channel_text_type --&amp;gt; IMPORTANTE si el servicio es de texto que esté bien (vacio solo si el servicio es de texto, NO COMENTARLO)&lt;br /&gt;
::* environment --&amp;gt; production, staging, test&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE SERVICIO&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
  [arch_uuids]&lt;br /&gt;
  agent=/etc/MDtel/vFlow/agent_loop_01.ini&lt;br /&gt;
  platform=/etc/MDtel/vFlow/platform.ini&lt;br /&gt;
&lt;br /&gt;
  [vflow]&lt;br /&gt;
  host_port=172.25.129.242:7900&lt;br /&gt;
  timeout_s=20&lt;br /&gt;
  # channel_type=[voice|chat|email]&lt;br /&gt;
  channel_type=chat&lt;br /&gt;
  # environment=[production|staging|test]&lt;br /&gt;
  environment=production&lt;br /&gt;
  language=es&lt;br /&gt;
&lt;br /&gt;
  [omnisuite]&lt;br /&gt;
  # channel_text_type=[chat|mail|sms|whatsup]&lt;br /&gt;
  channel_text_type=chat&lt;br /&gt;
  service_id=vflow_service_id&lt;br /&gt;
  service_name=vflow_service_name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La imagen siguiente muestra el esquema de relación entre orquestador/plataforma/agente/servicio en la plataforma y en vFlow&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Relaciones vFlow plat orq ag serv.png|800px|miniaturadeimagen|centro|Relación orquestador-plataforma-agente-servicio]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Invocación ===&lt;br /&gt;
=== Generales ===&lt;br /&gt;
&lt;br /&gt;
Ver configuración&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; configPrint &amp;lt;omnisuite_UniqueId&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
Configuration:&lt;br /&gt;
  agent_arch_uuid=/etc/MDtel/vFlow/agent_fse_rapido.ini&lt;br /&gt;
  agent_uuid=3487af28-1d14-11f1-803c-525400ef204c&lt;br /&gt;
  platform_arch_uuid=/etc/MDtel/vFlow/platform_labomsui.ini&lt;br /&gt;
  platform_uuid=9a54ea74-f050-11f0-bdf1-5254008bef96&lt;br /&gt;
&lt;br /&gt;
  vflow_host_port=labvflow.mdnova.local&lt;br /&gt;
  vflow_timeout_s=50&lt;br /&gt;
  vflow_environment=production&lt;br /&gt;
  vflow_channel_type=voice&lt;br /&gt;
  vflow_language=es&lt;br /&gt;
&lt;br /&gt;
  omnisuite_channel_text_type=chat&lt;br /&gt;
  omnisuite_service_id=287&lt;br /&gt;
  omnisuite_service_name=desarrollo&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;errorCad&amp;quot;: &amp;quot;OK&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ver versión&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Para canales de texto ====&lt;br /&gt;
&lt;br /&gt;
Para canales de texto en Omnisuite existe un único Comando de invocación &amp;quot;omnisuiteText&amp;quot;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 1500px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; omnisuiteText &amp;lt;omnisuite_id&amp;gt; &amp;lt;omnisuite_websiteId&amp;gt; &amp;lt;omnisuite_createdAt&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt; &amp;lt;question&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros ( Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Obligatoriedad !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;config_arch&amp;gt;` || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_id&amp;gt;` || OBLIGATORIO || Identificativo de la interacción en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_websiteId&amp;gt;` || OBLIGATORIO || Identificativo del servicio en Omnisuite (ej. website id en chat)&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_createdAt&amp;gt;` || OBLIGATORIO || Creación de la interacción&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_id&amp;gt;` || OPCIONAL || Id de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_phone_number&amp;gt;` || OPCIONAL || Telf de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_email&amp;gt;` || OPCIONAL || Email de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;question&amp;gt;` || OBLIGATORIO || Texto a enviar al orquestado (p. ej. Flowise)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
 &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
 &amp;quot;session&amp;quot;: &amp;quot;e926548d-fdcf-11f0-a793-525400ef204c&amp;quot;,&lt;br /&gt;
 &amp;quot;language&amp;quot;: &amp;quot;es&amp;quot;,&lt;br /&gt;
 &amp;quot;response&amp;quot;: &amp;quot;HOLA&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Para canales de voz ====&lt;br /&gt;
Para  canales de voz, existen comandos para &amp;quot;abrir sesión&amp;quot;, &amp;quot;enviar texto&amp;quot; y &amp;quot;cerrar sesión&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Abrir sesión =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 1200px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; sessionOpen &amp;lt;omnisuite_UniqueId&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros (Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Requisito !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;omnisuite_UniqueId&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Unique_ID de asterisk de la llamada en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_id&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Id de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_phone_number&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Telf de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_email&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Email de cliente en Omnisuite&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
    &amp;quot;session&amp;quot;: &amp;quot;ec73df29-f08a-11f0-a8ec-525400ef204c&amp;quot;,&lt;br /&gt;
    &amp;quot;platform_id&amp;quot;: &amp;quot;146&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''El value correspondiente al key &amp;quot;session&amp;quot; deberá ser guardado en una variable para siguientes invocaciones'''&lt;br /&gt;
&lt;br /&gt;
===== Enviar texto =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 700px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; textRequest &amp;lt;vflow_session_uuid&amp;gt; &amp;lt;question&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Requisito !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_session_uuid&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Variable &amp;quot;session&amp;quot; almacenada en el &amp;quot;sessionOpen&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;question&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Texto a enviar al orquestado (p. ej. Flowise) (normal, abandoned, other)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
    &amp;quot;session&amp;quot;: &amp;quot;c6f6fad7-f6c1-11f0-a793-525400ef204c&amp;quot;,&lt;br /&gt;
    &amp;quot;language&amp;quot;: &amp;quot;ES&amp;quot;,&lt;br /&gt;
    &amp;quot;response&amp;quot;: &amp;quot;Cristóbal Colón.&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Cerrar sesión=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 800px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; sessionClose &amp;lt;vflow_session_uuid&amp;gt; &amp;lt;vflow_cause&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros  (Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Estado !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_session_uuid&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Variable &amp;quot;session&amp;quot; almacenada en el &amp;quot;sessionOpen&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_cause&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || (normal, abandoned, expired, other)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 104,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;Wrong session&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ejemplos para omnisuite ===&lt;br /&gt;
&lt;br /&gt;
'''Ejemplo de chat'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 1400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_chat.ini&amp;quot; &amp;quot;omnisuiteText&amp;quot; &amp;quot;{{interaction.id}}&amp;quot; &amp;quot;{{account.id}}&amp;quot; &amp;quot;{{interaction.createdAt}}&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;{{message.body}}&amp;quot; | jq -r '.response'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Ejemplo de voz'''&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen cally square.jpg|1024px|none|miniatura|Ejemplo de flujo de Cally Square]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 1000px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_voice.ini&amp;quot; &amp;quot;sessionOpen&amp;quot; &amp;quot;{UNIQUEID}&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; |  jq -r '.session' &amp;lt;/pre&amp;gt;&lt;br /&gt;
::&amp;lt;small&amp;gt;salida del comando almacenado en variable &amp;quot;vflow_sessionopen_response&amp;quot; para su posterior uso en cally square&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen sessionopen.jpg|550px|center|miniatura|Abrir sesión en vFlow]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 1400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_desa_voz.ini&amp;quot; &amp;quot;textRequest&amp;quot; &amp;quot;{vflow_sessionopen_response}&amp;quot; &amp;quot;{OPENAI_WHISPER_TRANSCRIPT}&amp;quot; | jq -r '.response'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::&amp;lt;small&amp;gt;la voz se ha transcrito con OpenAI, por eso se usa como parámetro {OPENAI_WHISPER_TRANSCRIPT})&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen textrequest.jpg|550px|center|miniatura|Enviar texto en vFlow]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 1000px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt; &lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_desa_voz.ini&amp;quot; &amp;quot;sessionClose&amp;quot; &amp;quot;{{vflow_sessionopen_response}}&amp;quot; &amp;quot;normal&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen sessionclose.jpg|900px|center|miniatura|Cerrar sesión en vFlow]]&lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:VIVAit Call]]&lt;br /&gt;
[[Category:Omnisuite]]&lt;br /&gt;
[[Category:IA]]&lt;/div&gt;</summary>
		<author><name>Alfredo.rodriguez</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_de_vFlow&amp;diff=17183</id>
		<title>Manual de operación de vFlow</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_de_vFlow&amp;diff=17183"/>
		<updated>2026-03-24T11:13:59Z</updated>

		<summary type="html">&lt;p&gt;Alfredo.rodriguez: /* Descripción general */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Descripción general vFlow ==&lt;br /&gt;
&lt;br /&gt;
vFlow es un módulo de conexión a sistemas de inteligencia artifical para sistemas de comunicaciones unificadas, ya sean sistemas corporativos o contact center&lt;br /&gt;
Gracias a vFlow, las plataformas de UC dispondrán de una solución para comunicarse con sistemas IA utilizando un mismo mecanismo independientemente de la solución de inteligencia artificial que se utilice&lt;br /&gt;
&lt;br /&gt;
Para proporcionar el servicio de manera completa, vFlow (en concreto el orquestador) se conectará a sistemas de inteligencia artificial (LLM) que permitirán desarrollar los agentes definidos en los orquestadores&lt;br /&gt;
&lt;br /&gt;
'''Conceptos:'''&lt;br /&gt;
* Plataforma&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Plataforma de comunicaciones unificadas; por ejemplo Omnisuite o VIVAit Call&lt;br /&gt;
* Orquestador&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Plataforma agéntica de IA (por ejemplo Flowise)&lt;br /&gt;
* vFlowProxy&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Módulo VIVAit que conecta multiples plataformas con múltiples orquestadores&lt;br /&gt;
* LLM&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Modelo de lenguaje natural que usará un orquestadores&lt;br /&gt;
* Agente&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Cada uno de los flujos creados en vFlow; corresponde a un par plataforma/agentflow de orquestador&lt;br /&gt;
* Servicio&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Cada elemento de negocio en la plataforma de CU (por ejemplo VDN)&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Arquitectura Vflow - v2.jpg|1000px|center|Arquitecura de vFlow]]&lt;br /&gt;
&lt;br /&gt;
Los '''módulos principales''' de vFlow son:&lt;br /&gt;
* vFlowProxy: Recibe las conexiones de los sistemas de comunicaciones unificadas, y conecta con los orquestadores de Inteligencia Artificial de manera segura y adaptada al tipo de servicio; el acceso a vFlow Proxy desde las plataformas se realizará mediante:&lt;br /&gt;
* Programa cliente: Se utiliza en el sistema de comunicaciones unificadas (actualmente VIVAit Call y Omnsisuite) para invocar a vFlow&lt;br /&gt;
* API REST: Alternativa al programa cliente, vFlowProxy proporciona una API REST que facilita que cualquier plataforma pueda comunicarse mediante un procedimiento estándar y documentado&lt;br /&gt;
* Portal de administración vFlow: Permite visualizar las interaciones realizadas y configurar el sistema&lt;br /&gt;
* Orquestador de IA: Herramienta de Inteligencia Artificial que permitirá la creación de aplicaciones personalizadas (agentes)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Otros elementos''' relevantes serán:&lt;br /&gt;
* Base de datos vFlow:&lt;br /&gt;
:* Almacena información sobre sesiones y transacciones realizadas&lt;br /&gt;
:* Almacena información de configuración sobre vFlow&lt;br /&gt;
:* Gestiona el RAG de las inteligencias artificiales a usar&lt;br /&gt;
&lt;br /&gt;
== Puesta en marcha de nodo vFlow ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Existe un nodo vFlow en los repositorios habituales proporcionados&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para '''dar de alta nodo vflow en un cliente''' hay que:&lt;br /&gt;
* Configurar IP (por defecto la maquina va configurada por DHCP)&lt;br /&gt;
* Adaptar el firewall, para ello REVISAR el fichero &amp;lt;code&amp;gt;/etc/firewall/vars.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
* Certificados validos en apache&lt;br /&gt;
* REVISAR ficheros &amp;lt;code&amp;gt;/etc/apache2/sites-enabled/flowise.conf&amp;lt;/code&amp;gt; y &amp;lt;code&amp;gt;/etc/apache2/sites-enabled/vFlow.conf&amp;lt;/code&amp;gt; la variable &amp;lt;code&amp;gt;ServerName&amp;lt;/code&amp;gt; (nombre valido de la maquina)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Accesos vFlow''' (se debe cambiar tras instalación):&lt;br /&gt;
* Usuario ssh y de SO por defecto es sat y clave a proporcionar.&lt;br /&gt;
* Para el portal de flowise las credenciales son usuario: vfloadmin@vflow.com clave: A proporcionar&lt;br /&gt;
* Para el portal de vflow las credenciales son usaurio sat y clave a proporcionar.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Accesos BBDD vFlow'''&lt;br /&gt;
* Para acceder a la base de datos desde el workbenck solo desde localhost (o tunel):&lt;br /&gt;
* BBDD Vlfow (admin)  vflowadmin // clave a proporcionar&lt;br /&gt;
* BBDD Vlfow (no_admin)  vflow //  clave a proporcionar&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Portal orquestador Flowise'''&lt;br /&gt;
&lt;br /&gt;
ubicado en https://host.cliente.xx:4567&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #fef6e7; border: 1px solid #fbd68a; padding: 1em; border-radius: 4px;width: fit-content; margin-left: 50px&amp;quot;&amp;gt;&lt;br /&gt;
'''⚠️ ATENCION !!'''&lt;br /&gt;
'''Los cambios en tablas de configuración de BBDD de vFlow (orquestadores, plataformas, agentes) requieren reinicio del servicio vFlowProxy'''&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', 'Monaco', 'Courier New', monospace;&amp;quot;&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service status&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service stop&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service start&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El fichero de configuración del demonio &amp;lt;cvode&amp;gt;vFlowProxy&amp;lt;/code&amp;gt; se encuentra en &amp;lt;code&amp;gt;/etc/MDtel/vFlowProxy.conf&amp;lt;/code&amp;gt;, si bien este fichero de configuración no se modificará habitualmente (los parámetros generales de configuración de vFlowProxy se encuentran en la BBDD de vFlow)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Relevante para poder '''poner en marcha un loader''':&lt;br /&gt;
* Subir el fichero inicial previamente a la carpeta destino según entorno (p. ej &amp;lt;code&amp;gt;/var/www/html/storages/production&amp;lt;/code&amp;gt;&lt;br /&gt;
* Tipo de loader --&amp;gt; API&lt;br /&gt;
* Método --&amp;gt; GET&lt;br /&gt;
* URL --&amp;gt; (ejemplo: http://172.25.129.242/storages/test/fichero-pru.txt)&lt;br /&gt;
::* Existirán URL &amp;quot;production&amp;quot;, &amp;quot;staging&amp;quot; y &amp;quot;test&amp;quot;&lt;br /&gt;
* Text Splitter: Recursive&lt;br /&gt;
* Qdrant --&amp;gt; localhost:6333&lt;br /&gt;
* Record Manager --&amp;gt; SQLite&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Se adjunta imagen a modo de ejemplo&lt;br /&gt;
[[Archivo:Alta loader vflow.png|800px|miniaturadeimagen|no|alta loader vFlow|link=]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gestión en vFlow ==&lt;br /&gt;
vFlow prevé la existencia de tres entornos que permita hacer una gestión segura de agentes y RAG:&lt;br /&gt;
&lt;br /&gt;
* Producción&lt;br /&gt;
* Preproducción&lt;br /&gt;
* Pruebas&lt;br /&gt;
&lt;br /&gt;
Para cada agente o store de RAG se podrá desplegar un entorno (producción), dos o los tres entornos&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #f0fff4; border: 3px solid #c6f6d5; padding: 1em; border-radius: 4px;width: fit-content; margin-left: 0px&amp;quot;&amp;gt;&lt;br /&gt;
✅ '''Recomendación'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En la mayoría de los casos con disponer de entorno de producción y preproducción tanto para agente como para RAG será suficiente&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Para realizar una gestión completa en vFlow (suponiendo tres entornos y gestión de agentes y RAG), deberemos tener&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Archivo:Gestión RAG.png|1000px|miniaturadeimagen|centro|Gestión RAG en vFlow|link=]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''En orquestador'''&lt;br /&gt;
* Crear '''tres stores''' (pro/pre/pru); en cada store:&lt;br /&gt;
::* En total '''tres loaders'''. Crear un loader por entorno (p.ej /pro/nombrefich). &lt;br /&gt;
::* Subir un primer &amp;quot;nombrefich&amp;quot;&lt;br /&gt;
::::* tipo texto (versión 0)&lt;br /&gt;
::::* el mismo para todos los entornos&lt;br /&gt;
::::* se sube por medios convencionales (p. ej SCP)&lt;br /&gt;
* Asegurar que los stores queden totalmente creados (estado &amp;quot;UPSERTED&amp;quot;)&lt;br /&gt;
* Crear '''tres agentes''' (pro/pre/pru)&lt;br /&gt;
::* Asociar a stores (pro/pre/pru)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''En flow'''&lt;br /&gt;
* Crear '''un agente'''&lt;br /&gt;
::* Vincularlo a los tres agentes de orquestador (pro/pre/pru)&lt;br /&gt;
* Crear '''un store'''&lt;br /&gt;
::* Vinculado a los tres stores de orquestador (pro/pre/pru)&lt;br /&gt;
* Crear '''un loader'''&lt;br /&gt;
::* Loader vinculado a agente de vflow&lt;br /&gt;
::* C_NAME loader coincidirá con los de orquestador (p.ej &amp;quot;nombrefich&amp;quot;)&lt;br /&gt;
::* Subir nueva versión v1 (&amp;quot;.txt&amp;quot;, &amp;quot;.pdf&amp;quot;, &amp;quot;.doc&amp;quot;, &amp;quot;.docx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Diagnósticos ==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/vFlowProxy/vFlowProxy.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En nodo vFlowProxy&lt;br /&gt;
::para cualquier canal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
nc localhost 1131&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En nodo vFlowProxy&lt;br /&gt;
::Monitoriza estado del proceso vflowProxy&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
  &amp;quot;proceso&amp;quot;: {&lt;br /&gt;
    &amp;quot;nombre&amp;quot;: &amp;quot;vFlowProxy&amp;quot;,&lt;br /&gt;
    &amp;quot;version&amp;quot;: &amp;quot;00.00.01&amp;quot;,&lt;br /&gt;
    &amp;quot;inicio_ts&amp;quot;: 1771315153,&lt;br /&gt;
    &amp;quot;inicio_cad&amp;quot;: &amp;quot;20260217 085913&amp;quot;,&lt;br /&gt;
    &amp;quot;log_alarmas_val&amp;quot;: 8,&lt;br /&gt;
    &amp;quot;log_alarma_ultimo_ts&amp;quot;: 1771970401,&lt;br /&gt;
    &amp;quot;log_alarma_ultimo_ts_cad&amp;quot;: &amp;quot;20260224 230001&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;diagnostico&amp;quot;: {&lt;br /&gt;
    &amp;quot;gmp&amp;quot;: {&lt;br /&gt;
      &amp;quot;msj_val&amp;quot;: 1022,&lt;br /&gt;
      &amp;quot;msj_max&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;buf_val&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;buf_max&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;tarea_val&amp;quot;: 7,&lt;br /&gt;
      &amp;quot;tarea_max&amp;quot;: 15&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;tiempo&amp;quot;: {&lt;br /&gt;
      &amp;quot;uptime&amp;quot;: 716665,&lt;br /&gt;
      &amp;quot;uptime_dias&amp;quot;: 8,&lt;br /&gt;
      &amp;quot;uptime_horas&amp;quot;: 7,&lt;br /&gt;
      &amp;quot;uptime_minutos&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;uptime_segundos&amp;quot;: 25&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;wws&amp;quot;: {&lt;br /&gt;
      &amp;quot;conexiones_val&amp;quot;: 0,&lt;br /&gt;
      &amp;quot;conexiones_max_periodo&amp;quot;: 0,&lt;br /&gt;
      &amp;quot;hilos_val&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;hilos_max&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;wsi_cad&amp;quot;: &amp;quot;sesiones=0/200&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;alarmas_nivel_max&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;alarmas&amp;quot;: []&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es relevante la monitorización de sesiones  &amp;lt;code&amp;gt;&amp;quot;wsi_cad&amp;quot;: &amp;quot;sesiones=0/200&amp;quot;&amp;lt;/code&amp;gt; (usadas/máximas)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
asterisk -rv | grep callsquare_name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::en nodo Omnisuite&lt;br /&gt;
::para canal voz&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/xcally/agi-combined.yyyy-mm-dd.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::en nodo Omnisuite&lt;br /&gt;
::para canal voz&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/xcally/routing-combined.yyyy-mm-dd.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::para canal voz&lt;br /&gt;
&lt;br /&gt;
== Para probar desde vFlow ==&lt;br /&gt;
&lt;br /&gt;
En /home/sat/vFlowProxy hay scripts de prueba (se configuran en el vars.sh); para usar los scripts de prueba tendremos que tener también &amp;quot;.ini&amp;quot; en vFlow&lt;br /&gt;
&lt;br /&gt;
Es útil comenzar con&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/home/sat/vFlowProxy/vFlowGetInfo.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
que sin parámetros adicionales confirma el correcto estado de vFlowProxy&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
  &amp;quot;app&amp;quot;: &amp;quot;vFlowProxy&amp;quot;,&lt;br /&gt;
  &amp;quot;version&amp;quot;: &amp;quot;00.00.01&amp;quot;,&lt;br /&gt;
  &amp;quot;sessions_opened&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;sessions_limit&amp;quot;: 200,&lt;br /&gt;
  &amp;quot;sessions_sleep_timeout_s&amp;quot;: 3600,&lt;br /&gt;
  &amp;quot;alarms&amp;quot;: 8&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Integración de vFlow desde Omnisuite ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Descripción general ===&lt;br /&gt;
En Omnisuite, la integración con vFlow, se realiza con el programa vFlowOmnisuite, que podrá ser invocado como ejecutable (más rápido, para debian), o como Python (más universal)&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
    /usr/local/sbin/vFlowOmnisuite (OPCIÓN PREFERENTE)&lt;br /&gt;
    /usr/local/sbin/vFlowOmnisuite.py (LEGACY)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Asociado al programa existen los siguientes ficheros de configuración (.ini):&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; de plataforma''' Omnisuite en vFlow --&amp;gt; Solo contiene uuid de la plataforma; se entrega un &amp;quot;.ini&amp;quot; a modo de ejemplo en &amp;lt;code&amp;gt;/etc/MDtel/vFlow/platform.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE PLATAFORMA&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
   [uuids]&lt;br /&gt;
   platform=1d111530-e22d-11f0-b0f2-5254008bef96&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; por agente''' en vFlow --&amp;gt; Solo contiene uuid del agente según su identificación en vFlow ('''NO''' en un orquestador, por ejemplo flowise); se entrega un &amp;quot;.ini&amp;quot; asociado a un agente &amp;quot;loop&amp;quot; existente en Flowise &amp;lt;code&amp;gt;/etc/MDtel/vFlow/agent_loop_01.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE AGENTE&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
   [uuids]&lt;br /&gt;
   agent=1a3a1020-ea1d-11f0-b4a5-5254008bef96&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; por servicio''' --&amp;gt; Configuración de cada servicio en Omnisuite; se entrega un &amp;quot;.ini&amp;quot; a modo de ejemplo en &amp;lt;code&amp;gt;/etc/MDtel/vFlow/service.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
En cada fichero de servicio configuraremos&lt;br /&gt;
::* Donde está Vflow&lt;br /&gt;
::* Agente&lt;br /&gt;
::* Plataforma&lt;br /&gt;
::* timeout_s --&amp;gt; Importante, es afectado por el LLM&lt;br /&gt;
::* channel_text_type --&amp;gt; IMPORTANTE si el servicio es de texto que esté bien (vacio solo si el servicio es de texto, NO COMENTARLO)&lt;br /&gt;
::* environment --&amp;gt; production, staging, test&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE SERVICIO&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
  [arch_uuids]&lt;br /&gt;
  agent=/etc/MDtel/vFlow/agent_loop_01.ini&lt;br /&gt;
  platform=/etc/MDtel/vFlow/platform.ini&lt;br /&gt;
&lt;br /&gt;
  [vflow]&lt;br /&gt;
  host_port=172.25.129.242:7900&lt;br /&gt;
  timeout_s=20&lt;br /&gt;
  # channel_type=[voice|chat|email]&lt;br /&gt;
  channel_type=chat&lt;br /&gt;
  # environment=[production|staging|test]&lt;br /&gt;
  environment=production&lt;br /&gt;
  language=es&lt;br /&gt;
&lt;br /&gt;
  [omnisuite]&lt;br /&gt;
  # channel_text_type=[chat|mail|sms|whatsup]&lt;br /&gt;
  channel_text_type=chat&lt;br /&gt;
  service_id=vflow_service_id&lt;br /&gt;
  service_name=vflow_service_name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La imagen siguiente muestra el esquema de relación entre orquestador/plataforma/agente/servicio en la plataforma y en vFlow&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Relaciones vFlow plat orq ag serv.png|800px|miniaturadeimagen|centro|Relación orquestador-plataforma-agente-servicio]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Invocación ===&lt;br /&gt;
=== Generales ===&lt;br /&gt;
&lt;br /&gt;
Ver configuración&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; configPrint &amp;lt;omnisuite_UniqueId&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
Configuration:&lt;br /&gt;
  agent_arch_uuid=/etc/MDtel/vFlow/agent_fse_rapido.ini&lt;br /&gt;
  agent_uuid=3487af28-1d14-11f1-803c-525400ef204c&lt;br /&gt;
  platform_arch_uuid=/etc/MDtel/vFlow/platform_labomsui.ini&lt;br /&gt;
  platform_uuid=9a54ea74-f050-11f0-bdf1-5254008bef96&lt;br /&gt;
&lt;br /&gt;
  vflow_host_port=labvflow.mdnova.local&lt;br /&gt;
  vflow_timeout_s=50&lt;br /&gt;
  vflow_environment=production&lt;br /&gt;
  vflow_channel_type=voice&lt;br /&gt;
  vflow_language=es&lt;br /&gt;
&lt;br /&gt;
  omnisuite_channel_text_type=chat&lt;br /&gt;
  omnisuite_service_id=287&lt;br /&gt;
  omnisuite_service_name=desarrollo&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;errorCad&amp;quot;: &amp;quot;OK&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ver versión&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Para canales de texto ====&lt;br /&gt;
&lt;br /&gt;
Para canales de texto en Omnisuite existe un único Comando de invocación &amp;quot;omnisuiteText&amp;quot;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 1500px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; omnisuiteText &amp;lt;omnisuite_id&amp;gt; &amp;lt;omnisuite_websiteId&amp;gt; &amp;lt;omnisuite_createdAt&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt; &amp;lt;question&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros ( Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Obligatoriedad !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;config_arch&amp;gt;` || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_id&amp;gt;` || OBLIGATORIO || Identificativo de la interacción en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_websiteId&amp;gt;` || OBLIGATORIO || Identificativo del servicio en Omnisuite (ej. website id en chat)&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_createdAt&amp;gt;` || OBLIGATORIO || Creación de la interacción&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_id&amp;gt;` || OPCIONAL || Id de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_phone_number&amp;gt;` || OPCIONAL || Telf de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_email&amp;gt;` || OPCIONAL || Email de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;question&amp;gt;` || OBLIGATORIO || Texto a enviar al orquestado (p. ej. Flowise)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
 &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
 &amp;quot;session&amp;quot;: &amp;quot;e926548d-fdcf-11f0-a793-525400ef204c&amp;quot;,&lt;br /&gt;
 &amp;quot;language&amp;quot;: &amp;quot;es&amp;quot;,&lt;br /&gt;
 &amp;quot;response&amp;quot;: &amp;quot;HOLA&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Para canales de voz ====&lt;br /&gt;
Para  canales de voz, existen comandos para &amp;quot;abrir sesión&amp;quot;, &amp;quot;enviar texto&amp;quot; y &amp;quot;cerrar sesión&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Abrir sesión =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 1200px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; sessionOpen &amp;lt;omnisuite_UniqueId&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros (Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Requisito !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;omnisuite_UniqueId&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Unique_ID de asterisk de la llamada en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_id&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Id de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_phone_number&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Telf de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_email&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Email de cliente en Omnisuite&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
    &amp;quot;session&amp;quot;: &amp;quot;ec73df29-f08a-11f0-a8ec-525400ef204c&amp;quot;,&lt;br /&gt;
    &amp;quot;platform_id&amp;quot;: &amp;quot;146&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''El value correspondiente al key &amp;quot;session&amp;quot; deberá ser guardado en una variable para siguientes invocaciones'''&lt;br /&gt;
&lt;br /&gt;
===== Enviar texto =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 700px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; textRequest &amp;lt;vflow_session_uuid&amp;gt; &amp;lt;question&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Requisito !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_session_uuid&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Variable &amp;quot;session&amp;quot; almacenada en el &amp;quot;sessionOpen&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;question&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Texto a enviar al orquestado (p. ej. Flowise) (normal, abandoned, other)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
    &amp;quot;session&amp;quot;: &amp;quot;c6f6fad7-f6c1-11f0-a793-525400ef204c&amp;quot;,&lt;br /&gt;
    &amp;quot;language&amp;quot;: &amp;quot;ES&amp;quot;,&lt;br /&gt;
    &amp;quot;response&amp;quot;: &amp;quot;Cristóbal Colón.&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Cerrar sesión=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 800px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; sessionClose &amp;lt;vflow_session_uuid&amp;gt; &amp;lt;vflow_cause&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros  (Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Estado !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_session_uuid&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Variable &amp;quot;session&amp;quot; almacenada en el &amp;quot;sessionOpen&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_cause&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || (normal, abandoned, expired, other)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 104,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;Wrong session&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ejemplos para omnisuite ===&lt;br /&gt;
&lt;br /&gt;
'''Ejemplo de chat'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 1400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_chat.ini&amp;quot; &amp;quot;omnisuiteText&amp;quot; &amp;quot;{{interaction.id}}&amp;quot; &amp;quot;{{account.id}}&amp;quot; &amp;quot;{{interaction.createdAt}}&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;{{message.body}}&amp;quot; | jq -r '.response'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Ejemplo de voz'''&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen cally square.jpg|1024px|none|miniatura|Ejemplo de flujo de Cally Square]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 1000px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_voice.ini&amp;quot; &amp;quot;sessionOpen&amp;quot; &amp;quot;{UNIQUEID}&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; |  jq -r '.session' &amp;lt;/pre&amp;gt;&lt;br /&gt;
::&amp;lt;small&amp;gt;salida del comando almacenado en variable &amp;quot;vflow_sessionopen_response&amp;quot; para su posterior uso en cally square&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen sessionopen.jpg|550px|center|miniatura|Abrir sesión en vFlow]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 1400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_desa_voz.ini&amp;quot; &amp;quot;textRequest&amp;quot; &amp;quot;{vflow_sessionopen_response}&amp;quot; &amp;quot;{OPENAI_WHISPER_TRANSCRIPT}&amp;quot; | jq -r '.response'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::&amp;lt;small&amp;gt;la voz se ha transcrito con OpenAI, por eso se usa como parámetro {OPENAI_WHISPER_TRANSCRIPT})&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen textrequest.jpg|550px|center|miniatura|Enviar texto en vFlow]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 1000px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt; &lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_desa_voz.ini&amp;quot; &amp;quot;sessionClose&amp;quot; &amp;quot;{{vflow_sessionopen_response}}&amp;quot; &amp;quot;normal&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen sessionclose.jpg|900px|center|miniatura|Cerrar sesión en vFlow]]&lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:VIVAit Call]]&lt;br /&gt;
[[Category:Omnisuite]]&lt;br /&gt;
[[Category:IA]]&lt;/div&gt;</summary>
		<author><name>Alfredo.rodriguez</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_de_vFlow&amp;diff=17181</id>
		<title>Manual de operación de vFlow</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_de_vFlow&amp;diff=17181"/>
		<updated>2026-03-24T11:13:31Z</updated>

		<summary type="html">&lt;p&gt;Alfredo.rodriguez: /* Para probar desde vFlow */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Descripción general vFlow ==&lt;br /&gt;
&lt;br /&gt;
vFlow es un módulo de conexión a sistemas de inteligencia artifical para sistemas de comunicaciones unificadas, ya sean sistemas corporativos o contact center&lt;br /&gt;
Gracias a vFlow, las plataformas de UC dispondrán de una solución para comunicarse con sistemas IA utilizando un mismo mecanismo independientemente de la solución de inteligencia artificial que se utilice&lt;br /&gt;
&lt;br /&gt;
Para proporcionar el servicio de manera completa, vFlow (en concreto el orquestador) se conectará a sistemas de inteligencia artificial (LLM) que permitirán desarrollar los agentes definidos en los orquestadores&lt;br /&gt;
&lt;br /&gt;
'''Conceptos:'''&lt;br /&gt;
* Plataforma&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Plataforma de comunicaciones unificadas; por ejemplo Omnisuite o VIVAit Call&lt;br /&gt;
* Orquestador&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Plataforma agéntica de IA (por ejemplo Flowise)&lt;br /&gt;
* vFlowProxy&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Módulo VIVAit que conecta multiples plataformas con múltiples orquestadores&lt;br /&gt;
* LLM&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Modelo de lenguaje natural que usará un orquestadores&lt;br /&gt;
* Agente&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Cada uno de los flujos creados en vFlow; corresponde a un par plataforma/agentflow de orquestador&lt;br /&gt;
* Servicio&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Cada elemento de negocio en la plataforma de CU (por ejemplo VDN)&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Arquitectura Vflow - v2.jpg|1000px|center|Arquitecura de vFlow]]&lt;br /&gt;
&lt;br /&gt;
Los '''módulos principales''' de vFlow son:&lt;br /&gt;
* vFlowProxy: Recibe las conexiones de los sistemas de comunicaciones unificadas, y conecta con los orquestadores de Inteligencia Artificial de manera segura y adaptada al tipo de servicio; el acceso a vFlow Proxy desde las plataformas se realizará mediante:&lt;br /&gt;
* Programa cliente: Se utiliza en el sistema de comunicaciones unificadas (actualmente VIVAit Call y Omnsisuite) para invocar a vFlow&lt;br /&gt;
* API REST: Alternativa al programa cliente, vFlowProxy proporciona una API REST que facilita que cualquier plataforma pueda comunicarse mediante un procedimiento estándar y documentado&lt;br /&gt;
* Portal de administración vFlow: Permite visualizar las interaciones realizadas y configurar el sistema&lt;br /&gt;
* Orquestador de IA: Herramienta de Inteligencia Artificial que permitirá la creación de aplicaciones personalizadas (agentes)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Otros elementos''' relevantes serán:&lt;br /&gt;
* Base de datos vFlow:&lt;br /&gt;
:* Almacena información sobre sesiones y transacciones realizadas&lt;br /&gt;
:* Almacena información de configuración sobre vFlow&lt;br /&gt;
:* Gestiona el RAG de las inteligencias artificiales a usar&lt;br /&gt;
&lt;br /&gt;
== Puesta en marcha de nodo vFlow ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Existe un nodo vFlow en los repositorios habituales proporcionados&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para '''dar de alta nodo vflow en un cliente''' hay que:&lt;br /&gt;
* Configurar IP (por defecto la maquina va configurada por DHCP)&lt;br /&gt;
* Adaptar el firewall, para ello REVISAR el fichero &amp;lt;code&amp;gt;/etc/firewall/vars.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
* Certificados validos en apache&lt;br /&gt;
* REVISAR ficheros &amp;lt;code&amp;gt;/etc/apache2/sites-enabled/flowise.conf&amp;lt;/code&amp;gt; y &amp;lt;code&amp;gt;/etc/apache2/sites-enabled/vFlow.conf&amp;lt;/code&amp;gt; la variable &amp;lt;code&amp;gt;ServerName&amp;lt;/code&amp;gt; (nombre valido de la maquina)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Accesos vFlow''' (se debe cambiar tras instalación):&lt;br /&gt;
* Usuario ssh y de SO por defecto es sat y clave a proporcionar.&lt;br /&gt;
* Para el portal de flowise las credenciales son usuario: vfloadmin@vflow.com clave: A proporcionar&lt;br /&gt;
* Para el portal de vflow las credenciales son usaurio sat y clave a proporcionar.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Accesos BBDD vFlow'''&lt;br /&gt;
* Para acceder a la base de datos desde el workbenck solo desde localhost (o tunel):&lt;br /&gt;
* BBDD Vlfow (admin)  vflowadmin // clave a proporcionar&lt;br /&gt;
* BBDD Vlfow (no_admin)  vflow //  clave a proporcionar&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Portal orquestador Flowise'''&lt;br /&gt;
&lt;br /&gt;
ubicado en https://host.cliente.xx:4567&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #fef6e7; border: 1px solid #fbd68a; padding: 1em; border-radius: 4px;width: fit-content; margin-left: 50px&amp;quot;&amp;gt;&lt;br /&gt;
'''⚠️ ATENCION !!'''&lt;br /&gt;
'''Los cambios en tablas de configuración de BBDD de vFlow (orquestadores, plataformas, agentes) requieren reinicio del servicio vFlowProxy'''&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', 'Monaco', 'Courier New', monospace;&amp;quot;&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service status&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service stop&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service start&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El fichero de configuración del demonio &amp;lt;cvode&amp;gt;vFlowProxy&amp;lt;/code&amp;gt; se encuentra en &amp;lt;code&amp;gt;/etc/MDtel/vFlowProxy.conf&amp;lt;/code&amp;gt;, si bien este fichero de configuración no se modificará habitualmente (los parámetros generales de configuración de vFlowProxy se encuentran en la BBDD de vFlow)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Relevante para poder '''poner en marcha un loader''':&lt;br /&gt;
* Subir el fichero inicial previamente a la carpeta destino según entorno (p. ej &amp;lt;code&amp;gt;/var/www/html/storages/production&amp;lt;/code&amp;gt;&lt;br /&gt;
* Tipo de loader --&amp;gt; API&lt;br /&gt;
* Método --&amp;gt; GET&lt;br /&gt;
* URL --&amp;gt; (ejemplo: http://172.25.129.242/storages/test/fichero-pru.txt)&lt;br /&gt;
::* Existirán URL &amp;quot;production&amp;quot;, &amp;quot;staging&amp;quot; y &amp;quot;test&amp;quot;&lt;br /&gt;
* Text Splitter: Recursive&lt;br /&gt;
* Qdrant --&amp;gt; localhost:6333&lt;br /&gt;
* Record Manager --&amp;gt; SQLite&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Se adjunta imagen a modo de ejemplo&lt;br /&gt;
[[Archivo:Alta loader vflow.png|800px|miniaturadeimagen|no|alta loader vFlow|link=]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gestión en vFlow ==&lt;br /&gt;
vFlow prevé la existencia de tres entornos que permita hacer una gestión segura de agentes y RAG:&lt;br /&gt;
&lt;br /&gt;
* Producción&lt;br /&gt;
* Preproducción&lt;br /&gt;
* Pruebas&lt;br /&gt;
&lt;br /&gt;
Para cada agente o store de RAG se podrá desplegar un entorno (producción), dos o los tres entornos&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #f0fff4; border: 3px solid #c6f6d5; padding: 1em; border-radius: 4px;width: fit-content; margin-left: 0px&amp;quot;&amp;gt;&lt;br /&gt;
✅ '''Recomendación'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En la mayoría de los casos con disponer de entorno de producción y preproducción tanto para agente como para RAG será suficiente&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Para realizar una gestión completa en vFlow (suponiendo tres entornos y gestión de agentes y RAG), deberemos tener&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Archivo:Gestión RAG.png|1000px|miniaturadeimagen|centro|Gestión RAG en vFlow|link=]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''En orquestador'''&lt;br /&gt;
* Crear '''tres stores''' (pro/pre/pru); en cada store:&lt;br /&gt;
::* En total '''tres loaders'''. Crear un loader por entorno (p.ej /pro/nombrefich). &lt;br /&gt;
::* Subir un primer &amp;quot;nombrefich&amp;quot;&lt;br /&gt;
::::* tipo texto (versión 0)&lt;br /&gt;
::::* el mismo para todos los entornos&lt;br /&gt;
::::* se sube por medios convencionales (p. ej SCP)&lt;br /&gt;
* Asegurar que los stores queden totalmente creados (estado &amp;quot;UPSERTED&amp;quot;)&lt;br /&gt;
* Crear '''tres agentes''' (pro/pre/pru)&lt;br /&gt;
::* Asociar a stores (pro/pre/pru)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''En flow'''&lt;br /&gt;
* Crear '''un agente'''&lt;br /&gt;
::* Vincularlo a los tres agentes de orquestador (pro/pre/pru)&lt;br /&gt;
* Crear '''un store'''&lt;br /&gt;
::* Vinculado a los tres stores de orquestador (pro/pre/pru)&lt;br /&gt;
* Crear '''un loader'''&lt;br /&gt;
::* Loader vinculado a agente de vflow&lt;br /&gt;
::* C_NAME loader coincidirá con los de orquestador (p.ej &amp;quot;nombrefich&amp;quot;)&lt;br /&gt;
::* Subir nueva versión v1 (&amp;quot;.txt&amp;quot;, &amp;quot;.pdf&amp;quot;, &amp;quot;.doc&amp;quot;, &amp;quot;.docx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Diagnósticos ==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/vFlowProxy/vFlowProxy.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En nodo vFlowProxy&lt;br /&gt;
::para cualquier canal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
nc localhost 1131&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En nodo vFlowProxy&lt;br /&gt;
::Monitoriza estado del proceso vflowProxy&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
  &amp;quot;proceso&amp;quot;: {&lt;br /&gt;
    &amp;quot;nombre&amp;quot;: &amp;quot;vFlowProxy&amp;quot;,&lt;br /&gt;
    &amp;quot;version&amp;quot;: &amp;quot;00.00.01&amp;quot;,&lt;br /&gt;
    &amp;quot;inicio_ts&amp;quot;: 1771315153,&lt;br /&gt;
    &amp;quot;inicio_cad&amp;quot;: &amp;quot;20260217 085913&amp;quot;,&lt;br /&gt;
    &amp;quot;log_alarmas_val&amp;quot;: 8,&lt;br /&gt;
    &amp;quot;log_alarma_ultimo_ts&amp;quot;: 1771970401,&lt;br /&gt;
    &amp;quot;log_alarma_ultimo_ts_cad&amp;quot;: &amp;quot;20260224 230001&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;diagnostico&amp;quot;: {&lt;br /&gt;
    &amp;quot;gmp&amp;quot;: {&lt;br /&gt;
      &amp;quot;msj_val&amp;quot;: 1022,&lt;br /&gt;
      &amp;quot;msj_max&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;buf_val&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;buf_max&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;tarea_val&amp;quot;: 7,&lt;br /&gt;
      &amp;quot;tarea_max&amp;quot;: 15&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;tiempo&amp;quot;: {&lt;br /&gt;
      &amp;quot;uptime&amp;quot;: 716665,&lt;br /&gt;
      &amp;quot;uptime_dias&amp;quot;: 8,&lt;br /&gt;
      &amp;quot;uptime_horas&amp;quot;: 7,&lt;br /&gt;
      &amp;quot;uptime_minutos&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;uptime_segundos&amp;quot;: 25&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;wws&amp;quot;: {&lt;br /&gt;
      &amp;quot;conexiones_val&amp;quot;: 0,&lt;br /&gt;
      &amp;quot;conexiones_max_periodo&amp;quot;: 0,&lt;br /&gt;
      &amp;quot;hilos_val&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;hilos_max&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;wsi_cad&amp;quot;: &amp;quot;sesiones=0/200&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;alarmas_nivel_max&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;alarmas&amp;quot;: []&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es relevante la monitorización de sesiones  &amp;lt;code&amp;gt;&amp;quot;wsi_cad&amp;quot;: &amp;quot;sesiones=0/200&amp;quot;&amp;lt;/code&amp;gt; (usadas/máximas)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
asterisk -rv | grep callsquare_name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::en nodo Omnisuite&lt;br /&gt;
::para canal voz&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/xcally/agi-combined.yyyy-mm-dd.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::en nodo Omnisuite&lt;br /&gt;
::para canal voz&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/xcally/routing-combined.yyyy-mm-dd.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::para canal voz&lt;br /&gt;
&lt;br /&gt;
== Para probar desde vFlow ==&lt;br /&gt;
&lt;br /&gt;
En /home/sat/vFlowProxy hay scripts de prueba (se configuran en el vars.sh); para usar los scripts de prueba tendremos que tener también &amp;quot;.ini&amp;quot; en vFlow&lt;br /&gt;
&lt;br /&gt;
Es útil comenzar con&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/home/sat/vFlowProxy/vFlowGetInfo.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
que sin parámetros adicionales confirma el correcto estado de vFlowProxy&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
  &amp;quot;app&amp;quot;: &amp;quot;vFlowProxy&amp;quot;,&lt;br /&gt;
  &amp;quot;version&amp;quot;: &amp;quot;00.00.01&amp;quot;,&lt;br /&gt;
  &amp;quot;sessions_opened&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;sessions_limit&amp;quot;: 200,&lt;br /&gt;
  &amp;quot;sessions_sleep_timeout_s&amp;quot;: 3600,&lt;br /&gt;
  &amp;quot;alarms&amp;quot;: 8&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Integración de vFlow desde Omnisuite ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Descripción general ===&lt;br /&gt;
En Omnisuite, la integración con vFlow, se realiza con el programa vFlowOmnisuite, que podrá ser invocado como ejecutable (más rápido, para debian), o como Python (más universal)&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
    /usr/local/sbin/vFlowOmnisuite (OPCIÓN PREFERENTE)&lt;br /&gt;
    /usr/local/sbin/vFlowOmnisuite.py (LEGACY)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Asociado al programa existen los siguientes ficheros de configuración (.ini):&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; de plataforma''' Omnisuite en vFlow --&amp;gt; Solo contiene uuid de la plataforma; se entrega un &amp;quot;.ini&amp;quot; a modo de ejemplo en &amp;lt;code&amp;gt;/etc/MDtel/vFlow/platform.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE PLATAFORMA&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
   [uuids]&lt;br /&gt;
   platform=1d111530-e22d-11f0-b0f2-5254008bef96&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; por agente''' en vFlow --&amp;gt; Solo contiene uuid del agente según su identificación en vFlow ('''NO''' en un orquestador, por ejemplo flowise); se entrega un &amp;quot;.ini&amp;quot; asociado a un agente &amp;quot;loop&amp;quot; existente en Flowise &amp;lt;code&amp;gt;/etc/MDtel/vFlow/agent_loop_01.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE AGENTE&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
   [uuids]&lt;br /&gt;
   agent=1a3a1020-ea1d-11f0-b4a5-5254008bef96&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; por servicio''' --&amp;gt; Configuración de cada servicio en Omnisuite; se entrega un &amp;quot;.ini&amp;quot; a modo de ejemplo en &amp;lt;code&amp;gt;/etc/MDtel/vFlow/service.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
En cada fichero de servicio configuraremos&lt;br /&gt;
::* Donde está Vflow&lt;br /&gt;
::* Agente&lt;br /&gt;
::* Plataforma&lt;br /&gt;
::* timeout_s --&amp;gt; Importante, es afectado por el LLM&lt;br /&gt;
::* channel_text_type --&amp;gt; IMPORTANTE si el servicio es de texto que esté bien (vacio solo si el servicio es de texto, NO COMENTARLO)&lt;br /&gt;
::* environment --&amp;gt; production, staging, test&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE SERVICIO&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
  [arch_uuids]&lt;br /&gt;
  agent=/etc/MDtel/vFlow/agent_loop_01.ini&lt;br /&gt;
  platform=/etc/MDtel/vFlow/platform.ini&lt;br /&gt;
&lt;br /&gt;
  [vflow]&lt;br /&gt;
  host_port=172.25.129.242:7900&lt;br /&gt;
  timeout_s=20&lt;br /&gt;
  # channel_type=[voice|chat|email]&lt;br /&gt;
  channel_type=chat&lt;br /&gt;
  # environment=[production|staging|test]&lt;br /&gt;
  environment=production&lt;br /&gt;
  language=es&lt;br /&gt;
&lt;br /&gt;
  [omnisuite]&lt;br /&gt;
  # channel_text_type=[chat|mail|sms|whatsup]&lt;br /&gt;
  channel_text_type=chat&lt;br /&gt;
  service_id=vflow_service_id&lt;br /&gt;
  service_name=vflow_service_name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La imagen siguiente muestra el esquema de relación entre orquestador/plataforma/agente/servicio en la plataforma y en vFlow&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Relaciones vFlow plat orq ag serv.png|800px|miniaturadeimagen|centro|Relación orquestador-plataforma-agente-servicio]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Invocación ===&lt;br /&gt;
=== Generales ===&lt;br /&gt;
&lt;br /&gt;
Ver configuración&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; configPrint &amp;lt;omnisuite_UniqueId&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
Configuration:&lt;br /&gt;
  agent_arch_uuid=/etc/MDtel/vFlow/agent_fse_rapido.ini&lt;br /&gt;
  agent_uuid=3487af28-1d14-11f1-803c-525400ef204c&lt;br /&gt;
  platform_arch_uuid=/etc/MDtel/vFlow/platform_labomsui.ini&lt;br /&gt;
  platform_uuid=9a54ea74-f050-11f0-bdf1-5254008bef96&lt;br /&gt;
&lt;br /&gt;
  vflow_host_port=labvflow.mdnova.local&lt;br /&gt;
  vflow_timeout_s=50&lt;br /&gt;
  vflow_environment=production&lt;br /&gt;
  vflow_channel_type=voice&lt;br /&gt;
  vflow_language=es&lt;br /&gt;
&lt;br /&gt;
  omnisuite_channel_text_type=chat&lt;br /&gt;
  omnisuite_service_id=287&lt;br /&gt;
  omnisuite_service_name=desarrollo&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;errorCad&amp;quot;: &amp;quot;OK&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ver versión&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Para canales de texto ====&lt;br /&gt;
&lt;br /&gt;
Para canales de texto en Omnisuite existe un único Comando de invocación &amp;quot;omnisuiteText&amp;quot;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 1500px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; omnisuiteText &amp;lt;omnisuite_id&amp;gt; &amp;lt;omnisuite_websiteId&amp;gt; &amp;lt;omnisuite_createdAt&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt; &amp;lt;question&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros ( Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Obligatoriedad !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;config_arch&amp;gt;` || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_id&amp;gt;` || OBLIGATORIO || Identificativo de la interacción en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_websiteId&amp;gt;` || OBLIGATORIO || Identificativo del servicio en Omnisuite (ej. website id en chat)&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_createdAt&amp;gt;` || OBLIGATORIO || Creación de la interacción&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_id&amp;gt;` || OPCIONAL || Id de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_phone_number&amp;gt;` || OPCIONAL || Telf de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_email&amp;gt;` || OPCIONAL || Email de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;question&amp;gt;` || OBLIGATORIO || Texto a enviar al orquestado (p. ej. Flowise)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
 &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
 &amp;quot;session&amp;quot;: &amp;quot;e926548d-fdcf-11f0-a793-525400ef204c&amp;quot;,&lt;br /&gt;
 &amp;quot;language&amp;quot;: &amp;quot;es&amp;quot;,&lt;br /&gt;
 &amp;quot;response&amp;quot;: &amp;quot;HOLA&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Para canales de voz ====&lt;br /&gt;
Para  canales de voz, existen comandos para &amp;quot;abrir sesión&amp;quot;, &amp;quot;enviar texto&amp;quot; y &amp;quot;cerrar sesión&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Abrir sesión =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 1200px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; sessionOpen &amp;lt;omnisuite_UniqueId&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros (Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Requisito !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;omnisuite_UniqueId&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Unique_ID de asterisk de la llamada en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_id&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Id de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_phone_number&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Telf de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_email&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Email de cliente en Omnisuite&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
    &amp;quot;session&amp;quot;: &amp;quot;ec73df29-f08a-11f0-a8ec-525400ef204c&amp;quot;,&lt;br /&gt;
    &amp;quot;platform_id&amp;quot;: &amp;quot;146&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''El value correspondiente al key &amp;quot;session&amp;quot; deberá ser guardado en una variable para siguientes invocaciones'''&lt;br /&gt;
&lt;br /&gt;
===== Enviar texto =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 700px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; textRequest &amp;lt;vflow_session_uuid&amp;gt; &amp;lt;question&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Requisito !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_session_uuid&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Variable &amp;quot;session&amp;quot; almacenada en el &amp;quot;sessionOpen&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;question&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Texto a enviar al orquestado (p. ej. Flowise) (normal, abandoned, other)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
    &amp;quot;session&amp;quot;: &amp;quot;c6f6fad7-f6c1-11f0-a793-525400ef204c&amp;quot;,&lt;br /&gt;
    &amp;quot;language&amp;quot;: &amp;quot;ES&amp;quot;,&lt;br /&gt;
    &amp;quot;response&amp;quot;: &amp;quot;Cristóbal Colón.&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Cerrar sesión=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 800px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; sessionClose &amp;lt;vflow_session_uuid&amp;gt; &amp;lt;vflow_cause&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros  (Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Estado !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_session_uuid&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Variable &amp;quot;session&amp;quot; almacenada en el &amp;quot;sessionOpen&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_cause&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || (normal, abandoned, expired, other)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 104,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;Wrong session&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ejemplos para omnisuite ===&lt;br /&gt;
&lt;br /&gt;
'''Ejemplo de chat'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 1400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_chat.ini&amp;quot; &amp;quot;omnisuiteText&amp;quot; &amp;quot;{{interaction.id}}&amp;quot; &amp;quot;{{account.id}}&amp;quot; &amp;quot;{{interaction.createdAt}}&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;{{message.body}}&amp;quot; | jq -r '.response'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Ejemplo de voz'''&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen cally square.jpg|1024px|none|miniatura|Ejemplo de flujo de Cally Square]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 1000px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_voice.ini&amp;quot; &amp;quot;sessionOpen&amp;quot; &amp;quot;{UNIQUEID}&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; |  jq -r '.session' &amp;lt;/pre&amp;gt;&lt;br /&gt;
::&amp;lt;small&amp;gt;salida del comando almacenado en variable &amp;quot;vflow_sessionopen_response&amp;quot; para su posterior uso en cally square&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen sessionopen.jpg|550px|center|miniatura|Abrir sesión en vFlow]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 1400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_desa_voz.ini&amp;quot; &amp;quot;textRequest&amp;quot; &amp;quot;{vflow_sessionopen_response}&amp;quot; &amp;quot;{OPENAI_WHISPER_TRANSCRIPT}&amp;quot; | jq -r '.response'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::&amp;lt;small&amp;gt;la voz se ha transcrito con OpenAI, por eso se usa como parámetro {OPENAI_WHISPER_TRANSCRIPT})&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen textrequest.jpg|550px|center|miniatura|Enviar texto en vFlow]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 1000px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt; &lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_desa_voz.ini&amp;quot; &amp;quot;sessionClose&amp;quot; &amp;quot;{{vflow_sessionopen_response}}&amp;quot; &amp;quot;normal&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen sessionclose.jpg|900px|center|miniatura|Cerrar sesión en vFlow]]&lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:VIVAit Call]]&lt;br /&gt;
[[Category:Omnisuite]]&lt;br /&gt;
[[Category:IA]]&lt;/div&gt;</summary>
		<author><name>Alfredo.rodriguez</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_de_vFlow&amp;diff=17180</id>
		<title>Manual de operación de vFlow</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_de_vFlow&amp;diff=17180"/>
		<updated>2026-03-24T11:12:57Z</updated>

		<summary type="html">&lt;p&gt;Alfredo.rodriguez: /* Diagnósticos */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Descripción general vFlow ==&lt;br /&gt;
&lt;br /&gt;
vFlow es un módulo de conexión a sistemas de inteligencia artifical para sistemas de comunicaciones unificadas, ya sean sistemas corporativos o contact center&lt;br /&gt;
Gracias a vFlow, las plataformas de UC dispondrán de una solución para comunicarse con sistemas IA utilizando un mismo mecanismo independientemente de la solución de inteligencia artificial que se utilice&lt;br /&gt;
&lt;br /&gt;
Para proporcionar el servicio de manera completa, vFlow (en concreto el orquestador) se conectará a sistemas de inteligencia artificial (LLM) que permitirán desarrollar los agentes definidos en los orquestadores&lt;br /&gt;
&lt;br /&gt;
'''Conceptos:'''&lt;br /&gt;
* Plataforma&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Plataforma de comunicaciones unificadas; por ejemplo Omnisuite o VIVAit Call&lt;br /&gt;
* Orquestador&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Plataforma agéntica de IA (por ejemplo Flowise)&lt;br /&gt;
* vFlowProxy&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Módulo VIVAit que conecta multiples plataformas con múltiples orquestadores&lt;br /&gt;
* LLM&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Modelo de lenguaje natural que usará un orquestadores&lt;br /&gt;
* Agente&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Cada uno de los flujos creados en vFlow; corresponde a un par plataforma/agentflow de orquestador&lt;br /&gt;
* Servicio&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Cada elemento de negocio en la plataforma de CU (por ejemplo VDN)&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Arquitectura Vflow - v2.jpg|1000px|center|Arquitecura de vFlow]]&lt;br /&gt;
&lt;br /&gt;
Los '''módulos principales''' de vFlow son:&lt;br /&gt;
* vFlowProxy: Recibe las conexiones de los sistemas de comunicaciones unificadas, y conecta con los orquestadores de Inteligencia Artificial de manera segura y adaptada al tipo de servicio; el acceso a vFlow Proxy desde las plataformas se realizará mediante:&lt;br /&gt;
* Programa cliente: Se utiliza en el sistema de comunicaciones unificadas (actualmente VIVAit Call y Omnsisuite) para invocar a vFlow&lt;br /&gt;
* API REST: Alternativa al programa cliente, vFlowProxy proporciona una API REST que facilita que cualquier plataforma pueda comunicarse mediante un procedimiento estándar y documentado&lt;br /&gt;
* Portal de administración vFlow: Permite visualizar las interaciones realizadas y configurar el sistema&lt;br /&gt;
* Orquestador de IA: Herramienta de Inteligencia Artificial que permitirá la creación de aplicaciones personalizadas (agentes)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Otros elementos''' relevantes serán:&lt;br /&gt;
* Base de datos vFlow:&lt;br /&gt;
:* Almacena información sobre sesiones y transacciones realizadas&lt;br /&gt;
:* Almacena información de configuración sobre vFlow&lt;br /&gt;
:* Gestiona el RAG de las inteligencias artificiales a usar&lt;br /&gt;
&lt;br /&gt;
== Puesta en marcha de nodo vFlow ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Existe un nodo vFlow en los repositorios habituales proporcionados&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para '''dar de alta nodo vflow en un cliente''' hay que:&lt;br /&gt;
* Configurar IP (por defecto la maquina va configurada por DHCP)&lt;br /&gt;
* Adaptar el firewall, para ello REVISAR el fichero &amp;lt;code&amp;gt;/etc/firewall/vars.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
* Certificados validos en apache&lt;br /&gt;
* REVISAR ficheros &amp;lt;code&amp;gt;/etc/apache2/sites-enabled/flowise.conf&amp;lt;/code&amp;gt; y &amp;lt;code&amp;gt;/etc/apache2/sites-enabled/vFlow.conf&amp;lt;/code&amp;gt; la variable &amp;lt;code&amp;gt;ServerName&amp;lt;/code&amp;gt; (nombre valido de la maquina)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Accesos vFlow''' (se debe cambiar tras instalación):&lt;br /&gt;
* Usuario ssh y de SO por defecto es sat y clave a proporcionar.&lt;br /&gt;
* Para el portal de flowise las credenciales son usuario: vfloadmin@vflow.com clave: A proporcionar&lt;br /&gt;
* Para el portal de vflow las credenciales son usaurio sat y clave a proporcionar.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Accesos BBDD vFlow'''&lt;br /&gt;
* Para acceder a la base de datos desde el workbenck solo desde localhost (o tunel):&lt;br /&gt;
* BBDD Vlfow (admin)  vflowadmin // clave a proporcionar&lt;br /&gt;
* BBDD Vlfow (no_admin)  vflow //  clave a proporcionar&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Portal orquestador Flowise'''&lt;br /&gt;
&lt;br /&gt;
ubicado en https://host.cliente.xx:4567&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #fef6e7; border: 1px solid #fbd68a; padding: 1em; border-radius: 4px;width: fit-content; margin-left: 50px&amp;quot;&amp;gt;&lt;br /&gt;
'''⚠️ ATENCION !!'''&lt;br /&gt;
'''Los cambios en tablas de configuración de BBDD de vFlow (orquestadores, plataformas, agentes) requieren reinicio del servicio vFlowProxy'''&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', 'Monaco', 'Courier New', monospace;&amp;quot;&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service status&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service stop&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service start&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El fichero de configuración del demonio &amp;lt;cvode&amp;gt;vFlowProxy&amp;lt;/code&amp;gt; se encuentra en &amp;lt;code&amp;gt;/etc/MDtel/vFlowProxy.conf&amp;lt;/code&amp;gt;, si bien este fichero de configuración no se modificará habitualmente (los parámetros generales de configuración de vFlowProxy se encuentran en la BBDD de vFlow)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Relevante para poder '''poner en marcha un loader''':&lt;br /&gt;
* Subir el fichero inicial previamente a la carpeta destino según entorno (p. ej &amp;lt;code&amp;gt;/var/www/html/storages/production&amp;lt;/code&amp;gt;&lt;br /&gt;
* Tipo de loader --&amp;gt; API&lt;br /&gt;
* Método --&amp;gt; GET&lt;br /&gt;
* URL --&amp;gt; (ejemplo: http://172.25.129.242/storages/test/fichero-pru.txt)&lt;br /&gt;
::* Existirán URL &amp;quot;production&amp;quot;, &amp;quot;staging&amp;quot; y &amp;quot;test&amp;quot;&lt;br /&gt;
* Text Splitter: Recursive&lt;br /&gt;
* Qdrant --&amp;gt; localhost:6333&lt;br /&gt;
* Record Manager --&amp;gt; SQLite&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Se adjunta imagen a modo de ejemplo&lt;br /&gt;
[[Archivo:Alta loader vflow.png|800px|miniaturadeimagen|no|alta loader vFlow|link=]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gestión en vFlow ==&lt;br /&gt;
vFlow prevé la existencia de tres entornos que permita hacer una gestión segura de agentes y RAG:&lt;br /&gt;
&lt;br /&gt;
* Producción&lt;br /&gt;
* Preproducción&lt;br /&gt;
* Pruebas&lt;br /&gt;
&lt;br /&gt;
Para cada agente o store de RAG se podrá desplegar un entorno (producción), dos o los tres entornos&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #f0fff4; border: 3px solid #c6f6d5; padding: 1em; border-radius: 4px;width: fit-content; margin-left: 0px&amp;quot;&amp;gt;&lt;br /&gt;
✅ '''Recomendación'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En la mayoría de los casos con disponer de entorno de producción y preproducción tanto para agente como para RAG será suficiente&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Para realizar una gestión completa en vFlow (suponiendo tres entornos y gestión de agentes y RAG), deberemos tener&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Archivo:Gestión RAG.png|1000px|miniaturadeimagen|centro|Gestión RAG en vFlow|link=]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''En orquestador'''&lt;br /&gt;
* Crear '''tres stores''' (pro/pre/pru); en cada store:&lt;br /&gt;
::* En total '''tres loaders'''. Crear un loader por entorno (p.ej /pro/nombrefich). &lt;br /&gt;
::* Subir un primer &amp;quot;nombrefich&amp;quot;&lt;br /&gt;
::::* tipo texto (versión 0)&lt;br /&gt;
::::* el mismo para todos los entornos&lt;br /&gt;
::::* se sube por medios convencionales (p. ej SCP)&lt;br /&gt;
* Asegurar que los stores queden totalmente creados (estado &amp;quot;UPSERTED&amp;quot;)&lt;br /&gt;
* Crear '''tres agentes''' (pro/pre/pru)&lt;br /&gt;
::* Asociar a stores (pro/pre/pru)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''En flow'''&lt;br /&gt;
* Crear '''un agente'''&lt;br /&gt;
::* Vincularlo a los tres agentes de orquestador (pro/pre/pru)&lt;br /&gt;
* Crear '''un store'''&lt;br /&gt;
::* Vinculado a los tres stores de orquestador (pro/pre/pru)&lt;br /&gt;
* Crear '''un loader'''&lt;br /&gt;
::* Loader vinculado a agente de vflow&lt;br /&gt;
::* C_NAME loader coincidirá con los de orquestador (p.ej &amp;quot;nombrefich&amp;quot;)&lt;br /&gt;
::* Subir nueva versión v1 (&amp;quot;.txt&amp;quot;, &amp;quot;.pdf&amp;quot;, &amp;quot;.doc&amp;quot;, &amp;quot;.docx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Diagnósticos ==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/vFlowProxy/vFlowProxy.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En nodo vFlowProxy&lt;br /&gt;
::para cualquier canal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
nc localhost 1131&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En nodo vFlowProxy&lt;br /&gt;
::Monitoriza estado del proceso vflowProxy&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
  &amp;quot;proceso&amp;quot;: {&lt;br /&gt;
    &amp;quot;nombre&amp;quot;: &amp;quot;vFlowProxy&amp;quot;,&lt;br /&gt;
    &amp;quot;version&amp;quot;: &amp;quot;00.00.01&amp;quot;,&lt;br /&gt;
    &amp;quot;inicio_ts&amp;quot;: 1771315153,&lt;br /&gt;
    &amp;quot;inicio_cad&amp;quot;: &amp;quot;20260217 085913&amp;quot;,&lt;br /&gt;
    &amp;quot;log_alarmas_val&amp;quot;: 8,&lt;br /&gt;
    &amp;quot;log_alarma_ultimo_ts&amp;quot;: 1771970401,&lt;br /&gt;
    &amp;quot;log_alarma_ultimo_ts_cad&amp;quot;: &amp;quot;20260224 230001&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;diagnostico&amp;quot;: {&lt;br /&gt;
    &amp;quot;gmp&amp;quot;: {&lt;br /&gt;
      &amp;quot;msj_val&amp;quot;: 1022,&lt;br /&gt;
      &amp;quot;msj_max&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;buf_val&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;buf_max&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;tarea_val&amp;quot;: 7,&lt;br /&gt;
      &amp;quot;tarea_max&amp;quot;: 15&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;tiempo&amp;quot;: {&lt;br /&gt;
      &amp;quot;uptime&amp;quot;: 716665,&lt;br /&gt;
      &amp;quot;uptime_dias&amp;quot;: 8,&lt;br /&gt;
      &amp;quot;uptime_horas&amp;quot;: 7,&lt;br /&gt;
      &amp;quot;uptime_minutos&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;uptime_segundos&amp;quot;: 25&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;wws&amp;quot;: {&lt;br /&gt;
      &amp;quot;conexiones_val&amp;quot;: 0,&lt;br /&gt;
      &amp;quot;conexiones_max_periodo&amp;quot;: 0,&lt;br /&gt;
      &amp;quot;hilos_val&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;hilos_max&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;wsi_cad&amp;quot;: &amp;quot;sesiones=0/200&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;alarmas_nivel_max&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;alarmas&amp;quot;: []&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es relevante la monitorización de sesiones  &amp;lt;code&amp;gt;&amp;quot;wsi_cad&amp;quot;: &amp;quot;sesiones=0/200&amp;quot;&amp;lt;/code&amp;gt; (usadas/máximas)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
asterisk -rv | grep callsquare_name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::en nodo Omnisuite&lt;br /&gt;
::para canal voz&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/xcally/agi-combined.yyyy-mm-dd.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::en nodo Omnisuite&lt;br /&gt;
::para canal voz&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/xcally/routing-combined.yyyy-mm-dd.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::para canal voz&lt;br /&gt;
&lt;br /&gt;
== Para probar desde vFlow ==&lt;br /&gt;
&lt;br /&gt;
En /home/sat/vFlowProxy hay scripts de prueba (se configuran en el vars.sh); para usar los scripts de prueba tendremos que tener también &amp;quot;.ini&amp;quot; en vFlow&lt;br /&gt;
&lt;br /&gt;
Es útil comenzar con&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/home/sat/vFlowProxy/vFlowGetInfo.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
que sin parámetros adicionales confirma el correcto estado de vFlowProxy&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
  &amp;quot;app&amp;quot;: &amp;quot;vFlowProxy&amp;quot;,&lt;br /&gt;
  &amp;quot;version&amp;quot;: &amp;quot;00.00.01&amp;quot;,&lt;br /&gt;
  &amp;quot;sessions_opened&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;sessions_limit&amp;quot;: 200,&lt;br /&gt;
  &amp;quot;sessions_sleep_timeout_s&amp;quot;: 3600,&lt;br /&gt;
  &amp;quot;alarms&amp;quot;: 8&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Integración de vFlow desde Omnisuite ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Descripción general ===&lt;br /&gt;
En Omnisuite, la integración con vFlow, se realiza con el programa vFlowOmnisuite, que podrá ser invocado como ejecutable (más rápido, para debian), o como Python (más universal)&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
    /usr/local/sbin/vFlowOmnisuite (OPCIÓN PREFERENTE)&lt;br /&gt;
    /usr/local/sbin/vFlowOmnisuite.py (LEGACY)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Asociado al programa existen los siguientes ficheros de configuración (.ini):&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; de plataforma''' Omnisuite en vFlow --&amp;gt; Solo contiene uuid de la plataforma; se entrega un &amp;quot;.ini&amp;quot; a modo de ejemplo en &amp;lt;code&amp;gt;/etc/MDtel/vFlow/platform.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE PLATAFORMA&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
   [uuids]&lt;br /&gt;
   platform=1d111530-e22d-11f0-b0f2-5254008bef96&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; por agente''' en vFlow --&amp;gt; Solo contiene uuid del agente según su identificación en vFlow ('''NO''' en un orquestador, por ejemplo flowise); se entrega un &amp;quot;.ini&amp;quot; asociado a un agente &amp;quot;loop&amp;quot; existente en Flowise &amp;lt;code&amp;gt;/etc/MDtel/vFlow/agent_loop_01.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE AGENTE&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
   [uuids]&lt;br /&gt;
   agent=1a3a1020-ea1d-11f0-b4a5-5254008bef96&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; por servicio''' --&amp;gt; Configuración de cada servicio en Omnisuite; se entrega un &amp;quot;.ini&amp;quot; a modo de ejemplo en &amp;lt;code&amp;gt;/etc/MDtel/vFlow/service.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
En cada fichero de servicio configuraremos&lt;br /&gt;
::* Donde está Vflow&lt;br /&gt;
::* Agente&lt;br /&gt;
::* Plataforma&lt;br /&gt;
::* timeout_s --&amp;gt; Importante, es afectado por el LLM&lt;br /&gt;
::* channel_text_type --&amp;gt; IMPORTANTE si el servicio es de texto que esté bien (vacio solo si el servicio es de texto, NO COMENTARLO)&lt;br /&gt;
::* environment --&amp;gt; production, staging, test&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE SERVICIO&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
  [arch_uuids]&lt;br /&gt;
  agent=/etc/MDtel/vFlow/agent_loop_01.ini&lt;br /&gt;
  platform=/etc/MDtel/vFlow/platform.ini&lt;br /&gt;
&lt;br /&gt;
  [vflow]&lt;br /&gt;
  host_port=172.25.129.242:7900&lt;br /&gt;
  timeout_s=20&lt;br /&gt;
  # channel_type=[voice|chat|email]&lt;br /&gt;
  channel_type=chat&lt;br /&gt;
  # environment=[production|staging|test]&lt;br /&gt;
  environment=production&lt;br /&gt;
  language=es&lt;br /&gt;
&lt;br /&gt;
  [omnisuite]&lt;br /&gt;
  # channel_text_type=[chat|mail|sms|whatsup]&lt;br /&gt;
  channel_text_type=chat&lt;br /&gt;
  service_id=vflow_service_id&lt;br /&gt;
  service_name=vflow_service_name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La imagen siguiente muestra el esquema de relación entre orquestador/plataforma/agente/servicio en la plataforma y en vFlow&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Relaciones vFlow plat orq ag serv.png|800px|miniaturadeimagen|centro|Relación orquestador-plataforma-agente-servicio]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Invocación ===&lt;br /&gt;
=== Generales ===&lt;br /&gt;
&lt;br /&gt;
Ver configuración&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; configPrint &amp;lt;omnisuite_UniqueId&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
Configuration:&lt;br /&gt;
  agent_arch_uuid=/etc/MDtel/vFlow/agent_fse_rapido.ini&lt;br /&gt;
  agent_uuid=3487af28-1d14-11f1-803c-525400ef204c&lt;br /&gt;
  platform_arch_uuid=/etc/MDtel/vFlow/platform_labomsui.ini&lt;br /&gt;
  platform_uuid=9a54ea74-f050-11f0-bdf1-5254008bef96&lt;br /&gt;
&lt;br /&gt;
  vflow_host_port=labvflow.mdnova.local&lt;br /&gt;
  vflow_timeout_s=50&lt;br /&gt;
  vflow_environment=production&lt;br /&gt;
  vflow_channel_type=voice&lt;br /&gt;
  vflow_language=es&lt;br /&gt;
&lt;br /&gt;
  omnisuite_channel_text_type=chat&lt;br /&gt;
  omnisuite_service_id=287&lt;br /&gt;
  omnisuite_service_name=desarrollo&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;errorCad&amp;quot;: &amp;quot;OK&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ver versión&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Para canales de texto ====&lt;br /&gt;
&lt;br /&gt;
Para canales de texto en Omnisuite existe un único Comando de invocación &amp;quot;omnisuiteText&amp;quot;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 1500px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; omnisuiteText &amp;lt;omnisuite_id&amp;gt; &amp;lt;omnisuite_websiteId&amp;gt; &amp;lt;omnisuite_createdAt&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt; &amp;lt;question&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros ( Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Obligatoriedad !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;config_arch&amp;gt;` || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_id&amp;gt;` || OBLIGATORIO || Identificativo de la interacción en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_websiteId&amp;gt;` || OBLIGATORIO || Identificativo del servicio en Omnisuite (ej. website id en chat)&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_createdAt&amp;gt;` || OBLIGATORIO || Creación de la interacción&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_id&amp;gt;` || OPCIONAL || Id de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_phone_number&amp;gt;` || OPCIONAL || Telf de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_email&amp;gt;` || OPCIONAL || Email de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;question&amp;gt;` || OBLIGATORIO || Texto a enviar al orquestado (p. ej. Flowise)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
 &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
 &amp;quot;session&amp;quot;: &amp;quot;e926548d-fdcf-11f0-a793-525400ef204c&amp;quot;,&lt;br /&gt;
 &amp;quot;language&amp;quot;: &amp;quot;es&amp;quot;,&lt;br /&gt;
 &amp;quot;response&amp;quot;: &amp;quot;HOLA&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Para canales de voz ====&lt;br /&gt;
Para  canales de voz, existen comandos para &amp;quot;abrir sesión&amp;quot;, &amp;quot;enviar texto&amp;quot; y &amp;quot;cerrar sesión&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Abrir sesión =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 1200px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; sessionOpen &amp;lt;omnisuite_UniqueId&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros (Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Requisito !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;omnisuite_UniqueId&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Unique_ID de asterisk de la llamada en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_id&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Id de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_phone_number&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Telf de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_email&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Email de cliente en Omnisuite&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
    &amp;quot;session&amp;quot;: &amp;quot;ec73df29-f08a-11f0-a8ec-525400ef204c&amp;quot;,&lt;br /&gt;
    &amp;quot;platform_id&amp;quot;: &amp;quot;146&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''El value correspondiente al key &amp;quot;session&amp;quot; deberá ser guardado en una variable para siguientes invocaciones'''&lt;br /&gt;
&lt;br /&gt;
===== Enviar texto =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 700px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; textRequest &amp;lt;vflow_session_uuid&amp;gt; &amp;lt;question&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Requisito !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_session_uuid&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Variable &amp;quot;session&amp;quot; almacenada en el &amp;quot;sessionOpen&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;question&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Texto a enviar al orquestado (p. ej. Flowise) (normal, abandoned, other)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
    &amp;quot;session&amp;quot;: &amp;quot;c6f6fad7-f6c1-11f0-a793-525400ef204c&amp;quot;,&lt;br /&gt;
    &amp;quot;language&amp;quot;: &amp;quot;ES&amp;quot;,&lt;br /&gt;
    &amp;quot;response&amp;quot;: &amp;quot;Cristóbal Colón.&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Cerrar sesión=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 800px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; sessionClose &amp;lt;vflow_session_uuid&amp;gt; &amp;lt;vflow_cause&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros  (Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Estado !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_session_uuid&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Variable &amp;quot;session&amp;quot; almacenada en el &amp;quot;sessionOpen&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_cause&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || (normal, abandoned, expired, other)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 104,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;Wrong session&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ejemplos para omnisuite ===&lt;br /&gt;
&lt;br /&gt;
'''Ejemplo de chat'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 1400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_chat.ini&amp;quot; &amp;quot;omnisuiteText&amp;quot; &amp;quot;{{interaction.id}}&amp;quot; &amp;quot;{{account.id}}&amp;quot; &amp;quot;{{interaction.createdAt}}&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;{{message.body}}&amp;quot; | jq -r '.response'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Ejemplo de voz'''&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen cally square.jpg|1024px|none|miniatura|Ejemplo de flujo de Cally Square]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 1000px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_voice.ini&amp;quot; &amp;quot;sessionOpen&amp;quot; &amp;quot;{UNIQUEID}&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; |  jq -r '.session' &amp;lt;/pre&amp;gt;&lt;br /&gt;
::&amp;lt;small&amp;gt;salida del comando almacenado en variable &amp;quot;vflow_sessionopen_response&amp;quot; para su posterior uso en cally square&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen sessionopen.jpg|550px|center|miniatura|Abrir sesión en vFlow]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 1400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_desa_voz.ini&amp;quot; &amp;quot;textRequest&amp;quot; &amp;quot;{vflow_sessionopen_response}&amp;quot; &amp;quot;{OPENAI_WHISPER_TRANSCRIPT}&amp;quot; | jq -r '.response'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::&amp;lt;small&amp;gt;la voz se ha transcrito con OpenAI, por eso se usa como parámetro {OPENAI_WHISPER_TRANSCRIPT})&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen textrequest.jpg|550px|center|miniatura|Enviar texto en vFlow]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 1000px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt; &lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_desa_voz.ini&amp;quot; &amp;quot;sessionClose&amp;quot; &amp;quot;{{vflow_sessionopen_response}}&amp;quot; &amp;quot;normal&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen sessionclose.jpg|900px|center|miniatura|Cerrar sesión en vFlow]]&lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:VIVAit Call]]&lt;br /&gt;
[[Category:Omnisuite]]&lt;br /&gt;
[[Category:IA]]&lt;/div&gt;</summary>
		<author><name>Alfredo.rodriguez</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_de_vFlow&amp;diff=17179</id>
		<title>Manual de operación de vFlow</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_de_vFlow&amp;diff=17179"/>
		<updated>2026-03-24T11:12:19Z</updated>

		<summary type="html">&lt;p&gt;Alfredo.rodriguez: /* Puesta en marcha de nodo vFlow */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Descripción general vFlow ==&lt;br /&gt;
&lt;br /&gt;
vFlow es un módulo de conexión a sistemas de inteligencia artifical para sistemas de comunicaciones unificadas, ya sean sistemas corporativos o contact center&lt;br /&gt;
Gracias a vFlow, las plataformas de UC dispondrán de una solución para comunicarse con sistemas IA utilizando un mismo mecanismo independientemente de la solución de inteligencia artificial que se utilice&lt;br /&gt;
&lt;br /&gt;
Para proporcionar el servicio de manera completa, vFlow (en concreto el orquestador) se conectará a sistemas de inteligencia artificial (LLM) que permitirán desarrollar los agentes definidos en los orquestadores&lt;br /&gt;
&lt;br /&gt;
'''Conceptos:'''&lt;br /&gt;
* Plataforma&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Plataforma de comunicaciones unificadas; por ejemplo Omnisuite o VIVAit Call&lt;br /&gt;
* Orquestador&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Plataforma agéntica de IA (por ejemplo Flowise)&lt;br /&gt;
* vFlowProxy&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Módulo VIVAit que conecta multiples plataformas con múltiples orquestadores&lt;br /&gt;
* LLM&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Modelo de lenguaje natural que usará un orquestadores&lt;br /&gt;
* Agente&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Cada uno de los flujos creados en vFlow; corresponde a un par plataforma/agentflow de orquestador&lt;br /&gt;
* Servicio&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Cada elemento de negocio en la plataforma de CU (por ejemplo VDN)&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Arquitectura Vflow - v2.jpg|1000px|center|Arquitecura de vFlow]]&lt;br /&gt;
&lt;br /&gt;
Los '''módulos principales''' de vFlow son:&lt;br /&gt;
* vFlowProxy: Recibe las conexiones de los sistemas de comunicaciones unificadas, y conecta con los orquestadores de Inteligencia Artificial de manera segura y adaptada al tipo de servicio; el acceso a vFlow Proxy desde las plataformas se realizará mediante:&lt;br /&gt;
* Programa cliente: Se utiliza en el sistema de comunicaciones unificadas (actualmente VIVAit Call y Omnsisuite) para invocar a vFlow&lt;br /&gt;
* API REST: Alternativa al programa cliente, vFlowProxy proporciona una API REST que facilita que cualquier plataforma pueda comunicarse mediante un procedimiento estándar y documentado&lt;br /&gt;
* Portal de administración vFlow: Permite visualizar las interaciones realizadas y configurar el sistema&lt;br /&gt;
* Orquestador de IA: Herramienta de Inteligencia Artificial que permitirá la creación de aplicaciones personalizadas (agentes)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Otros elementos''' relevantes serán:&lt;br /&gt;
* Base de datos vFlow:&lt;br /&gt;
:* Almacena información sobre sesiones y transacciones realizadas&lt;br /&gt;
:* Almacena información de configuración sobre vFlow&lt;br /&gt;
:* Gestiona el RAG de las inteligencias artificiales a usar&lt;br /&gt;
&lt;br /&gt;
== Puesta en marcha de nodo vFlow ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Existe un nodo vFlow en los repositorios habituales proporcionados&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para '''dar de alta nodo vflow en un cliente''' hay que:&lt;br /&gt;
* Configurar IP (por defecto la maquina va configurada por DHCP)&lt;br /&gt;
* Adaptar el firewall, para ello REVISAR el fichero &amp;lt;code&amp;gt;/etc/firewall/vars.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
* Certificados validos en apache&lt;br /&gt;
* REVISAR ficheros &amp;lt;code&amp;gt;/etc/apache2/sites-enabled/flowise.conf&amp;lt;/code&amp;gt; y &amp;lt;code&amp;gt;/etc/apache2/sites-enabled/vFlow.conf&amp;lt;/code&amp;gt; la variable &amp;lt;code&amp;gt;ServerName&amp;lt;/code&amp;gt; (nombre valido de la maquina)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Accesos vFlow''' (se debe cambiar tras instalación):&lt;br /&gt;
* Usuario ssh y de SO por defecto es sat y clave a proporcionar.&lt;br /&gt;
* Para el portal de flowise las credenciales son usuario: vfloadmin@vflow.com clave: A proporcionar&lt;br /&gt;
* Para el portal de vflow las credenciales son usaurio sat y clave a proporcionar.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Accesos BBDD vFlow'''&lt;br /&gt;
* Para acceder a la base de datos desde el workbenck solo desde localhost (o tunel):&lt;br /&gt;
* BBDD Vlfow (admin)  vflowadmin // clave a proporcionar&lt;br /&gt;
* BBDD Vlfow (no_admin)  vflow //  clave a proporcionar&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Portal orquestador Flowise'''&lt;br /&gt;
&lt;br /&gt;
ubicado en https://host.cliente.xx:4567&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #fef6e7; border: 1px solid #fbd68a; padding: 1em; border-radius: 4px;width: fit-content; margin-left: 50px&amp;quot;&amp;gt;&lt;br /&gt;
'''⚠️ ATENCION !!'''&lt;br /&gt;
'''Los cambios en tablas de configuración de BBDD de vFlow (orquestadores, plataformas, agentes) requieren reinicio del servicio vFlowProxy'''&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', 'Monaco', 'Courier New', monospace;&amp;quot;&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service status&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service stop&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service start&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El fichero de configuración del demonio &amp;lt;cvode&amp;gt;vFlowProxy&amp;lt;/code&amp;gt; se encuentra en &amp;lt;code&amp;gt;/etc/MDtel/vFlowProxy.conf&amp;lt;/code&amp;gt;, si bien este fichero de configuración no se modificará habitualmente (los parámetros generales de configuración de vFlowProxy se encuentran en la BBDD de vFlow)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Relevante para poder '''poner en marcha un loader''':&lt;br /&gt;
* Subir el fichero inicial previamente a la carpeta destino según entorno (p. ej &amp;lt;code&amp;gt;/var/www/html/storages/production&amp;lt;/code&amp;gt;&lt;br /&gt;
* Tipo de loader --&amp;gt; API&lt;br /&gt;
* Método --&amp;gt; GET&lt;br /&gt;
* URL --&amp;gt; (ejemplo: http://172.25.129.242/storages/test/fichero-pru.txt)&lt;br /&gt;
::* Existirán URL &amp;quot;production&amp;quot;, &amp;quot;staging&amp;quot; y &amp;quot;test&amp;quot;&lt;br /&gt;
* Text Splitter: Recursive&lt;br /&gt;
* Qdrant --&amp;gt; localhost:6333&lt;br /&gt;
* Record Manager --&amp;gt; SQLite&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Se adjunta imagen a modo de ejemplo&lt;br /&gt;
[[Archivo:Alta loader vflow.png|800px|miniaturadeimagen|no|alta loader vFlow|link=]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gestión en vFlow ==&lt;br /&gt;
vFlow prevé la existencia de tres entornos que permita hacer una gestión segura de agentes y RAG:&lt;br /&gt;
&lt;br /&gt;
* Producción&lt;br /&gt;
* Preproducción&lt;br /&gt;
* Pruebas&lt;br /&gt;
&lt;br /&gt;
Para cada agente o store de RAG se podrá desplegar un entorno (producción), dos o los tres entornos&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #f0fff4; border: 3px solid #c6f6d5; padding: 1em; border-radius: 4px;width: fit-content; margin-left: 0px&amp;quot;&amp;gt;&lt;br /&gt;
✅ '''Recomendación'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En la mayoría de los casos con disponer de entorno de producción y preproducción tanto para agente como para RAG será suficiente&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Para realizar una gestión completa en vFlow (suponiendo tres entornos y gestión de agentes y RAG), deberemos tener&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Archivo:Gestión RAG.png|1000px|miniaturadeimagen|centro|Gestión RAG en vFlow|link=]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''En orquestador'''&lt;br /&gt;
* Crear '''tres stores''' (pro/pre/pru); en cada store:&lt;br /&gt;
::* En total '''tres loaders'''. Crear un loader por entorno (p.ej /pro/nombrefich). &lt;br /&gt;
::* Subir un primer &amp;quot;nombrefich&amp;quot;&lt;br /&gt;
::::* tipo texto (versión 0)&lt;br /&gt;
::::* el mismo para todos los entornos&lt;br /&gt;
::::* se sube por medios convencionales (p. ej SCP)&lt;br /&gt;
* Asegurar que los stores queden totalmente creados (estado &amp;quot;UPSERTED&amp;quot;)&lt;br /&gt;
* Crear '''tres agentes''' (pro/pre/pru)&lt;br /&gt;
::* Asociar a stores (pro/pre/pru)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''En flow'''&lt;br /&gt;
* Crear '''un agente'''&lt;br /&gt;
::* Vincularlo a los tres agentes de orquestador (pro/pre/pru)&lt;br /&gt;
* Crear '''un store'''&lt;br /&gt;
::* Vinculado a los tres stores de orquestador (pro/pre/pru)&lt;br /&gt;
* Crear '''un loader'''&lt;br /&gt;
::* Loader vinculado a agente de vflow&lt;br /&gt;
::* C_NAME loader coincidirá con los de orquestador (p.ej &amp;quot;nombrefich&amp;quot;)&lt;br /&gt;
::* Subir nueva versión v1 (&amp;quot;.txt&amp;quot;, &amp;quot;.pdf&amp;quot;, &amp;quot;.doc&amp;quot;, &amp;quot;.docx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Diagnósticos ==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/vFlowProxy/vFlowProxy.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En nodo vFlowProxy&lt;br /&gt;
::para cualquier canal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
nc localhost 1131&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En nodo vFlowProxy&lt;br /&gt;
::Monitoriza estado del proceso vflowProxy&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
  &amp;quot;proceso&amp;quot;: {&lt;br /&gt;
    &amp;quot;nombre&amp;quot;: &amp;quot;vFlowProxy&amp;quot;,&lt;br /&gt;
    &amp;quot;version&amp;quot;: &amp;quot;00.00.01&amp;quot;,&lt;br /&gt;
    &amp;quot;inicio_ts&amp;quot;: 1771315153,&lt;br /&gt;
    &amp;quot;inicio_cad&amp;quot;: &amp;quot;20260217 085913&amp;quot;,&lt;br /&gt;
    &amp;quot;log_alarmas_val&amp;quot;: 8,&lt;br /&gt;
    &amp;quot;log_alarma_ultimo_ts&amp;quot;: 1771970401,&lt;br /&gt;
    &amp;quot;log_alarma_ultimo_ts_cad&amp;quot;: &amp;quot;20260224 230001&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;diagnostico&amp;quot;: {&lt;br /&gt;
    &amp;quot;gmp&amp;quot;: {&lt;br /&gt;
      &amp;quot;msj_val&amp;quot;: 1022,&lt;br /&gt;
      &amp;quot;msj_max&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;buf_val&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;buf_max&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;tarea_val&amp;quot;: 7,&lt;br /&gt;
      &amp;quot;tarea_max&amp;quot;: 15&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;tiempo&amp;quot;: {&lt;br /&gt;
      &amp;quot;uptime&amp;quot;: 716665,&lt;br /&gt;
      &amp;quot;uptime_dias&amp;quot;: 8,&lt;br /&gt;
      &amp;quot;uptime_horas&amp;quot;: 7,&lt;br /&gt;
      &amp;quot;uptime_minutos&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;uptime_segundos&amp;quot;: 25&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;wws&amp;quot;: {&lt;br /&gt;
      &amp;quot;conexiones_val&amp;quot;: 0,&lt;br /&gt;
      &amp;quot;conexiones_max_periodo&amp;quot;: 0,&lt;br /&gt;
      &amp;quot;hilos_val&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;hilos_max&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;wsi_cad&amp;quot;: &amp;quot;sesiones=0/200&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;alarmas_nivel_max&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;alarmas&amp;quot;: []&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es relevante la monitorización de sesiones  &amp;lt;code&amp;gt;&amp;quot;wsi_cad&amp;quot;: &amp;quot;sesiones=0/200&amp;quot;&amp;lt;/code&amp;gt; (usadas/máximas)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
asterisk -rv | grep callsquare_name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::en nodo Omnisuite&lt;br /&gt;
::para canal voz&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/xcally/agi-combined.yyyy-mm-dd.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::en nodo Omnisuite&lt;br /&gt;
::para canal voz&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/xcally/routing-combined.yyyy-mm-dd.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::para canal voz&lt;br /&gt;
&lt;br /&gt;
== Para probar desde vFlow ==&lt;br /&gt;
&lt;br /&gt;
En /home/sat/vFlowProxy hay scripts de prueba (se configuran en el vars.sh); para usar los scripts de prueba tendremos que tener también &amp;quot;.ini&amp;quot; en vFlow&lt;br /&gt;
&lt;br /&gt;
Es útil comenzar con&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/home/sat/vFlowProxy/vFlowGetInfo.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
que sin parámetros adicionales confirma el correcto estado de vFlowProxy&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
  &amp;quot;app&amp;quot;: &amp;quot;vFlowProxy&amp;quot;,&lt;br /&gt;
  &amp;quot;version&amp;quot;: &amp;quot;00.00.01&amp;quot;,&lt;br /&gt;
  &amp;quot;sessions_opened&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;sessions_limit&amp;quot;: 200,&lt;br /&gt;
  &amp;quot;sessions_sleep_timeout_s&amp;quot;: 3600,&lt;br /&gt;
  &amp;quot;alarms&amp;quot;: 8&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Integración de vFlow desde Omnisuite ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Descripción general ===&lt;br /&gt;
En Omnisuite, la integración con vFlow, se realiza con el programa vFlowOmnisuite, que podrá ser invocado como ejecutable (más rápido, para debian), o como Python (más universal)&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
    /usr/local/sbin/vFlowOmnisuite (OPCIÓN PREFERENTE)&lt;br /&gt;
    /usr/local/sbin/vFlowOmnisuite.py (LEGACY)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Asociado al programa existen los siguientes ficheros de configuración (.ini):&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; de plataforma''' Omnisuite en vFlow --&amp;gt; Solo contiene uuid de la plataforma; se entrega un &amp;quot;.ini&amp;quot; a modo de ejemplo en &amp;lt;code&amp;gt;/etc/MDtel/vFlow/platform.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE PLATAFORMA&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
   [uuids]&lt;br /&gt;
   platform=1d111530-e22d-11f0-b0f2-5254008bef96&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; por agente''' en vFlow --&amp;gt; Solo contiene uuid del agente según su identificación en vFlow ('''NO''' en un orquestador, por ejemplo flowise); se entrega un &amp;quot;.ini&amp;quot; asociado a un agente &amp;quot;loop&amp;quot; existente en Flowise &amp;lt;code&amp;gt;/etc/MDtel/vFlow/agent_loop_01.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE AGENTE&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
   [uuids]&lt;br /&gt;
   agent=1a3a1020-ea1d-11f0-b4a5-5254008bef96&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; por servicio''' --&amp;gt; Configuración de cada servicio en Omnisuite; se entrega un &amp;quot;.ini&amp;quot; a modo de ejemplo en &amp;lt;code&amp;gt;/etc/MDtel/vFlow/service.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
En cada fichero de servicio configuraremos&lt;br /&gt;
::* Donde está Vflow&lt;br /&gt;
::* Agente&lt;br /&gt;
::* Plataforma&lt;br /&gt;
::* timeout_s --&amp;gt; Importante, es afectado por el LLM&lt;br /&gt;
::* channel_text_type --&amp;gt; IMPORTANTE si el servicio es de texto que esté bien (vacio solo si el servicio es de texto, NO COMENTARLO)&lt;br /&gt;
::* environment --&amp;gt; production, staging, test&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE SERVICIO&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
  [arch_uuids]&lt;br /&gt;
  agent=/etc/MDtel/vFlow/agent_loop_01.ini&lt;br /&gt;
  platform=/etc/MDtel/vFlow/platform.ini&lt;br /&gt;
&lt;br /&gt;
  [vflow]&lt;br /&gt;
  host_port=172.25.129.242:7900&lt;br /&gt;
  timeout_s=20&lt;br /&gt;
  # channel_type=[voice|chat|email]&lt;br /&gt;
  channel_type=chat&lt;br /&gt;
  # environment=[production|staging|test]&lt;br /&gt;
  environment=production&lt;br /&gt;
  language=es&lt;br /&gt;
&lt;br /&gt;
  [omnisuite]&lt;br /&gt;
  # channel_text_type=[chat|mail|sms|whatsup]&lt;br /&gt;
  channel_text_type=chat&lt;br /&gt;
  service_id=vflow_service_id&lt;br /&gt;
  service_name=vflow_service_name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La imagen siguiente muestra el esquema de relación entre orquestador/plataforma/agente/servicio en la plataforma y en vFlow&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Relaciones vFlow plat orq ag serv.png|800px|miniaturadeimagen|centro|Relación orquestador-plataforma-agente-servicio]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Invocación ===&lt;br /&gt;
=== Generales ===&lt;br /&gt;
&lt;br /&gt;
Ver configuración&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; configPrint &amp;lt;omnisuite_UniqueId&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
Configuration:&lt;br /&gt;
  agent_arch_uuid=/etc/MDtel/vFlow/agent_fse_rapido.ini&lt;br /&gt;
  agent_uuid=3487af28-1d14-11f1-803c-525400ef204c&lt;br /&gt;
  platform_arch_uuid=/etc/MDtel/vFlow/platform_labomsui.ini&lt;br /&gt;
  platform_uuid=9a54ea74-f050-11f0-bdf1-5254008bef96&lt;br /&gt;
&lt;br /&gt;
  vflow_host_port=labvflow.mdnova.local&lt;br /&gt;
  vflow_timeout_s=50&lt;br /&gt;
  vflow_environment=production&lt;br /&gt;
  vflow_channel_type=voice&lt;br /&gt;
  vflow_language=es&lt;br /&gt;
&lt;br /&gt;
  omnisuite_channel_text_type=chat&lt;br /&gt;
  omnisuite_service_id=287&lt;br /&gt;
  omnisuite_service_name=desarrollo&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;errorCad&amp;quot;: &amp;quot;OK&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ver versión&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Para canales de texto ====&lt;br /&gt;
&lt;br /&gt;
Para canales de texto en Omnisuite existe un único Comando de invocación &amp;quot;omnisuiteText&amp;quot;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 1500px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; omnisuiteText &amp;lt;omnisuite_id&amp;gt; &amp;lt;omnisuite_websiteId&amp;gt; &amp;lt;omnisuite_createdAt&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt; &amp;lt;question&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros ( Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Obligatoriedad !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;config_arch&amp;gt;` || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_id&amp;gt;` || OBLIGATORIO || Identificativo de la interacción en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_websiteId&amp;gt;` || OBLIGATORIO || Identificativo del servicio en Omnisuite (ej. website id en chat)&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_createdAt&amp;gt;` || OBLIGATORIO || Creación de la interacción&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_id&amp;gt;` || OPCIONAL || Id de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_phone_number&amp;gt;` || OPCIONAL || Telf de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_email&amp;gt;` || OPCIONAL || Email de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;question&amp;gt;` || OBLIGATORIO || Texto a enviar al orquestado (p. ej. Flowise)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
 &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
 &amp;quot;session&amp;quot;: &amp;quot;e926548d-fdcf-11f0-a793-525400ef204c&amp;quot;,&lt;br /&gt;
 &amp;quot;language&amp;quot;: &amp;quot;es&amp;quot;,&lt;br /&gt;
 &amp;quot;response&amp;quot;: &amp;quot;HOLA&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Para canales de voz ====&lt;br /&gt;
Para  canales de voz, existen comandos para &amp;quot;abrir sesión&amp;quot;, &amp;quot;enviar texto&amp;quot; y &amp;quot;cerrar sesión&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Abrir sesión =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 1200px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; sessionOpen &amp;lt;omnisuite_UniqueId&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros (Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Requisito !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;omnisuite_UniqueId&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Unique_ID de asterisk de la llamada en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_id&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Id de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_phone_number&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Telf de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_email&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Email de cliente en Omnisuite&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
    &amp;quot;session&amp;quot;: &amp;quot;ec73df29-f08a-11f0-a8ec-525400ef204c&amp;quot;,&lt;br /&gt;
    &amp;quot;platform_id&amp;quot;: &amp;quot;146&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''El value correspondiente al key &amp;quot;session&amp;quot; deberá ser guardado en una variable para siguientes invocaciones'''&lt;br /&gt;
&lt;br /&gt;
===== Enviar texto =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 700px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; textRequest &amp;lt;vflow_session_uuid&amp;gt; &amp;lt;question&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Requisito !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_session_uuid&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Variable &amp;quot;session&amp;quot; almacenada en el &amp;quot;sessionOpen&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;question&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Texto a enviar al orquestado (p. ej. Flowise) (normal, abandoned, other)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
    &amp;quot;session&amp;quot;: &amp;quot;c6f6fad7-f6c1-11f0-a793-525400ef204c&amp;quot;,&lt;br /&gt;
    &amp;quot;language&amp;quot;: &amp;quot;ES&amp;quot;,&lt;br /&gt;
    &amp;quot;response&amp;quot;: &amp;quot;Cristóbal Colón.&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Cerrar sesión=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 800px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; sessionClose &amp;lt;vflow_session_uuid&amp;gt; &amp;lt;vflow_cause&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros  (Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Estado !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_session_uuid&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Variable &amp;quot;session&amp;quot; almacenada en el &amp;quot;sessionOpen&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_cause&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || (normal, abandoned, expired, other)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 104,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;Wrong session&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ejemplos para omnisuite ===&lt;br /&gt;
&lt;br /&gt;
'''Ejemplo de chat'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 1400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_chat.ini&amp;quot; &amp;quot;omnisuiteText&amp;quot; &amp;quot;{{interaction.id}}&amp;quot; &amp;quot;{{account.id}}&amp;quot; &amp;quot;{{interaction.createdAt}}&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;{{message.body}}&amp;quot; | jq -r '.response'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Ejemplo de voz'''&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen cally square.jpg|1024px|none|miniatura|Ejemplo de flujo de Cally Square]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 1000px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_voice.ini&amp;quot; &amp;quot;sessionOpen&amp;quot; &amp;quot;{UNIQUEID}&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; |  jq -r '.session' &amp;lt;/pre&amp;gt;&lt;br /&gt;
::&amp;lt;small&amp;gt;salida del comando almacenado en variable &amp;quot;vflow_sessionopen_response&amp;quot; para su posterior uso en cally square&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen sessionopen.jpg|550px|center|miniatura|Abrir sesión en vFlow]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 1400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_desa_voz.ini&amp;quot; &amp;quot;textRequest&amp;quot; &amp;quot;{vflow_sessionopen_response}&amp;quot; &amp;quot;{OPENAI_WHISPER_TRANSCRIPT}&amp;quot; | jq -r '.response'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::&amp;lt;small&amp;gt;la voz se ha transcrito con OpenAI, por eso se usa como parámetro {OPENAI_WHISPER_TRANSCRIPT})&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen textrequest.jpg|550px|center|miniatura|Enviar texto en vFlow]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 1000px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt; &lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_desa_voz.ini&amp;quot; &amp;quot;sessionClose&amp;quot; &amp;quot;{{vflow_sessionopen_response}}&amp;quot; &amp;quot;normal&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen sessionclose.jpg|900px|center|miniatura|Cerrar sesión en vFlow]]&lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:VIVAit Call]]&lt;br /&gt;
[[Category:Omnisuite]]&lt;br /&gt;
[[Category:IA]]&lt;/div&gt;</summary>
		<author><name>Alfredo.rodriguez</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_de_vFlow&amp;diff=17176</id>
		<title>Manual de operación de vFlow</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_de_vFlow&amp;diff=17176"/>
		<updated>2026-03-24T11:11:25Z</updated>

		<summary type="html">&lt;p&gt;Alfredo.rodriguez: /* Puesta en marcha de nodo vFlow */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Descripción general vFlow ==&lt;br /&gt;
&lt;br /&gt;
vFlow es un módulo de conexión a sistemas de inteligencia artifical para sistemas de comunicaciones unificadas, ya sean sistemas corporativos o contact center&lt;br /&gt;
Gracias a vFlow, las plataformas de UC dispondrán de una solución para comunicarse con sistemas IA utilizando un mismo mecanismo independientemente de la solución de inteligencia artificial que se utilice&lt;br /&gt;
&lt;br /&gt;
Para proporcionar el servicio de manera completa, vFlow (en concreto el orquestador) se conectará a sistemas de inteligencia artificial (LLM) que permitirán desarrollar los agentes definidos en los orquestadores&lt;br /&gt;
&lt;br /&gt;
'''Conceptos:'''&lt;br /&gt;
* Plataforma&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Plataforma de comunicaciones unificadas; por ejemplo Omnisuite o VIVAit Call&lt;br /&gt;
* Orquestador&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Plataforma agéntica de IA (por ejemplo Flowise)&lt;br /&gt;
* vFlowProxy&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Módulo VIVAit que conecta multiples plataformas con múltiples orquestadores&lt;br /&gt;
* LLM&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Modelo de lenguaje natural que usará un orquestadores&lt;br /&gt;
* Agente&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Cada uno de los flujos creados en vFlow; corresponde a un par plataforma/agentflow de orquestador&lt;br /&gt;
* Servicio&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Cada elemento de negocio en la plataforma de CU (por ejemplo VDN)&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Arquitectura Vflow - v2.jpg|1000px|center|Arquitecura de vFlow]]&lt;br /&gt;
&lt;br /&gt;
Los '''módulos principales''' de vFlow son:&lt;br /&gt;
* vFlowProxy: Recibe las conexiones de los sistemas de comunicaciones unificadas, y conecta con los orquestadores de Inteligencia Artificial de manera segura y adaptada al tipo de servicio; el acceso a vFlow Proxy desde las plataformas se realizará mediante:&lt;br /&gt;
* Programa cliente: Se utiliza en el sistema de comunicaciones unificadas (actualmente VIVAit Call y Omnsisuite) para invocar a vFlow&lt;br /&gt;
* API REST: Alternativa al programa cliente, vFlowProxy proporciona una API REST que facilita que cualquier plataforma pueda comunicarse mediante un procedimiento estándar y documentado&lt;br /&gt;
* Portal de administración vFlow: Permite visualizar las interaciones realizadas y configurar el sistema&lt;br /&gt;
* Orquestador de IA: Herramienta de Inteligencia Artificial que permitirá la creación de aplicaciones personalizadas (agentes)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Otros elementos''' relevantes serán:&lt;br /&gt;
* Base de datos vFlow:&lt;br /&gt;
:* Almacena información sobre sesiones y transacciones realizadas&lt;br /&gt;
:* Almacena información de configuración sobre vFlow&lt;br /&gt;
:* Gestiona el RAG de las inteligencias artificiales a usar&lt;br /&gt;
&lt;br /&gt;
== Puesta en marcha de nodo vFlow ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Existe un nodo vFlow en los repositorios habituales proporcionados&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para '''dar de alta nodo vflow en un cliente''' hay que:&lt;br /&gt;
* Configurar IP (por defecto la maquina va configurada por DHCP)&lt;br /&gt;
* Adaptar el firewall, para ello REVISAR el fichero &amp;lt;code&amp;gt;/etc/firewall/vars.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
* Certificados validos en apache&lt;br /&gt;
* REVISAR ficheros &amp;lt;code&amp;gt;/etc/apache2/sites-enabled/flowise.conf&amp;lt;/code&amp;gt; y &amp;lt;code&amp;gt;/etc/apache2/sites-enabled/vFlow.conf&amp;lt;/code&amp;gt; la variable &amp;lt;code&amp;gt;ServerName&amp;lt;/code&amp;gt; (nombre valido de la maquina)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Accesos vFlow''' (se debe cambiar tras instalación):&lt;br /&gt;
* Usuario ssh y de SO por defecto es sat y clave a proporcionar.&lt;br /&gt;
* Para el portal de flowise las credenciales son usuario: vfloadmin@vflow.com clave: A proporcionar&lt;br /&gt;
* Para el portal de vflow las credenciales son usaurio sat y clave a proporcionar.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Accesos BBDD vFlow'''&lt;br /&gt;
* Para acceder a la base de datos desde el workbenck solo desde localhost (o tunel):&lt;br /&gt;
* BBDD Vlfow (admin)  vflowadmin // clave a proporcionar&lt;br /&gt;
* BBDD Vlfow (no_admin)  vflow //  clave a proporcionar&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Portal orquestador Flowise'''&lt;br /&gt;
&lt;br /&gt;
ubicado en https://host.cliente.xx:4567&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #fef6e7; border: 1px solid #fbd68a; padding: 1em; border-radius: 4px;max-width: 1000px; margin-left: 50px&amp;quot;&amp;gt;&lt;br /&gt;
'''⚠️ ATENCION !!'''&lt;br /&gt;
'''Los cambios en tablas de configuración de BBDD de vFlow (orquestadores, plataformas, agentes) requieren reinicio del servicio vFlowProxy'''&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', 'Monaco', 'Courier New', monospace;&amp;quot;&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service status&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service stop&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service start&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El fichero de configuración del demonio &amp;lt;cvode&amp;gt;vFlowProxy&amp;lt;/code&amp;gt; se encuentra en &amp;lt;code&amp;gt;/etc/MDtel/vFlowProxy.conf&amp;lt;/code&amp;gt;, si bien este fichero de configuración no se modificará habitualmente (los parámetros generales de configuración de vFlowProxy se encuentran en la BBDD de vFlow)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Relevante para poder '''poner en marcha un loader''':&lt;br /&gt;
* Subir el fichero inicial previamente a la carpeta destino según entorno (p. ej &amp;lt;code&amp;gt;/var/www/html/storages/production&amp;lt;/code&amp;gt;&lt;br /&gt;
* Tipo de loader --&amp;gt; API&lt;br /&gt;
* Método --&amp;gt; GET&lt;br /&gt;
* URL --&amp;gt; (ejemplo: http://172.25.129.242/storages/test/fichero-pru.txt)&lt;br /&gt;
::* Existirán URL &amp;quot;production&amp;quot;, &amp;quot;staging&amp;quot; y &amp;quot;test&amp;quot;&lt;br /&gt;
* Text Splitter: Recursive&lt;br /&gt;
* Qdrant --&amp;gt; localhost:6333&lt;br /&gt;
* Record Manager --&amp;gt; SQLite&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Se adjunta imagen a modo de ejemplo&lt;br /&gt;
[[Archivo:Alta loader vflow.png|800px|miniaturadeimagen|no|alta loader vFlow|link=]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gestión en vFlow ==&lt;br /&gt;
vFlow prevé la existencia de tres entornos que permita hacer una gestión segura de agentes y RAG:&lt;br /&gt;
&lt;br /&gt;
* Producción&lt;br /&gt;
* Preproducción&lt;br /&gt;
* Pruebas&lt;br /&gt;
&lt;br /&gt;
Para cada agente o store de RAG se podrá desplegar un entorno (producción), dos o los tres entornos&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #f0fff4; border: 3px solid #c6f6d5; padding: 1em; border-radius: 4px;width: fit-content; margin-left: 0px&amp;quot;&amp;gt;&lt;br /&gt;
✅ '''Recomendación'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En la mayoría de los casos con disponer de entorno de producción y preproducción tanto para agente como para RAG será suficiente&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Para realizar una gestión completa en vFlow (suponiendo tres entornos y gestión de agentes y RAG), deberemos tener&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Archivo:Gestión RAG.png|1000px|miniaturadeimagen|centro|Gestión RAG en vFlow|link=]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''En orquestador'''&lt;br /&gt;
* Crear '''tres stores''' (pro/pre/pru); en cada store:&lt;br /&gt;
::* En total '''tres loaders'''. Crear un loader por entorno (p.ej /pro/nombrefich). &lt;br /&gt;
::* Subir un primer &amp;quot;nombrefich&amp;quot;&lt;br /&gt;
::::* tipo texto (versión 0)&lt;br /&gt;
::::* el mismo para todos los entornos&lt;br /&gt;
::::* se sube por medios convencionales (p. ej SCP)&lt;br /&gt;
* Asegurar que los stores queden totalmente creados (estado &amp;quot;UPSERTED&amp;quot;)&lt;br /&gt;
* Crear '''tres agentes''' (pro/pre/pru)&lt;br /&gt;
::* Asociar a stores (pro/pre/pru)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''En flow'''&lt;br /&gt;
* Crear '''un agente'''&lt;br /&gt;
::* Vincularlo a los tres agentes de orquestador (pro/pre/pru)&lt;br /&gt;
* Crear '''un store'''&lt;br /&gt;
::* Vinculado a los tres stores de orquestador (pro/pre/pru)&lt;br /&gt;
* Crear '''un loader'''&lt;br /&gt;
::* Loader vinculado a agente de vflow&lt;br /&gt;
::* C_NAME loader coincidirá con los de orquestador (p.ej &amp;quot;nombrefich&amp;quot;)&lt;br /&gt;
::* Subir nueva versión v1 (&amp;quot;.txt&amp;quot;, &amp;quot;.pdf&amp;quot;, &amp;quot;.doc&amp;quot;, &amp;quot;.docx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Diagnósticos ==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/vFlowProxy/vFlowProxy.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En nodo vFlowProxy&lt;br /&gt;
::para cualquier canal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
nc localhost 1131&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En nodo vFlowProxy&lt;br /&gt;
::Monitoriza estado del proceso vflowProxy&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
  &amp;quot;proceso&amp;quot;: {&lt;br /&gt;
    &amp;quot;nombre&amp;quot;: &amp;quot;vFlowProxy&amp;quot;,&lt;br /&gt;
    &amp;quot;version&amp;quot;: &amp;quot;00.00.01&amp;quot;,&lt;br /&gt;
    &amp;quot;inicio_ts&amp;quot;: 1771315153,&lt;br /&gt;
    &amp;quot;inicio_cad&amp;quot;: &amp;quot;20260217 085913&amp;quot;,&lt;br /&gt;
    &amp;quot;log_alarmas_val&amp;quot;: 8,&lt;br /&gt;
    &amp;quot;log_alarma_ultimo_ts&amp;quot;: 1771970401,&lt;br /&gt;
    &amp;quot;log_alarma_ultimo_ts_cad&amp;quot;: &amp;quot;20260224 230001&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;diagnostico&amp;quot;: {&lt;br /&gt;
    &amp;quot;gmp&amp;quot;: {&lt;br /&gt;
      &amp;quot;msj_val&amp;quot;: 1022,&lt;br /&gt;
      &amp;quot;msj_max&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;buf_val&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;buf_max&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;tarea_val&amp;quot;: 7,&lt;br /&gt;
      &amp;quot;tarea_max&amp;quot;: 15&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;tiempo&amp;quot;: {&lt;br /&gt;
      &amp;quot;uptime&amp;quot;: 716665,&lt;br /&gt;
      &amp;quot;uptime_dias&amp;quot;: 8,&lt;br /&gt;
      &amp;quot;uptime_horas&amp;quot;: 7,&lt;br /&gt;
      &amp;quot;uptime_minutos&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;uptime_segundos&amp;quot;: 25&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;wws&amp;quot;: {&lt;br /&gt;
      &amp;quot;conexiones_val&amp;quot;: 0,&lt;br /&gt;
      &amp;quot;conexiones_max_periodo&amp;quot;: 0,&lt;br /&gt;
      &amp;quot;hilos_val&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;hilos_max&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;wsi_cad&amp;quot;: &amp;quot;sesiones=0/200&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;alarmas_nivel_max&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;alarmas&amp;quot;: []&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es relevante la monitorización de sesiones  &amp;lt;code&amp;gt;&amp;quot;wsi_cad&amp;quot;: &amp;quot;sesiones=0/200&amp;quot;&amp;lt;/code&amp;gt; (usadas/máximas)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
asterisk -rv | grep callsquare_name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::en nodo Omnisuite&lt;br /&gt;
::para canal voz&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/xcally/agi-combined.yyyy-mm-dd.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::en nodo Omnisuite&lt;br /&gt;
::para canal voz&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/xcally/routing-combined.yyyy-mm-dd.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::para canal voz&lt;br /&gt;
&lt;br /&gt;
== Para probar desde vFlow ==&lt;br /&gt;
&lt;br /&gt;
En /home/sat/vFlowProxy hay scripts de prueba (se configuran en el vars.sh); para usar los scripts de prueba tendremos que tener también &amp;quot;.ini&amp;quot; en vFlow&lt;br /&gt;
&lt;br /&gt;
Es útil comenzar con&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/home/sat/vFlowProxy/vFlowGetInfo.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
que sin parámetros adicionales confirma el correcto estado de vFlowProxy&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
  &amp;quot;app&amp;quot;: &amp;quot;vFlowProxy&amp;quot;,&lt;br /&gt;
  &amp;quot;version&amp;quot;: &amp;quot;00.00.01&amp;quot;,&lt;br /&gt;
  &amp;quot;sessions_opened&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;sessions_limit&amp;quot;: 200,&lt;br /&gt;
  &amp;quot;sessions_sleep_timeout_s&amp;quot;: 3600,&lt;br /&gt;
  &amp;quot;alarms&amp;quot;: 8&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Integración de vFlow desde Omnisuite ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Descripción general ===&lt;br /&gt;
En Omnisuite, la integración con vFlow, se realiza con el programa vFlowOmnisuite, que podrá ser invocado como ejecutable (más rápido, para debian), o como Python (más universal)&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
    /usr/local/sbin/vFlowOmnisuite (OPCIÓN PREFERENTE)&lt;br /&gt;
    /usr/local/sbin/vFlowOmnisuite.py (LEGACY)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Asociado al programa existen los siguientes ficheros de configuración (.ini):&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; de plataforma''' Omnisuite en vFlow --&amp;gt; Solo contiene uuid de la plataforma; se entrega un &amp;quot;.ini&amp;quot; a modo de ejemplo en &amp;lt;code&amp;gt;/etc/MDtel/vFlow/platform.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE PLATAFORMA&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
   [uuids]&lt;br /&gt;
   platform=1d111530-e22d-11f0-b0f2-5254008bef96&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; por agente''' en vFlow --&amp;gt; Solo contiene uuid del agente según su identificación en vFlow ('''NO''' en un orquestador, por ejemplo flowise); se entrega un &amp;quot;.ini&amp;quot; asociado a un agente &amp;quot;loop&amp;quot; existente en Flowise &amp;lt;code&amp;gt;/etc/MDtel/vFlow/agent_loop_01.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE AGENTE&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
   [uuids]&lt;br /&gt;
   agent=1a3a1020-ea1d-11f0-b4a5-5254008bef96&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; por servicio''' --&amp;gt; Configuración de cada servicio en Omnisuite; se entrega un &amp;quot;.ini&amp;quot; a modo de ejemplo en &amp;lt;code&amp;gt;/etc/MDtel/vFlow/service.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
En cada fichero de servicio configuraremos&lt;br /&gt;
::* Donde está Vflow&lt;br /&gt;
::* Agente&lt;br /&gt;
::* Plataforma&lt;br /&gt;
::* timeout_s --&amp;gt; Importante, es afectado por el LLM&lt;br /&gt;
::* channel_text_type --&amp;gt; IMPORTANTE si el servicio es de texto que esté bien (vacio solo si el servicio es de texto, NO COMENTARLO)&lt;br /&gt;
::* environment --&amp;gt; production, staging, test&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE SERVICIO&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
  [arch_uuids]&lt;br /&gt;
  agent=/etc/MDtel/vFlow/agent_loop_01.ini&lt;br /&gt;
  platform=/etc/MDtel/vFlow/platform.ini&lt;br /&gt;
&lt;br /&gt;
  [vflow]&lt;br /&gt;
  host_port=172.25.129.242:7900&lt;br /&gt;
  timeout_s=20&lt;br /&gt;
  # channel_type=[voice|chat|email]&lt;br /&gt;
  channel_type=chat&lt;br /&gt;
  # environment=[production|staging|test]&lt;br /&gt;
  environment=production&lt;br /&gt;
  language=es&lt;br /&gt;
&lt;br /&gt;
  [omnisuite]&lt;br /&gt;
  # channel_text_type=[chat|mail|sms|whatsup]&lt;br /&gt;
  channel_text_type=chat&lt;br /&gt;
  service_id=vflow_service_id&lt;br /&gt;
  service_name=vflow_service_name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La imagen siguiente muestra el esquema de relación entre orquestador/plataforma/agente/servicio en la plataforma y en vFlow&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Relaciones vFlow plat orq ag serv.png|800px|miniaturadeimagen|centro|Relación orquestador-plataforma-agente-servicio]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Invocación ===&lt;br /&gt;
=== Generales ===&lt;br /&gt;
&lt;br /&gt;
Ver configuración&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; configPrint &amp;lt;omnisuite_UniqueId&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
Configuration:&lt;br /&gt;
  agent_arch_uuid=/etc/MDtel/vFlow/agent_fse_rapido.ini&lt;br /&gt;
  agent_uuid=3487af28-1d14-11f1-803c-525400ef204c&lt;br /&gt;
  platform_arch_uuid=/etc/MDtel/vFlow/platform_labomsui.ini&lt;br /&gt;
  platform_uuid=9a54ea74-f050-11f0-bdf1-5254008bef96&lt;br /&gt;
&lt;br /&gt;
  vflow_host_port=labvflow.mdnova.local&lt;br /&gt;
  vflow_timeout_s=50&lt;br /&gt;
  vflow_environment=production&lt;br /&gt;
  vflow_channel_type=voice&lt;br /&gt;
  vflow_language=es&lt;br /&gt;
&lt;br /&gt;
  omnisuite_channel_text_type=chat&lt;br /&gt;
  omnisuite_service_id=287&lt;br /&gt;
  omnisuite_service_name=desarrollo&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;errorCad&amp;quot;: &amp;quot;OK&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ver versión&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Para canales de texto ====&lt;br /&gt;
&lt;br /&gt;
Para canales de texto en Omnisuite existe un único Comando de invocación &amp;quot;omnisuiteText&amp;quot;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 1500px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; omnisuiteText &amp;lt;omnisuite_id&amp;gt; &amp;lt;omnisuite_websiteId&amp;gt; &amp;lt;omnisuite_createdAt&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt; &amp;lt;question&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros ( Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Obligatoriedad !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;config_arch&amp;gt;` || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_id&amp;gt;` || OBLIGATORIO || Identificativo de la interacción en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_websiteId&amp;gt;` || OBLIGATORIO || Identificativo del servicio en Omnisuite (ej. website id en chat)&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_createdAt&amp;gt;` || OBLIGATORIO || Creación de la interacción&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_id&amp;gt;` || OPCIONAL || Id de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_phone_number&amp;gt;` || OPCIONAL || Telf de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_email&amp;gt;` || OPCIONAL || Email de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;question&amp;gt;` || OBLIGATORIO || Texto a enviar al orquestado (p. ej. Flowise)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
 &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
 &amp;quot;session&amp;quot;: &amp;quot;e926548d-fdcf-11f0-a793-525400ef204c&amp;quot;,&lt;br /&gt;
 &amp;quot;language&amp;quot;: &amp;quot;es&amp;quot;,&lt;br /&gt;
 &amp;quot;response&amp;quot;: &amp;quot;HOLA&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Para canales de voz ====&lt;br /&gt;
Para  canales de voz, existen comandos para &amp;quot;abrir sesión&amp;quot;, &amp;quot;enviar texto&amp;quot; y &amp;quot;cerrar sesión&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Abrir sesión =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 1200px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; sessionOpen &amp;lt;omnisuite_UniqueId&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros (Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Requisito !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;omnisuite_UniqueId&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Unique_ID de asterisk de la llamada en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_id&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Id de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_phone_number&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Telf de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_email&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Email de cliente en Omnisuite&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
    &amp;quot;session&amp;quot;: &amp;quot;ec73df29-f08a-11f0-a8ec-525400ef204c&amp;quot;,&lt;br /&gt;
    &amp;quot;platform_id&amp;quot;: &amp;quot;146&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''El value correspondiente al key &amp;quot;session&amp;quot; deberá ser guardado en una variable para siguientes invocaciones'''&lt;br /&gt;
&lt;br /&gt;
===== Enviar texto =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 700px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; textRequest &amp;lt;vflow_session_uuid&amp;gt; &amp;lt;question&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Requisito !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_session_uuid&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Variable &amp;quot;session&amp;quot; almacenada en el &amp;quot;sessionOpen&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;question&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Texto a enviar al orquestado (p. ej. Flowise) (normal, abandoned, other)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
    &amp;quot;session&amp;quot;: &amp;quot;c6f6fad7-f6c1-11f0-a793-525400ef204c&amp;quot;,&lt;br /&gt;
    &amp;quot;language&amp;quot;: &amp;quot;ES&amp;quot;,&lt;br /&gt;
    &amp;quot;response&amp;quot;: &amp;quot;Cristóbal Colón.&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Cerrar sesión=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 800px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; sessionClose &amp;lt;vflow_session_uuid&amp;gt; &amp;lt;vflow_cause&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros  (Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Estado !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_session_uuid&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Variable &amp;quot;session&amp;quot; almacenada en el &amp;quot;sessionOpen&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_cause&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || (normal, abandoned, expired, other)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 104,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;Wrong session&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ejemplos para omnisuite ===&lt;br /&gt;
&lt;br /&gt;
'''Ejemplo de chat'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 1400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_chat.ini&amp;quot; &amp;quot;omnisuiteText&amp;quot; &amp;quot;{{interaction.id}}&amp;quot; &amp;quot;{{account.id}}&amp;quot; &amp;quot;{{interaction.createdAt}}&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;{{message.body}}&amp;quot; | jq -r '.response'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Ejemplo de voz'''&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen cally square.jpg|1024px|none|miniatura|Ejemplo de flujo de Cally Square]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 1000px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_voice.ini&amp;quot; &amp;quot;sessionOpen&amp;quot; &amp;quot;{UNIQUEID}&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; |  jq -r '.session' &amp;lt;/pre&amp;gt;&lt;br /&gt;
::&amp;lt;small&amp;gt;salida del comando almacenado en variable &amp;quot;vflow_sessionopen_response&amp;quot; para su posterior uso en cally square&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen sessionopen.jpg|550px|center|miniatura|Abrir sesión en vFlow]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 1400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_desa_voz.ini&amp;quot; &amp;quot;textRequest&amp;quot; &amp;quot;{vflow_sessionopen_response}&amp;quot; &amp;quot;{OPENAI_WHISPER_TRANSCRIPT}&amp;quot; | jq -r '.response'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::&amp;lt;small&amp;gt;la voz se ha transcrito con OpenAI, por eso se usa como parámetro {OPENAI_WHISPER_TRANSCRIPT})&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen textrequest.jpg|550px|center|miniatura|Enviar texto en vFlow]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 1000px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt; &lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_desa_voz.ini&amp;quot; &amp;quot;sessionClose&amp;quot; &amp;quot;{{vflow_sessionopen_response}}&amp;quot; &amp;quot;normal&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen sessionclose.jpg|900px|center|miniatura|Cerrar sesión en vFlow]]&lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:VIVAit Call]]&lt;br /&gt;
[[Category:Omnisuite]]&lt;br /&gt;
[[Category:IA]]&lt;/div&gt;</summary>
		<author><name>Alfredo.rodriguez</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_de_vFlow&amp;diff=17175</id>
		<title>Manual de operación de vFlow</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_de_vFlow&amp;diff=17175"/>
		<updated>2026-03-24T11:10:54Z</updated>

		<summary type="html">&lt;p&gt;Alfredo.rodriguez: /* Puesta en marcha de nodo vFlow */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Descripción general vFlow ==&lt;br /&gt;
&lt;br /&gt;
vFlow es un módulo de conexión a sistemas de inteligencia artifical para sistemas de comunicaciones unificadas, ya sean sistemas corporativos o contact center&lt;br /&gt;
Gracias a vFlow, las plataformas de UC dispondrán de una solución para comunicarse con sistemas IA utilizando un mismo mecanismo independientemente de la solución de inteligencia artificial que se utilice&lt;br /&gt;
&lt;br /&gt;
Para proporcionar el servicio de manera completa, vFlow (en concreto el orquestador) se conectará a sistemas de inteligencia artificial (LLM) que permitirán desarrollar los agentes definidos en los orquestadores&lt;br /&gt;
&lt;br /&gt;
'''Conceptos:'''&lt;br /&gt;
* Plataforma&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Plataforma de comunicaciones unificadas; por ejemplo Omnisuite o VIVAit Call&lt;br /&gt;
* Orquestador&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Plataforma agéntica de IA (por ejemplo Flowise)&lt;br /&gt;
* vFlowProxy&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Módulo VIVAit que conecta multiples plataformas con múltiples orquestadores&lt;br /&gt;
* LLM&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Modelo de lenguaje natural que usará un orquestadores&lt;br /&gt;
* Agente&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Cada uno de los flujos creados en vFlow; corresponde a un par plataforma/agentflow de orquestador&lt;br /&gt;
* Servicio&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Cada elemento de negocio en la plataforma de CU (por ejemplo VDN)&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Arquitectura Vflow - v2.jpg|1000px|center|Arquitecura de vFlow]]&lt;br /&gt;
&lt;br /&gt;
Los '''módulos principales''' de vFlow son:&lt;br /&gt;
* vFlowProxy: Recibe las conexiones de los sistemas de comunicaciones unificadas, y conecta con los orquestadores de Inteligencia Artificial de manera segura y adaptada al tipo de servicio; el acceso a vFlow Proxy desde las plataformas se realizará mediante:&lt;br /&gt;
* Programa cliente: Se utiliza en el sistema de comunicaciones unificadas (actualmente VIVAit Call y Omnsisuite) para invocar a vFlow&lt;br /&gt;
* API REST: Alternativa al programa cliente, vFlowProxy proporciona una API REST que facilita que cualquier plataforma pueda comunicarse mediante un procedimiento estándar y documentado&lt;br /&gt;
* Portal de administración vFlow: Permite visualizar las interaciones realizadas y configurar el sistema&lt;br /&gt;
* Orquestador de IA: Herramienta de Inteligencia Artificial que permitirá la creación de aplicaciones personalizadas (agentes)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Otros elementos''' relevantes serán:&lt;br /&gt;
* Base de datos vFlow:&lt;br /&gt;
:* Almacena información sobre sesiones y transacciones realizadas&lt;br /&gt;
:* Almacena información de configuración sobre vFlow&lt;br /&gt;
:* Gestiona el RAG de las inteligencias artificiales a usar&lt;br /&gt;
&lt;br /&gt;
== Puesta en marcha de nodo vFlow ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Existe un nodo vFlow en los repositorios habituales proporcionados&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para '''dar de alta nodo vflow en un cliente''' hay que:&lt;br /&gt;
* Configurar IP (por defecto la maquina va configurada por DHCP)&lt;br /&gt;
* Adaptar el firewall, para ello REVISAR el fichero &amp;lt;code&amp;gt;/etc/firewall/vars.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
* Certificados validos en apache&lt;br /&gt;
* REVISAR ficheros &amp;lt;code&amp;gt;/etc/apache2/sites-enabled/flowise.conf&amp;lt;/code&amp;gt; y &amp;lt;code&amp;gt;/etc/apache2/sites-enabled/vFlow.conf&amp;lt;/code&amp;gt; la variable &amp;lt;code&amp;gt;ServerName&amp;lt;/code&amp;gt; (nombre valido de la maquina)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Accesos vFlow''' (se debe cambiar tras instalación):&lt;br /&gt;
* Usuario ssh y de SO por defecto es sat y clave a proporcionar.&lt;br /&gt;
* Para el portal de flowise las credenciales son usuario: vfloadmin@vflow.com clave: A proporcionar&lt;br /&gt;
* Para el portal de vflow las credenciales son usaurio sat y clave a proporcionar.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Accesos BBDD vFlow'''&lt;br /&gt;
* Para acceder a la base de datos desde el workbenck solo desde localhost (o tunel):&lt;br /&gt;
* BBDD Vlfow (admin)  vflowadmin // clave a proporcionar&lt;br /&gt;
* BBDD Vlfow (no_admin)  vflow //  clave a proporcionar&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Portal orquestador Flowise'''&lt;br /&gt;
&lt;br /&gt;
ubicado en https://host.cliente.xx:4567&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #fef6e7; border: 1px solid #fbd68a; padding: 1em; border-radius: 4px;max-width: 1000px; margin-left: 50px&amp;quot;&amp;gt;&lt;br /&gt;
'''⚠️ ATENCION !!'''&lt;br /&gt;
'''Los cambios en tablas de configuración de BBDD de vFlow (orquestadores, plataformas, agentes) requieren reinicio del servicio vFlowProxy'''&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', 'Monaco', 'Courier New', monospace;&amp;quot;&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service status&lt;br /&gt;
/etc/init.d/vFlowProxy.service stop&lt;br /&gt;
/etc/init.d/vFlowProxy.service start&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El fichero de configuración del demonio &amp;lt;cvode&amp;gt;vFlowProxy&amp;lt;/code&amp;gt; se encuentra en &amp;lt;code&amp;gt;/etc/MDtel/vFlowProxy.conf&amp;lt;/code&amp;gt;, si bien este fichero de configuración no se modificará habitualmente (los parámetros generales de configuración de vFlowProxy se encuentran en la BBDD de vFlow)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Relevante para poder '''poner en marcha un loader''':&lt;br /&gt;
* Subir el fichero inicial previamente a la carpeta destino según entorno (p. ej &amp;lt;code&amp;gt;/var/www/html/storages/production&amp;lt;/code&amp;gt;&lt;br /&gt;
* Tipo de loader --&amp;gt; API&lt;br /&gt;
* Método --&amp;gt; GET&lt;br /&gt;
* URL --&amp;gt; (ejemplo: http://172.25.129.242/storages/test/fichero-pru.txt)&lt;br /&gt;
::* Existirán URL &amp;quot;production&amp;quot;, &amp;quot;staging&amp;quot; y &amp;quot;test&amp;quot;&lt;br /&gt;
* Text Splitter: Recursive&lt;br /&gt;
* Qdrant --&amp;gt; localhost:6333&lt;br /&gt;
* Record Manager --&amp;gt; SQLite&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Se adjunta imagen a modo de ejemplo&lt;br /&gt;
[[Archivo:Alta loader vflow.png|800px|miniaturadeimagen|no|alta loader vFlow|link=]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gestión en vFlow ==&lt;br /&gt;
vFlow prevé la existencia de tres entornos que permita hacer una gestión segura de agentes y RAG:&lt;br /&gt;
&lt;br /&gt;
* Producción&lt;br /&gt;
* Preproducción&lt;br /&gt;
* Pruebas&lt;br /&gt;
&lt;br /&gt;
Para cada agente o store de RAG se podrá desplegar un entorno (producción), dos o los tres entornos&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #f0fff4; border: 3px solid #c6f6d5; padding: 1em; border-radius: 4px;width: fit-content; margin-left: 0px&amp;quot;&amp;gt;&lt;br /&gt;
✅ '''Recomendación'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En la mayoría de los casos con disponer de entorno de producción y preproducción tanto para agente como para RAG será suficiente&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Para realizar una gestión completa en vFlow (suponiendo tres entornos y gestión de agentes y RAG), deberemos tener&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Archivo:Gestión RAG.png|1000px|miniaturadeimagen|centro|Gestión RAG en vFlow|link=]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''En orquestador'''&lt;br /&gt;
* Crear '''tres stores''' (pro/pre/pru); en cada store:&lt;br /&gt;
::* En total '''tres loaders'''. Crear un loader por entorno (p.ej /pro/nombrefich). &lt;br /&gt;
::* Subir un primer &amp;quot;nombrefich&amp;quot;&lt;br /&gt;
::::* tipo texto (versión 0)&lt;br /&gt;
::::* el mismo para todos los entornos&lt;br /&gt;
::::* se sube por medios convencionales (p. ej SCP)&lt;br /&gt;
* Asegurar que los stores queden totalmente creados (estado &amp;quot;UPSERTED&amp;quot;)&lt;br /&gt;
* Crear '''tres agentes''' (pro/pre/pru)&lt;br /&gt;
::* Asociar a stores (pro/pre/pru)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''En flow'''&lt;br /&gt;
* Crear '''un agente'''&lt;br /&gt;
::* Vincularlo a los tres agentes de orquestador (pro/pre/pru)&lt;br /&gt;
* Crear '''un store'''&lt;br /&gt;
::* Vinculado a los tres stores de orquestador (pro/pre/pru)&lt;br /&gt;
* Crear '''un loader'''&lt;br /&gt;
::* Loader vinculado a agente de vflow&lt;br /&gt;
::* C_NAME loader coincidirá con los de orquestador (p.ej &amp;quot;nombrefich&amp;quot;)&lt;br /&gt;
::* Subir nueva versión v1 (&amp;quot;.txt&amp;quot;, &amp;quot;.pdf&amp;quot;, &amp;quot;.doc&amp;quot;, &amp;quot;.docx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Diagnósticos ==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/vFlowProxy/vFlowProxy.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En nodo vFlowProxy&lt;br /&gt;
::para cualquier canal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
nc localhost 1131&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En nodo vFlowProxy&lt;br /&gt;
::Monitoriza estado del proceso vflowProxy&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
  &amp;quot;proceso&amp;quot;: {&lt;br /&gt;
    &amp;quot;nombre&amp;quot;: &amp;quot;vFlowProxy&amp;quot;,&lt;br /&gt;
    &amp;quot;version&amp;quot;: &amp;quot;00.00.01&amp;quot;,&lt;br /&gt;
    &amp;quot;inicio_ts&amp;quot;: 1771315153,&lt;br /&gt;
    &amp;quot;inicio_cad&amp;quot;: &amp;quot;20260217 085913&amp;quot;,&lt;br /&gt;
    &amp;quot;log_alarmas_val&amp;quot;: 8,&lt;br /&gt;
    &amp;quot;log_alarma_ultimo_ts&amp;quot;: 1771970401,&lt;br /&gt;
    &amp;quot;log_alarma_ultimo_ts_cad&amp;quot;: &amp;quot;20260224 230001&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;diagnostico&amp;quot;: {&lt;br /&gt;
    &amp;quot;gmp&amp;quot;: {&lt;br /&gt;
      &amp;quot;msj_val&amp;quot;: 1022,&lt;br /&gt;
      &amp;quot;msj_max&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;buf_val&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;buf_max&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;tarea_val&amp;quot;: 7,&lt;br /&gt;
      &amp;quot;tarea_max&amp;quot;: 15&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;tiempo&amp;quot;: {&lt;br /&gt;
      &amp;quot;uptime&amp;quot;: 716665,&lt;br /&gt;
      &amp;quot;uptime_dias&amp;quot;: 8,&lt;br /&gt;
      &amp;quot;uptime_horas&amp;quot;: 7,&lt;br /&gt;
      &amp;quot;uptime_minutos&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;uptime_segundos&amp;quot;: 25&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;wws&amp;quot;: {&lt;br /&gt;
      &amp;quot;conexiones_val&amp;quot;: 0,&lt;br /&gt;
      &amp;quot;conexiones_max_periodo&amp;quot;: 0,&lt;br /&gt;
      &amp;quot;hilos_val&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;hilos_max&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;wsi_cad&amp;quot;: &amp;quot;sesiones=0/200&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;alarmas_nivel_max&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;alarmas&amp;quot;: []&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es relevante la monitorización de sesiones  &amp;lt;code&amp;gt;&amp;quot;wsi_cad&amp;quot;: &amp;quot;sesiones=0/200&amp;quot;&amp;lt;/code&amp;gt; (usadas/máximas)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
asterisk -rv | grep callsquare_name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::en nodo Omnisuite&lt;br /&gt;
::para canal voz&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/xcally/agi-combined.yyyy-mm-dd.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::en nodo Omnisuite&lt;br /&gt;
::para canal voz&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/xcally/routing-combined.yyyy-mm-dd.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::para canal voz&lt;br /&gt;
&lt;br /&gt;
== Para probar desde vFlow ==&lt;br /&gt;
&lt;br /&gt;
En /home/sat/vFlowProxy hay scripts de prueba (se configuran en el vars.sh); para usar los scripts de prueba tendremos que tener también &amp;quot;.ini&amp;quot; en vFlow&lt;br /&gt;
&lt;br /&gt;
Es útil comenzar con&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/home/sat/vFlowProxy/vFlowGetInfo.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
que sin parámetros adicionales confirma el correcto estado de vFlowProxy&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
  &amp;quot;app&amp;quot;: &amp;quot;vFlowProxy&amp;quot;,&lt;br /&gt;
  &amp;quot;version&amp;quot;: &amp;quot;00.00.01&amp;quot;,&lt;br /&gt;
  &amp;quot;sessions_opened&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;sessions_limit&amp;quot;: 200,&lt;br /&gt;
  &amp;quot;sessions_sleep_timeout_s&amp;quot;: 3600,&lt;br /&gt;
  &amp;quot;alarms&amp;quot;: 8&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Integración de vFlow desde Omnisuite ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Descripción general ===&lt;br /&gt;
En Omnisuite, la integración con vFlow, se realiza con el programa vFlowOmnisuite, que podrá ser invocado como ejecutable (más rápido, para debian), o como Python (más universal)&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
    /usr/local/sbin/vFlowOmnisuite (OPCIÓN PREFERENTE)&lt;br /&gt;
    /usr/local/sbin/vFlowOmnisuite.py (LEGACY)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Asociado al programa existen los siguientes ficheros de configuración (.ini):&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; de plataforma''' Omnisuite en vFlow --&amp;gt; Solo contiene uuid de la plataforma; se entrega un &amp;quot;.ini&amp;quot; a modo de ejemplo en &amp;lt;code&amp;gt;/etc/MDtel/vFlow/platform.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE PLATAFORMA&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
   [uuids]&lt;br /&gt;
   platform=1d111530-e22d-11f0-b0f2-5254008bef96&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; por agente''' en vFlow --&amp;gt; Solo contiene uuid del agente según su identificación en vFlow ('''NO''' en un orquestador, por ejemplo flowise); se entrega un &amp;quot;.ini&amp;quot; asociado a un agente &amp;quot;loop&amp;quot; existente en Flowise &amp;lt;code&amp;gt;/etc/MDtel/vFlow/agent_loop_01.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE AGENTE&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
   [uuids]&lt;br /&gt;
   agent=1a3a1020-ea1d-11f0-b4a5-5254008bef96&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; por servicio''' --&amp;gt; Configuración de cada servicio en Omnisuite; se entrega un &amp;quot;.ini&amp;quot; a modo de ejemplo en &amp;lt;code&amp;gt;/etc/MDtel/vFlow/service.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
En cada fichero de servicio configuraremos&lt;br /&gt;
::* Donde está Vflow&lt;br /&gt;
::* Agente&lt;br /&gt;
::* Plataforma&lt;br /&gt;
::* timeout_s --&amp;gt; Importante, es afectado por el LLM&lt;br /&gt;
::* channel_text_type --&amp;gt; IMPORTANTE si el servicio es de texto que esté bien (vacio solo si el servicio es de texto, NO COMENTARLO)&lt;br /&gt;
::* environment --&amp;gt; production, staging, test&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE SERVICIO&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
  [arch_uuids]&lt;br /&gt;
  agent=/etc/MDtel/vFlow/agent_loop_01.ini&lt;br /&gt;
  platform=/etc/MDtel/vFlow/platform.ini&lt;br /&gt;
&lt;br /&gt;
  [vflow]&lt;br /&gt;
  host_port=172.25.129.242:7900&lt;br /&gt;
  timeout_s=20&lt;br /&gt;
  # channel_type=[voice|chat|email]&lt;br /&gt;
  channel_type=chat&lt;br /&gt;
  # environment=[production|staging|test]&lt;br /&gt;
  environment=production&lt;br /&gt;
  language=es&lt;br /&gt;
&lt;br /&gt;
  [omnisuite]&lt;br /&gt;
  # channel_text_type=[chat|mail|sms|whatsup]&lt;br /&gt;
  channel_text_type=chat&lt;br /&gt;
  service_id=vflow_service_id&lt;br /&gt;
  service_name=vflow_service_name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La imagen siguiente muestra el esquema de relación entre orquestador/plataforma/agente/servicio en la plataforma y en vFlow&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Relaciones vFlow plat orq ag serv.png|800px|miniaturadeimagen|centro|Relación orquestador-plataforma-agente-servicio]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Invocación ===&lt;br /&gt;
=== Generales ===&lt;br /&gt;
&lt;br /&gt;
Ver configuración&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; configPrint &amp;lt;omnisuite_UniqueId&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
Configuration:&lt;br /&gt;
  agent_arch_uuid=/etc/MDtel/vFlow/agent_fse_rapido.ini&lt;br /&gt;
  agent_uuid=3487af28-1d14-11f1-803c-525400ef204c&lt;br /&gt;
  platform_arch_uuid=/etc/MDtel/vFlow/platform_labomsui.ini&lt;br /&gt;
  platform_uuid=9a54ea74-f050-11f0-bdf1-5254008bef96&lt;br /&gt;
&lt;br /&gt;
  vflow_host_port=labvflow.mdnova.local&lt;br /&gt;
  vflow_timeout_s=50&lt;br /&gt;
  vflow_environment=production&lt;br /&gt;
  vflow_channel_type=voice&lt;br /&gt;
  vflow_language=es&lt;br /&gt;
&lt;br /&gt;
  omnisuite_channel_text_type=chat&lt;br /&gt;
  omnisuite_service_id=287&lt;br /&gt;
  omnisuite_service_name=desarrollo&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;errorCad&amp;quot;: &amp;quot;OK&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ver versión&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Para canales de texto ====&lt;br /&gt;
&lt;br /&gt;
Para canales de texto en Omnisuite existe un único Comando de invocación &amp;quot;omnisuiteText&amp;quot;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 1500px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; omnisuiteText &amp;lt;omnisuite_id&amp;gt; &amp;lt;omnisuite_websiteId&amp;gt; &amp;lt;omnisuite_createdAt&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt; &amp;lt;question&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros ( Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Obligatoriedad !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;config_arch&amp;gt;` || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_id&amp;gt;` || OBLIGATORIO || Identificativo de la interacción en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_websiteId&amp;gt;` || OBLIGATORIO || Identificativo del servicio en Omnisuite (ej. website id en chat)&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_createdAt&amp;gt;` || OBLIGATORIO || Creación de la interacción&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_id&amp;gt;` || OPCIONAL || Id de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_phone_number&amp;gt;` || OPCIONAL || Telf de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_email&amp;gt;` || OPCIONAL || Email de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;question&amp;gt;` || OBLIGATORIO || Texto a enviar al orquestado (p. ej. Flowise)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
 &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
 &amp;quot;session&amp;quot;: &amp;quot;e926548d-fdcf-11f0-a793-525400ef204c&amp;quot;,&lt;br /&gt;
 &amp;quot;language&amp;quot;: &amp;quot;es&amp;quot;,&lt;br /&gt;
 &amp;quot;response&amp;quot;: &amp;quot;HOLA&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Para canales de voz ====&lt;br /&gt;
Para  canales de voz, existen comandos para &amp;quot;abrir sesión&amp;quot;, &amp;quot;enviar texto&amp;quot; y &amp;quot;cerrar sesión&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Abrir sesión =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 1200px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; sessionOpen &amp;lt;omnisuite_UniqueId&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros (Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Requisito !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;omnisuite_UniqueId&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Unique_ID de asterisk de la llamada en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_id&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Id de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_phone_number&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Telf de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_email&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Email de cliente en Omnisuite&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
    &amp;quot;session&amp;quot;: &amp;quot;ec73df29-f08a-11f0-a8ec-525400ef204c&amp;quot;,&lt;br /&gt;
    &amp;quot;platform_id&amp;quot;: &amp;quot;146&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''El value correspondiente al key &amp;quot;session&amp;quot; deberá ser guardado en una variable para siguientes invocaciones'''&lt;br /&gt;
&lt;br /&gt;
===== Enviar texto =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 700px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; textRequest &amp;lt;vflow_session_uuid&amp;gt; &amp;lt;question&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Requisito !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_session_uuid&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Variable &amp;quot;session&amp;quot; almacenada en el &amp;quot;sessionOpen&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;question&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Texto a enviar al orquestado (p. ej. Flowise) (normal, abandoned, other)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
    &amp;quot;session&amp;quot;: &amp;quot;c6f6fad7-f6c1-11f0-a793-525400ef204c&amp;quot;,&lt;br /&gt;
    &amp;quot;language&amp;quot;: &amp;quot;ES&amp;quot;,&lt;br /&gt;
    &amp;quot;response&amp;quot;: &amp;quot;Cristóbal Colón.&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Cerrar sesión=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 800px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; sessionClose &amp;lt;vflow_session_uuid&amp;gt; &amp;lt;vflow_cause&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros  (Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Estado !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_session_uuid&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Variable &amp;quot;session&amp;quot; almacenada en el &amp;quot;sessionOpen&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_cause&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || (normal, abandoned, expired, other)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 104,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;Wrong session&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ejemplos para omnisuite ===&lt;br /&gt;
&lt;br /&gt;
'''Ejemplo de chat'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 1400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_chat.ini&amp;quot; &amp;quot;omnisuiteText&amp;quot; &amp;quot;{{interaction.id}}&amp;quot; &amp;quot;{{account.id}}&amp;quot; &amp;quot;{{interaction.createdAt}}&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;{{message.body}}&amp;quot; | jq -r '.response'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Ejemplo de voz'''&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen cally square.jpg|1024px|none|miniatura|Ejemplo de flujo de Cally Square]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 1000px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_voice.ini&amp;quot; &amp;quot;sessionOpen&amp;quot; &amp;quot;{UNIQUEID}&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; |  jq -r '.session' &amp;lt;/pre&amp;gt;&lt;br /&gt;
::&amp;lt;small&amp;gt;salida del comando almacenado en variable &amp;quot;vflow_sessionopen_response&amp;quot; para su posterior uso en cally square&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen sessionopen.jpg|550px|center|miniatura|Abrir sesión en vFlow]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 1400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_desa_voz.ini&amp;quot; &amp;quot;textRequest&amp;quot; &amp;quot;{vflow_sessionopen_response}&amp;quot; &amp;quot;{OPENAI_WHISPER_TRANSCRIPT}&amp;quot; | jq -r '.response'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::&amp;lt;small&amp;gt;la voz se ha transcrito con OpenAI, por eso se usa como parámetro {OPENAI_WHISPER_TRANSCRIPT})&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen textrequest.jpg|550px|center|miniatura|Enviar texto en vFlow]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 1000px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt; &lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_desa_voz.ini&amp;quot; &amp;quot;sessionClose&amp;quot; &amp;quot;{{vflow_sessionopen_response}}&amp;quot; &amp;quot;normal&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen sessionclose.jpg|900px|center|miniatura|Cerrar sesión en vFlow]]&lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:VIVAit Call]]&lt;br /&gt;
[[Category:Omnisuite]]&lt;br /&gt;
[[Category:IA]]&lt;/div&gt;</summary>
		<author><name>Alfredo.rodriguez</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_de_vFlow&amp;diff=17173</id>
		<title>Manual de operación de vFlow</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_de_vFlow&amp;diff=17173"/>
		<updated>2026-03-24T11:10:05Z</updated>

		<summary type="html">&lt;p&gt;Alfredo.rodriguez: /* Invocación */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Descripción general vFlow ==&lt;br /&gt;
&lt;br /&gt;
vFlow es un módulo de conexión a sistemas de inteligencia artifical para sistemas de comunicaciones unificadas, ya sean sistemas corporativos o contact center&lt;br /&gt;
Gracias a vFlow, las plataformas de UC dispondrán de una solución para comunicarse con sistemas IA utilizando un mismo mecanismo independientemente de la solución de inteligencia artificial que se utilice&lt;br /&gt;
&lt;br /&gt;
Para proporcionar el servicio de manera completa, vFlow (en concreto el orquestador) se conectará a sistemas de inteligencia artificial (LLM) que permitirán desarrollar los agentes definidos en los orquestadores&lt;br /&gt;
&lt;br /&gt;
'''Conceptos:'''&lt;br /&gt;
* Plataforma&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Plataforma de comunicaciones unificadas; por ejemplo Omnisuite o VIVAit Call&lt;br /&gt;
* Orquestador&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Plataforma agéntica de IA (por ejemplo Flowise)&lt;br /&gt;
* vFlowProxy&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Módulo VIVAit que conecta multiples plataformas con múltiples orquestadores&lt;br /&gt;
* LLM&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Modelo de lenguaje natural que usará un orquestadores&lt;br /&gt;
* Agente&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Cada uno de los flujos creados en vFlow; corresponde a un par plataforma/agentflow de orquestador&lt;br /&gt;
* Servicio&amp;lt;span style=&amp;quot;margin-left: 3em;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;--&amp;gt; Cada elemento de negocio en la plataforma de CU (por ejemplo VDN)&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Arquitectura Vflow - v2.jpg|1000px|center|Arquitecura de vFlow]]&lt;br /&gt;
&lt;br /&gt;
Los '''módulos principales''' de vFlow son:&lt;br /&gt;
* vFlowProxy: Recibe las conexiones de los sistemas de comunicaciones unificadas, y conecta con los orquestadores de Inteligencia Artificial de manera segura y adaptada al tipo de servicio; el acceso a vFlow Proxy desde las plataformas se realizará mediante:&lt;br /&gt;
* Programa cliente: Se utiliza en el sistema de comunicaciones unificadas (actualmente VIVAit Call y Omnsisuite) para invocar a vFlow&lt;br /&gt;
* API REST: Alternativa al programa cliente, vFlowProxy proporciona una API REST que facilita que cualquier plataforma pueda comunicarse mediante un procedimiento estándar y documentado&lt;br /&gt;
* Portal de administración vFlow: Permite visualizar las interaciones realizadas y configurar el sistema&lt;br /&gt;
* Orquestador de IA: Herramienta de Inteligencia Artificial que permitirá la creación de aplicaciones personalizadas (agentes)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Otros elementos''' relevantes serán:&lt;br /&gt;
* Base de datos vFlow:&lt;br /&gt;
:* Almacena información sobre sesiones y transacciones realizadas&lt;br /&gt;
:* Almacena información de configuración sobre vFlow&lt;br /&gt;
:* Gestiona el RAG de las inteligencias artificiales a usar&lt;br /&gt;
&lt;br /&gt;
== Puesta en marcha de nodo vFlow ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Existe un nodo vFlow en los repositorios habituales proporcionados&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para '''dar de alta nodo vflow en un cliente''' hay que:&lt;br /&gt;
* Configurar IP (por defecto la maquina va configurada por DHCP)&lt;br /&gt;
* Adaptar el firewall, para ello REVISAR el fichero &amp;lt;code&amp;gt;/etc/firewall/vars.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
* Certificados validos en apache&lt;br /&gt;
* REVISAR ficheros &amp;lt;code&amp;gt;/etc/apache2/sites-enabled/flowise.conf&amp;lt;/code&amp;gt; y &amp;lt;code&amp;gt;/etc/apache2/sites-enabled/vFlow.conf&amp;lt;/code&amp;gt; la variable &amp;lt;code&amp;gt;ServerName&amp;lt;/code&amp;gt; (nombre valido de la maquina)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Accesos vFlow''' (se debe cambiar tras instalación):&lt;br /&gt;
* Usuario ssh y de SO por defecto es sat y clave a proporcionar.&lt;br /&gt;
* Para el portal de flowise las credenciales son usuario: vfloadmin@vflow.com clave: A proporcionar&lt;br /&gt;
* Para el portal de vflow las credenciales son usaurio sat y clave a proporcionar.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Accesos BBDD vFlow'''&lt;br /&gt;
* Para acceder a la base de datos desde el workbenck solo desde localhost (o tunel):&lt;br /&gt;
* BBDD Vlfow (admin)  vflowadmin // clave a proporcionar&lt;br /&gt;
* BBDD Vlfow (no_admin)  vflow //  clave a proporcionar&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Portal orquestador Flowise'''&lt;br /&gt;
&lt;br /&gt;
ubicado en https://host.cliente.xx:4567&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #fef6e7; border: 1px solid #fbd68a; padding: 1em; border-radius: 4px;max-width: 1000px; margin-left: 50px&amp;quot;&amp;gt;&lt;br /&gt;
'''⚠️ ATENCION !!'''&lt;br /&gt;
'''Los cambios en tablas de configuración de BBDD de vFlow (orquestadores, plataformas, agentes) requieren reinicio del servicio vFlowProxy'''&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', 'Monaco', 'Courier New', monospace;&amp;quot;&amp;gt;&lt;br /&gt;
/etc/init.d/vFlowProxy.service status&lt;br /&gt;
/etc/init.d/vFlowProxy.service stop&lt;br /&gt;
/etc/init.d/vFlowProxy.service start&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El fichero de configuración del demonio &amp;lt;cvode&amp;gt;vFlowProxy&amp;lt;/code&amp;gt; se encuentra en &amp;lt;code&amp;gt;/etc/MDtel/vFlowProxy.conf&amp;lt;/code&amp;gt;, si bien este fichero de configuración no se modificará habitualmente (los parámetros generales de configuración de vFlowProxy se encuentran en la BBDD de vFlow)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Relevante para poder '''poner en marcha un loader''':&lt;br /&gt;
* Subir el fichero inicial previamente a la carpeta destino según entorno (p. ej &amp;lt;code&amp;gt;/var/www/html/storages/production&amp;lt;/code&amp;gt;&lt;br /&gt;
* Tipo de loader --&amp;gt; API&lt;br /&gt;
* Método --&amp;gt; GET&lt;br /&gt;
* URL --&amp;gt; (ejemplo: http://172.25.129.242/storages/test/fichero-pru.txt)&lt;br /&gt;
::* Existirán URL &amp;quot;production&amp;quot;, &amp;quot;staging&amp;quot; y &amp;quot;test&amp;quot;&lt;br /&gt;
* Text Splitter: Recursive&lt;br /&gt;
* Qdrant --&amp;gt; localhost:6333&lt;br /&gt;
* Record Manager --&amp;gt; SQLite&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Se adjunta imagen a modo de ejemplo&lt;br /&gt;
[[Archivo:Alta loader vflow.png|800px|miniaturadeimagen|no|alta loader vFlow|link=]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gestión en vFlow ==&lt;br /&gt;
vFlow prevé la existencia de tres entornos que permita hacer una gestión segura de agentes y RAG:&lt;br /&gt;
&lt;br /&gt;
* Producción&lt;br /&gt;
* Preproducción&lt;br /&gt;
* Pruebas&lt;br /&gt;
&lt;br /&gt;
Para cada agente o store de RAG se podrá desplegar un entorno (producción), dos o los tres entornos&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #f0fff4; border: 3px solid #c6f6d5; padding: 1em; border-radius: 4px;width: fit-content; margin-left: 0px&amp;quot;&amp;gt;&lt;br /&gt;
✅ '''Recomendación'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En la mayoría de los casos con disponer de entorno de producción y preproducción tanto para agente como para RAG será suficiente&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Para realizar una gestión completa en vFlow (suponiendo tres entornos y gestión de agentes y RAG), deberemos tener&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Archivo:Gestión RAG.png|1000px|miniaturadeimagen|centro|Gestión RAG en vFlow|link=]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''En orquestador'''&lt;br /&gt;
* Crear '''tres stores''' (pro/pre/pru); en cada store:&lt;br /&gt;
::* En total '''tres loaders'''. Crear un loader por entorno (p.ej /pro/nombrefich). &lt;br /&gt;
::* Subir un primer &amp;quot;nombrefich&amp;quot;&lt;br /&gt;
::::* tipo texto (versión 0)&lt;br /&gt;
::::* el mismo para todos los entornos&lt;br /&gt;
::::* se sube por medios convencionales (p. ej SCP)&lt;br /&gt;
* Asegurar que los stores queden totalmente creados (estado &amp;quot;UPSERTED&amp;quot;)&lt;br /&gt;
* Crear '''tres agentes''' (pro/pre/pru)&lt;br /&gt;
::* Asociar a stores (pro/pre/pru)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''En flow'''&lt;br /&gt;
* Crear '''un agente'''&lt;br /&gt;
::* Vincularlo a los tres agentes de orquestador (pro/pre/pru)&lt;br /&gt;
* Crear '''un store'''&lt;br /&gt;
::* Vinculado a los tres stores de orquestador (pro/pre/pru)&lt;br /&gt;
* Crear '''un loader'''&lt;br /&gt;
::* Loader vinculado a agente de vflow&lt;br /&gt;
::* C_NAME loader coincidirá con los de orquestador (p.ej &amp;quot;nombrefich&amp;quot;)&lt;br /&gt;
::* Subir nueva versión v1 (&amp;quot;.txt&amp;quot;, &amp;quot;.pdf&amp;quot;, &amp;quot;.doc&amp;quot;, &amp;quot;.docx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Diagnósticos ==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/vFlowProxy/vFlowProxy.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En nodo vFlowProxy&lt;br /&gt;
::para cualquier canal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
nc localhost 1131&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::En nodo vFlowProxy&lt;br /&gt;
::Monitoriza estado del proceso vflowProxy&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
  &amp;quot;proceso&amp;quot;: {&lt;br /&gt;
    &amp;quot;nombre&amp;quot;: &amp;quot;vFlowProxy&amp;quot;,&lt;br /&gt;
    &amp;quot;version&amp;quot;: &amp;quot;00.00.01&amp;quot;,&lt;br /&gt;
    &amp;quot;inicio_ts&amp;quot;: 1771315153,&lt;br /&gt;
    &amp;quot;inicio_cad&amp;quot;: &amp;quot;20260217 085913&amp;quot;,&lt;br /&gt;
    &amp;quot;log_alarmas_val&amp;quot;: 8,&lt;br /&gt;
    &amp;quot;log_alarma_ultimo_ts&amp;quot;: 1771970401,&lt;br /&gt;
    &amp;quot;log_alarma_ultimo_ts_cad&amp;quot;: &amp;quot;20260224 230001&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;diagnostico&amp;quot;: {&lt;br /&gt;
    &amp;quot;gmp&amp;quot;: {&lt;br /&gt;
      &amp;quot;msj_val&amp;quot;: 1022,&lt;br /&gt;
      &amp;quot;msj_max&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;buf_val&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;buf_max&amp;quot;: 1024,&lt;br /&gt;
      &amp;quot;tarea_val&amp;quot;: 7,&lt;br /&gt;
      &amp;quot;tarea_max&amp;quot;: 15&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;tiempo&amp;quot;: {&lt;br /&gt;
      &amp;quot;uptime&amp;quot;: 716665,&lt;br /&gt;
      &amp;quot;uptime_dias&amp;quot;: 8,&lt;br /&gt;
      &amp;quot;uptime_horas&amp;quot;: 7,&lt;br /&gt;
      &amp;quot;uptime_minutos&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;uptime_segundos&amp;quot;: 25&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;wws&amp;quot;: {&lt;br /&gt;
      &amp;quot;conexiones_val&amp;quot;: 0,&lt;br /&gt;
      &amp;quot;conexiones_max_periodo&amp;quot;: 0,&lt;br /&gt;
      &amp;quot;hilos_val&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;hilos_max&amp;quot;: 4,&lt;br /&gt;
      &amp;quot;wsi_cad&amp;quot;: &amp;quot;sesiones=0/200&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;alarmas_nivel_max&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;alarmas&amp;quot;: []&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es relevante la monitorización de sesiones  &amp;lt;code&amp;gt;&amp;quot;wsi_cad&amp;quot;: &amp;quot;sesiones=0/200&amp;quot;&amp;lt;/code&amp;gt; (usadas/máximas)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
asterisk -rv | grep callsquare_name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::en nodo Omnisuite&lt;br /&gt;
::para canal voz&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/xcally/agi-combined.yyyy-mm-dd.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::en nodo Omnisuite&lt;br /&gt;
::para canal voz&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/xcally/routing-combined.yyyy-mm-dd.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::para canal voz&lt;br /&gt;
&lt;br /&gt;
== Para probar desde vFlow ==&lt;br /&gt;
&lt;br /&gt;
En /home/sat/vFlowProxy hay scripts de prueba (se configuran en el vars.sh); para usar los scripts de prueba tendremos que tener también &amp;quot;.ini&amp;quot; en vFlow&lt;br /&gt;
&lt;br /&gt;
Es útil comenzar con&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/home/sat/vFlowProxy/vFlowGetInfo.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
que sin parámetros adicionales confirma el correcto estado de vFlowProxy&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
  &amp;quot;app&amp;quot;: &amp;quot;vFlowProxy&amp;quot;,&lt;br /&gt;
  &amp;quot;version&amp;quot;: &amp;quot;00.00.01&amp;quot;,&lt;br /&gt;
  &amp;quot;sessions_opened&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;sessions_limit&amp;quot;: 200,&lt;br /&gt;
  &amp;quot;sessions_sleep_timeout_s&amp;quot;: 3600,&lt;br /&gt;
  &amp;quot;alarms&amp;quot;: 8&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Integración de vFlow desde Omnisuite ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Descripción general ===&lt;br /&gt;
En Omnisuite, la integración con vFlow, se realiza con el programa vFlowOmnisuite, que podrá ser invocado como ejecutable (más rápido, para debian), o como Python (más universal)&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
    /usr/local/sbin/vFlowOmnisuite (OPCIÓN PREFERENTE)&lt;br /&gt;
    /usr/local/sbin/vFlowOmnisuite.py (LEGACY)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Asociado al programa existen los siguientes ficheros de configuración (.ini):&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; de plataforma''' Omnisuite en vFlow --&amp;gt; Solo contiene uuid de la plataforma; se entrega un &amp;quot;.ini&amp;quot; a modo de ejemplo en &amp;lt;code&amp;gt;/etc/MDtel/vFlow/platform.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE PLATAFORMA&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
   [uuids]&lt;br /&gt;
   platform=1d111530-e22d-11f0-b0f2-5254008bef96&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; por agente''' en vFlow --&amp;gt; Solo contiene uuid del agente según su identificación en vFlow ('''NO''' en un orquestador, por ejemplo flowise); se entrega un &amp;quot;.ini&amp;quot; asociado a un agente &amp;quot;loop&amp;quot; existente en Flowise &amp;lt;code&amp;gt;/etc/MDtel/vFlow/agent_loop_01.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE AGENTE&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
   [uuids]&lt;br /&gt;
   agent=1a3a1020-ea1d-11f0-b4a5-5254008bef96&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un '''&amp;quot;.ini&amp;quot; por servicio''' --&amp;gt; Configuración de cada servicio en Omnisuite; se entrega un &amp;quot;.ini&amp;quot; a modo de ejemplo en &amp;lt;code&amp;gt;/etc/MDtel/vFlow/service.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
En cada fichero de servicio configuraremos&lt;br /&gt;
::* Donde está Vflow&lt;br /&gt;
::* Agente&lt;br /&gt;
::* Plataforma&lt;br /&gt;
::* timeout_s --&amp;gt; Importante, es afectado por el LLM&lt;br /&gt;
::* channel_text_type --&amp;gt; IMPORTANTE si el servicio es de texto que esté bien (vacio solo si el servicio es de texto, NO COMENTARLO)&lt;br /&gt;
::* environment --&amp;gt; production, staging, test&lt;br /&gt;
EJEMPLO &amp;quot;.INI&amp;quot; DE SERVICIO&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
  [arch_uuids]&lt;br /&gt;
  agent=/etc/MDtel/vFlow/agent_loop_01.ini&lt;br /&gt;
  platform=/etc/MDtel/vFlow/platform.ini&lt;br /&gt;
&lt;br /&gt;
  [vflow]&lt;br /&gt;
  host_port=172.25.129.242:7900&lt;br /&gt;
  timeout_s=20&lt;br /&gt;
  # channel_type=[voice|chat|email]&lt;br /&gt;
  channel_type=chat&lt;br /&gt;
  # environment=[production|staging|test]&lt;br /&gt;
  environment=production&lt;br /&gt;
  language=es&lt;br /&gt;
&lt;br /&gt;
  [omnisuite]&lt;br /&gt;
  # channel_text_type=[chat|mail|sms|whatsup]&lt;br /&gt;
  channel_text_type=chat&lt;br /&gt;
  service_id=vflow_service_id&lt;br /&gt;
  service_name=vflow_service_name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La imagen siguiente muestra el esquema de relación entre orquestador/plataforma/agente/servicio en la plataforma y en vFlow&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Relaciones vFlow plat orq ag serv.png|800px|miniaturadeimagen|centro|Relación orquestador-plataforma-agente-servicio]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Invocación ===&lt;br /&gt;
=== Generales ===&lt;br /&gt;
&lt;br /&gt;
Ver configuración&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; configPrint &amp;lt;omnisuite_UniqueId&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
Configuration:&lt;br /&gt;
  agent_arch_uuid=/etc/MDtel/vFlow/agent_fse_rapido.ini&lt;br /&gt;
  agent_uuid=3487af28-1d14-11f1-803c-525400ef204c&lt;br /&gt;
  platform_arch_uuid=/etc/MDtel/vFlow/platform_labomsui.ini&lt;br /&gt;
  platform_uuid=9a54ea74-f050-11f0-bdf1-5254008bef96&lt;br /&gt;
&lt;br /&gt;
  vflow_host_port=labvflow.mdnova.local&lt;br /&gt;
  vflow_timeout_s=50&lt;br /&gt;
  vflow_environment=production&lt;br /&gt;
  vflow_channel_type=voice&lt;br /&gt;
  vflow_language=es&lt;br /&gt;
&lt;br /&gt;
  omnisuite_channel_text_type=chat&lt;br /&gt;
  omnisuite_service_id=287&lt;br /&gt;
  omnisuite_service_name=desarrollo&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;errorCad&amp;quot;: &amp;quot;OK&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ver versión&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Para canales de texto ====&lt;br /&gt;
&lt;br /&gt;
Para canales de texto en Omnisuite existe un único Comando de invocación &amp;quot;omnisuiteText&amp;quot;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 1500px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; omnisuiteText &amp;lt;omnisuite_id&amp;gt; &amp;lt;omnisuite_websiteId&amp;gt; &amp;lt;omnisuite_createdAt&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt; &amp;lt;question&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros ( Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Obligatoriedad !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;config_arch&amp;gt;` || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_id&amp;gt;` || OBLIGATORIO || Identificativo de la interacción en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_websiteId&amp;gt;` || OBLIGATORIO || Identificativo del servicio en Omnisuite (ej. website id en chat)&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;omnisuite_createdAt&amp;gt;` || OBLIGATORIO || Creación de la interacción&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_id&amp;gt;` || OPCIONAL || Id de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_phone_number&amp;gt;` || OPCIONAL || Telf de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;vflow_client_email&amp;gt;` || OPCIONAL || Email de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| `&amp;lt;question&amp;gt;` || OBLIGATORIO || Texto a enviar al orquestado (p. ej. Flowise)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
 &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
 &amp;quot;session&amp;quot;: &amp;quot;e926548d-fdcf-11f0-a793-525400ef204c&amp;quot;,&lt;br /&gt;
 &amp;quot;language&amp;quot;: &amp;quot;es&amp;quot;,&lt;br /&gt;
 &amp;quot;response&amp;quot;: &amp;quot;HOLA&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Para canales de voz ====&lt;br /&gt;
Para  canales de voz, existen comandos para &amp;quot;abrir sesión&amp;quot;, &amp;quot;enviar texto&amp;quot; y &amp;quot;cerrar sesión&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Abrir sesión =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 1200px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; sessionOpen &amp;lt;omnisuite_UniqueId&amp;gt; &amp;lt;vflow_client_id&amp;gt; &amp;lt;vflow_client_phone_number&amp;gt; &amp;lt;vflow_client_email&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros (Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Requisito !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;omnisuite_UniqueId&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Unique_ID de asterisk de la llamada en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_id&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Id de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_phone_number&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Telf de cliente en Omnisuite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_client_email&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || Email de cliente en Omnisuite&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
    &amp;quot;session&amp;quot;: &amp;quot;ec73df29-f08a-11f0-a8ec-525400ef204c&amp;quot;,&lt;br /&gt;
    &amp;quot;platform_id&amp;quot;: &amp;quot;146&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''El value correspondiente al key &amp;quot;session&amp;quot; deberá ser guardado en una variable para siguientes invocaciones'''&lt;br /&gt;
&lt;br /&gt;
===== Enviar texto =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 700px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; textRequest &amp;lt;vflow_session_uuid&amp;gt; &amp;lt;question&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Requisito !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_session_uuid&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Variable &amp;quot;session&amp;quot; almacenada en el &amp;quot;sessionOpen&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;question&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Texto a enviar al orquestado (p. ej. Flowise) (normal, abandoned, other)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 0,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
    &amp;quot;session&amp;quot;: &amp;quot;c6f6fad7-f6c1-11f0-a793-525400ef204c&amp;quot;,&lt;br /&gt;
    &amp;quot;language&amp;quot;: &amp;quot;ES&amp;quot;,&lt;br /&gt;
    &amp;quot;response&amp;quot;: &amp;quot;Cristóbal Colón.&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Cerrar sesión=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 800px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;lt;config_arch&amp;gt; sessionClose &amp;lt;vflow_session_uuid&amp;gt; &amp;lt;vflow_cause&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros  (Los OPCIONALES son &amp;quot;&amp;quot; si no se envía valor):&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parámetro !! Estado !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;config_arch&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || &amp;quot;.ini&amp;quot; del servicio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_session_uuid&amp;gt;&amp;lt;/code&amp;gt; || OBLIGATORIO || Variable &amp;quot;session&amp;quot; almacenada en el &amp;quot;sessionOpen&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;vflow_cause&amp;gt;&amp;lt;/code&amp;gt; || OPCIONAL || (normal, abandoned, expired, other)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta JSON&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 400px; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;errorNum&amp;quot;: 104,&lt;br /&gt;
    &amp;quot;errorStr&amp;quot;: &amp;quot;Wrong session&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ejemplos para omnisuite ===&lt;br /&gt;
&lt;br /&gt;
'''Ejemplo de chat'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 1400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_chat.ini&amp;quot; &amp;quot;omnisuiteText&amp;quot; &amp;quot;{{interaction.id}}&amp;quot; &amp;quot;{{account.id}}&amp;quot; &amp;quot;{{interaction.createdAt}}&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;{{message.body}}&amp;quot; | jq -r '.response'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Ejemplo de voz'''&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen cally square.jpg|1024px|none|miniatura|Ejemplo de flujo de Cally Square]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 1000px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_voice.ini&amp;quot; &amp;quot;sessionOpen&amp;quot; &amp;quot;{UNIQUEID}&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; |  jq -r '.session' &amp;lt;/pre&amp;gt;&lt;br /&gt;
::&amp;lt;small&amp;gt;salida del comando almacenado en variable &amp;quot;vflow_sessionopen_response&amp;quot; para su posterior uso en cally square&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen sessionopen.jpg|550px|center|miniatura|Abrir sesión en vFlow]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 1400px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_desa_voz.ini&amp;quot; &amp;quot;textRequest&amp;quot; &amp;quot;{vflow_sessionopen_response}&amp;quot; &amp;quot;{OPENAI_WHISPER_TRANSCRIPT}&amp;quot; | jq -r '.response'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::&amp;lt;small&amp;gt;la voz se ha transcrito con OpenAI, por eso se usa como parámetro {OPENAI_WHISPER_TRANSCRIPT})&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen textrequest.jpg|550px|center|miniatura|Enviar texto en vFlow]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; max-width: 1000px; margin-left: 0px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;&amp;quot;&amp;gt; &lt;br /&gt;
/usr/local/sbin/vFlowOmnisuite &amp;quot;/etc/MDtel/vFlow/service_desa_voz.ini&amp;quot; &amp;quot;sessionClose&amp;quot; &amp;quot;{{vflow_sessionopen_response}}&amp;quot; &amp;quot;normal&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Imagen sessionclose.jpg|900px|center|miniatura|Cerrar sesión en vFlow]]&lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:VIVAit Call]]&lt;br /&gt;
[[Category:Omnisuite]]&lt;br /&gt;
[[Category:IA]]&lt;/div&gt;</summary>
		<author><name>Alfredo.rodriguez</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Howto%27s_5.0&amp;diff=17002</id>
		<title>Howto's 5.0</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Howto%27s_5.0&amp;diff=17002"/>
		<updated>2026-03-18T10:47:39Z</updated>

		<summary type="html">&lt;p&gt;Alfredo.rodriguez: /* Puesta en marcha SIPREC */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== &amp;lt;big&amp;gt;Guías Prácticas versión 5.0&amp;lt;/big&amp;gt; ==&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;big&amp;gt;Utilizar los siguientes enlaces para descargar las guías practicas, sobre las funcionalidades indicadas en cada apartado, de la versión 5.0 de '''''VIVA'''it CALL''.&amp;lt;/big&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
=== Conexión con Teams ===&lt;br /&gt;
:&amp;lt;big&amp;gt;[[:media:Conexión Teams modelo Smart.pdf| Guía práctica para la configuración de la ''Conexión con Teams'', modelo Smart]]&amp;lt;/big&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
=== Puesta en marcha direc ===&lt;br /&gt;
:&amp;lt;big&amp;gt;[[:media:Puesta en marcha direc.pdf| Guía práctica para la ''Puesta en marcha de direc'']]&amp;lt;/big&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
=== Puesta en marcha SIPREC ===&lt;br /&gt;
:&amp;lt;big&amp;gt;[[:media:Puesta en marcha SIPREC.pdf| Guía práctica para la ''Puesta en marcha de SIPREC'']]&amp;lt;/big&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Puesta en marcha TBC ===&lt;br /&gt;
:&amp;lt;big&amp;gt;[[:media:Puesta en marcha TBC.pdf| Guía práctica para la ''Puesta en marcha de TBC'']]&amp;lt;/big&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
=== Importación masiva de usuarios ===&lt;br /&gt;
:&amp;lt;big&amp;gt;[[:media:importación+masiva_V5+(2).pdf| Guía práctica para la ''Importación masiva'' de usuarios]]&amp;lt;/big&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Página_principal | Volver a la Página Principal]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:usuario]]&lt;br /&gt;
[[Category:administrador]]&lt;br /&gt;
[[Category:VIVAit Call]]&lt;br /&gt;
[[Category:IA]]&lt;/div&gt;</summary>
		<author><name>Alfredo.rodriguez</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Terminales&amp;diff=17001</id>
		<title>Terminales</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Terminales&amp;diff=17001"/>
		<updated>2026-03-18T10:37:31Z</updated>

		<summary type="html">&lt;p&gt;Alfredo.rodriguez: /* Terminales telefónicos */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;big&amp;gt;&lt;br /&gt;
== Terminales telefónicos ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''''VIVA'''''it Call está preparado para poder soportar gran cantidad de terminales telefónicos, de diversas marcas y modelos; se adjuntan manuales de usuario de los más habituales&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Marca !! Modelo !! Manual de uso &lt;br /&gt;
|- &lt;br /&gt;
| Grandstream || 1160 y 1165 ||[[medio:Guia rapida Grandstream 1160_1165.pdf|Guía rápida Grandstream 1160 y 1165]]&lt;br /&gt;
|- &lt;br /&gt;
| Grandstream || 1400 y 1405 ||[[medio:Guia rapida Grandstream 1400_1405.pdf|Guía rápida Grandstream 1400 y 405]]&lt;br /&gt;
|- &lt;br /&gt;
| Grandstream || GXP2130 ,GXP2140, GXP2160, GXP2135 y GXP2170||[[medio:Guia rapida Grandstream GXP2130_GXP2140_GXP2160.pdf|Guía rápida Grandstream GXP2130 ,GXP2140, GXP2160, GXP2135 y GXP2170]]&lt;br /&gt;
|- &lt;br /&gt;
| Grandstream || DP715 y DP710 ||[[medio:Guia rapida Grandstream DP715_DP710.pdf|Guía rápida Grandstream DP715 y DP710]]&lt;br /&gt;
|- &lt;br /&gt;
| Huawei || 7910 ||[[medio:Guia rapida Huawei 7910.pdf|Guía rápida Huawei 7910]] (En Inglés)&lt;br /&gt;
|- &lt;br /&gt;
| Huawei || 7950 || [[medio:Guia rapida Huawei 7950.pdf|Guía rápida Huawei 7950]] (En Inglés)&lt;br /&gt;
|- &lt;br /&gt;
| Mitel || 6865i ||[[medio:Guia rapida Mitel 6865i.pdf|Guía rápida Mitel 6865i]]&lt;br /&gt;
|- &lt;br /&gt;
| Mitel || 6867i ||[[medio:Guia rapida Mitel 6867i.pdf|Guía rápida Mitel 6867i]]&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| Aastra (Mitel)|| 6730i y 6731i  || [[medio: 6730i_6731i_qrg_symbol_keypad_English_270710.pdf | Guía rápida Aastra Mitel 6730i y 6731i]] (En Inglés)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| Aastra (Mitel)|| 6753i || [[medio:6753i_qrg_symbol_keypad_English_270710.pdf | Guía rápida Aastra Mitel 6753i ]] (En Inglés)&lt;br /&gt;
|- &lt;br /&gt;
| Snom || 710 ||[[medio:Guia rapida Snom 710.pdf|Guía rápida Snom 710]]&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T20P ||[[medio:Guia rapida Yealink T20p.pdf|Guía rápida Yealink T20P]]&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T21P ||[[medio:Guia rapida Yealink T21p.pdf|Guía rápida Yealink T21P]]&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T23G y T23P ||[[medio:Guia rapida Yealink T23P_T23G.pdf|Guía rápida Yealink T23G y T23P]] (En Inglés)&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T26P ||[[medio:Guia rapida Yealink T26p.pdf|Guía rápida Yealink T26P]]&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T27P ||[[medio:Guia rapida Yealink T27P.pdf|Guía rápida Yealink T27P]] (En Inglés)&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T28P ||[[medio:Guia rapida Yealink T28p.pdf|Guía rápida Yealink T28P]]&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || VP530 ||[[medio:Guia rapida Yealink VP530.pdf|Guía rápida Yealink VP530]]&lt;br /&gt;
|- &lt;br /&gt;
| Cisco Unified || SIP 3905 ||[[medio:Guia rapida Cisco SIP 3905.pdf|Guía rápida Cisco SIP 3905]]&lt;br /&gt;
|- &lt;br /&gt;
| Cisco Unified || IP 6921 ||[[medio:Guia rapida Cisco IP 6921.pdf.pdf|Guía rápida Cisco IP 6921]]&lt;br /&gt;
|- &lt;br /&gt;
| Cisco Unified || IP 7960G y 7940g||[[medio:7940g_y_7960g REFER RAPIDA.pdf|Guía rápida Cisco IP 7960G y 7940g]]&lt;br /&gt;
|- &lt;br /&gt;
| Cisco Unified || IP 7962G y 7942g||[[medio:cisco_ipphone_7942g.pdf |Guía rápida Cisco IP 7962G y 7942g]]&lt;br /&gt;
|- &lt;br /&gt;
| Zoiper || Business Windows || [[medio:User Guide Zoiper 5 v.1.0.7.pdf| Manual de usuario de Zoiper 5]] (En Inglés)&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[https://vivait-wiki.mdnova.local/wiki/vivait/index.php/Terminales Volver al indice]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Alfredo.rodriguez</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Terminales&amp;diff=17000</id>
		<title>Terminales</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Terminales&amp;diff=17000"/>
		<updated>2026-03-18T10:37:16Z</updated>

		<summary type="html">&lt;p&gt;Alfredo.rodriguez: /* Terminales telefónicos */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;big&amp;gt;&lt;br /&gt;
== Terminales telefónicos ==&lt;br /&gt;
HOLA&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''''VIVA'''''it Call está preparado para poder soportar gran cantidad de terminales telefónicos, de diversas marcas y modelos; se adjuntan manuales de usuario de los más habituales&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Marca !! Modelo !! Manual de uso &lt;br /&gt;
|- &lt;br /&gt;
| Grandstream || 1160 y 1165 ||[[medio:Guia rapida Grandstream 1160_1165.pdf|Guía rápida Grandstream 1160 y 1165]]&lt;br /&gt;
|- &lt;br /&gt;
| Grandstream || 1400 y 1405 ||[[medio:Guia rapida Grandstream 1400_1405.pdf|Guía rápida Grandstream 1400 y 405]]&lt;br /&gt;
|- &lt;br /&gt;
| Grandstream || GXP2130 ,GXP2140, GXP2160, GXP2135 y GXP2170||[[medio:Guia rapida Grandstream GXP2130_GXP2140_GXP2160.pdf|Guía rápida Grandstream GXP2130 ,GXP2140, GXP2160, GXP2135 y GXP2170]]&lt;br /&gt;
|- &lt;br /&gt;
| Grandstream || DP715 y DP710 ||[[medio:Guia rapida Grandstream DP715_DP710.pdf|Guía rápida Grandstream DP715 y DP710]]&lt;br /&gt;
|- &lt;br /&gt;
| Huawei || 7910 ||[[medio:Guia rapida Huawei 7910.pdf|Guía rápida Huawei 7910]] (En Inglés)&lt;br /&gt;
|- &lt;br /&gt;
| Huawei || 7950 || [[medio:Guia rapida Huawei 7950.pdf|Guía rápida Huawei 7950]] (En Inglés)&lt;br /&gt;
|- &lt;br /&gt;
| Mitel || 6865i ||[[medio:Guia rapida Mitel 6865i.pdf|Guía rápida Mitel 6865i]]&lt;br /&gt;
|- &lt;br /&gt;
| Mitel || 6867i ||[[medio:Guia rapida Mitel 6867i.pdf|Guía rápida Mitel 6867i]]&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| Aastra (Mitel)|| 6730i y 6731i  || [[medio: 6730i_6731i_qrg_symbol_keypad_English_270710.pdf | Guía rápida Aastra Mitel 6730i y 6731i]] (En Inglés)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| Aastra (Mitel)|| 6753i || [[medio:6753i_qrg_symbol_keypad_English_270710.pdf | Guía rápida Aastra Mitel 6753i ]] (En Inglés)&lt;br /&gt;
|- &lt;br /&gt;
| Snom || 710 ||[[medio:Guia rapida Snom 710.pdf|Guía rápida Snom 710]]&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T20P ||[[medio:Guia rapida Yealink T20p.pdf|Guía rápida Yealink T20P]]&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T21P ||[[medio:Guia rapida Yealink T21p.pdf|Guía rápida Yealink T21P]]&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T23G y T23P ||[[medio:Guia rapida Yealink T23P_T23G.pdf|Guía rápida Yealink T23G y T23P]] (En Inglés)&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T26P ||[[medio:Guia rapida Yealink T26p.pdf|Guía rápida Yealink T26P]]&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T27P ||[[medio:Guia rapida Yealink T27P.pdf|Guía rápida Yealink T27P]] (En Inglés)&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T28P ||[[medio:Guia rapida Yealink T28p.pdf|Guía rápida Yealink T28P]]&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || VP530 ||[[medio:Guia rapida Yealink VP530.pdf|Guía rápida Yealink VP530]]&lt;br /&gt;
|- &lt;br /&gt;
| Cisco Unified || SIP 3905 ||[[medio:Guia rapida Cisco SIP 3905.pdf|Guía rápida Cisco SIP 3905]]&lt;br /&gt;
|- &lt;br /&gt;
| Cisco Unified || IP 6921 ||[[medio:Guia rapida Cisco IP 6921.pdf.pdf|Guía rápida Cisco IP 6921]]&lt;br /&gt;
|- &lt;br /&gt;
| Cisco Unified || IP 7960G y 7940g||[[medio:7940g_y_7960g REFER RAPIDA.pdf|Guía rápida Cisco IP 7960G y 7940g]]&lt;br /&gt;
|- &lt;br /&gt;
| Cisco Unified || IP 7962G y 7942g||[[medio:cisco_ipphone_7942g.pdf |Guía rápida Cisco IP 7962G y 7942g]]&lt;br /&gt;
|- &lt;br /&gt;
| Zoiper || Business Windows || [[medio:User Guide Zoiper 5 v.1.0.7.pdf| Manual de usuario de Zoiper 5]] (En Inglés)&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[https://vivait-wiki.mdnova.local/wiki/vivait/index.php/Terminales Volver al indice]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Alfredo.rodriguez</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1&amp;diff=16999</id>
		<title>Documentación de usuario VIVAit Call 5.1</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1&amp;diff=16999"/>
		<updated>2026-03-18T10:36:48Z</updated>

		<summary type="html">&lt;p&gt;Alfredo.rodriguez: &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;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;big&amp;gt;&lt;br /&gt;
Versiones anteriores de [[Usuario Vivait Call versiones| Usuario Vivait Call]]&lt;br /&gt;
&lt;br /&gt;
[[Guía_rápida_Web_Call_V.2.3.0 | Guía rápida Web Call]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Los usuarios del sistema '''''VIVA'''''it Call disponen de una serie de herramientas de gestión que permiten manejar y configurar las principales características del sistema a nivel de usuario final:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
* Terminal telefónico, con diferentes características en función de la marca y modelo que el usuario disponga.&lt;br /&gt;
* Facilidades del sistema, accesibles desde cualquier terminal telefónico mediante la pulsación de combinaciones del teclado.&lt;br /&gt;
* Portal de usuario, para poder acceder a facilidades del sistema y otros servicios de manera más sencilla e intuitiva.&lt;br /&gt;
* Aplicación '''''VIVA'''''it Tracker, que permite realizar el seguimiento, escucha y descarga de grabaciones de llamadas para usuarios con permiso de acceso.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[#Introducción | Volver arriba]] / [https://vivait-wiki.mdnova.local/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1 Volver al indice]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1 | Volver al indice]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''''VIVA'''''it Call está preparado para poder soportar gran cantidad de terminales telefónicos, de diversas marcas y modelos; se adjuntan manuales de usuario de los más habituales&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{:Terminales}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[#Terminales_telefónicos | Volver arriba]] / [https://vivait-wiki.mdnova.local/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1 Volver al indice]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Facilidades del sistema ==&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Una de las maneras que tiene un usuario para poder realizar operaciones básicas sobre su extensión es mediante el uso de combinaciones de teclas, que le dan acceso a la activación o desactivación de diferentes facilidades en el sistema; la tabla adjunta muestra las facilidades disponibles por defecto.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
! '''Código a marcar '''!! Funcionalidad !! Modo de uso &lt;br /&gt;
|-&lt;br /&gt;
|*21#||Desvío extensión incondicional a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*21*numero||Desvío extensión incondicional||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*211#||Desvío extensión por no contesta a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*211*numero||Desvío extensión por no contesta||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*212#||Desvío extensión por ocupado a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*212*numero||Desvío extensión por ocupado||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*213#||Desvío extensión por fuera de servicio a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*213*numero||Desvío extensión por fuera de servicio||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
&amp;lt;!--|-&lt;br /&gt;
|*223*numero||Desvío usuario por no login||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación--&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|*31#||Desvío usuario incondicional mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*31*numero||Desvío usuario incondicional||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*311#||Desvío usuario por no contesta mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*311*numero||Desvío usuario por no contesta||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*312#||Desvío usuario por ocupado a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*312*numero||Desvío usuario por ocupado||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*313#||Desvío usuario por no login a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*313*numero||Desvío usuario por no login||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*32#||Desvio usuario por calendario. ||Activación: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*33#||Desvio extensión por calendario.||Activación: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*401#||Login movilidad avanzada||Activación: Pulsar código + destino + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*402#||Logout movilidad avanzada||Activación: Pulsar código + destino + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*41*||Capturar extensión||Activación: Pulsar código + destino + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*8||Capturar llamada de grupo de captura||Activación: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*42#||Leer buzón|| Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*43#||Activar retrollamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*44#||Cancelar retrollamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*45#||Login movilidad||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*46#||Logout movilidad||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*47#||Login en grupos corporativos||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*48#||Logout en grupos corporativos||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*491#||Pausa en grupos corporativos||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*492#||Quitar pausa en grupos corporativos||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*50#||Movilidad||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*54#||Intrusión a extensión||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*55#||Intrusión a VDN o Grupo||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*500#||Eco||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*501#|| Tono de prueba||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*60#||Movilidad llamada a llamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*61#||Categoría usuario en llamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*65#||Categoría temporal de teléfono||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*66#||Fin Categoría temporal de teléfono||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*72#||Movilidad llamada a llamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|70106 ||Cancelar retrollamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[#Facilidades_del_sistema | Volver arriba]] / [https://vivait-wiki.mdnova.local/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1 Volver al indice]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Retrollamadas ===&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
El funcionamiento será el siguiente:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*La retrollamada queda programada de extensión física &amp;quot;A&amp;quot; a extensión física &amp;quot;B&amp;quot; (no queda programada a numeraciones de usuarios); esto no quiere decir que no podamos programar una retrollamada cuando hemos llamado a una numeración de usuario, pero queda programada en la extensión física en la que está ese usuario en ese momento.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*El número llamado &amp;quot;B&amp;quot; podrá ser derivado de varias causas:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
::&amp;quot;A&amp;quot; ha llamado a &amp;quot;B&amp;quot; &lt;br /&gt;
::&amp;quot;A&amp;quot; ha llamado a un usuario ubicado en &amp;quot;B&amp;quot; &lt;br /&gt;
::&amp;quot;A&amp;quot; ha llamado a un destino desviado a &amp;quot;B&amp;quot; &lt;br /&gt;
::&amp;quot;A&amp;quot; ha llamado a un destino y por preruta acaba en &amp;quot;B&amp;quot; &lt;br /&gt;
::...&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*Las causas por las que se podrá programar una retrollamada son:&lt;br /&gt;
::&amp;quot;B&amp;quot; está ocupada&lt;br /&gt;
::&amp;quot;B&amp;quot; no contesta&lt;br /&gt;
::&amp;quot;B&amp;quot; está ocupada y no contesta (ha sonado en línea 2--&amp;gt; )&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''Solo podremos programar la retrollamada si el sistema devuelve: extensión ocupada o no contesta'''&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Estas dos últimas casuísticas son iguales a efectos de usuario, pero no a efectos internos...&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Si una llamada va a buzón, salta a un grupo ACD, a una IVR...entonces NO habrá retrollamada (porque se considera contestada)&lt;br /&gt;
 &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*Para programar una retrollamada se pulsa el código de facilidad (*43#) una vez colgada la misma; el sistema recordará la última llamada durante un período de tiempo configurable; aunque entre una llamada en &amp;quot;A&amp;quot;, este podrá programar retrollamada a la última saliente si sigue dentro del período&lt;br /&gt;
*Se podrá abortar una retrollamada ( (*44#), pero esto no borrará la última llamada (podemos arrepentirnos de haber abortado la retrollamada)&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[#Facilidades_del_sistema | Volver arriba]] / [https://vivait-wiki.mdnova.local/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1 Volver al indice]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Portal de usuario ==&lt;br /&gt;
&lt;br /&gt;
El portal de usuario VIVAit Call permite que determinadas funcionalidades del sistema puedan ser accesibles por los usuarios finales desde una interfaz mucho más cómoda y amigable que el telefónico; de esta forma, desde un portal fácilmente accesible los usuarios finales podrán: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Gestionar las principales características del sistema, incluyendo:&lt;br /&gt;
&lt;br /&gt;
•	Principales datos de contacto&lt;br /&gt;
&lt;br /&gt;
•	Gestionar desvíos en telefonía corporativa&lt;br /&gt;
&lt;br /&gt;
•	Gestionar la agenda de contactos&lt;br /&gt;
&lt;br /&gt;
•	Acceder al sistema de mensajería vocal con el objeto de escuchar y administrar los mensajes de voz&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Aspecto general ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El acceso al portal se realiza tras el correspondiente proceso de validación, tal y como se muestra en la imagen siguiente:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall1.png |250px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez se ha accedido al portal, éste se compone de seis pestañas:&lt;br /&gt;
&lt;br /&gt;
•	Contactos&lt;br /&gt;
&lt;br /&gt;
•	Historial&lt;br /&gt;
&lt;br /&gt;
•	Mensaje de voz&lt;br /&gt;
&lt;br /&gt;
•	Desvíos&lt;br /&gt;
&lt;br /&gt;
•	Ajustes&lt;br /&gt;
&lt;br /&gt;
•	Información&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall2-2.png |950px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En la parte superior derecha del portal, se encuentran los siguientes botones:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall3.png |450px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Botón !! Función &lt;br /&gt;
|- &lt;br /&gt;
| [[File:webcall4.png |50px|center]] || Botón para mostrar u ocultar la ventana del teléfono.&lt;br /&gt;
|-&lt;br /&gt;
| [[File:webcall5.png |250px|center]] || Muestra si una extensión está disponible o no dependiendo del color (verde = disponible, rojo = no disponible). Cada usuario puede configurar esta funcionalidad en la pestaña Ajustes\Extensiones\Disponibilidad General [[File:webcall6.png |200px|]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:webcall7.png |50px|center]] || Este botón se muestra cuando hay configurado uno o varios desvíos. Esta funcionalidad se explica en el apartado 4.4&lt;br /&gt;
|-&lt;br /&gt;
| [[File:webcall8.png |50px|center]] || Este botón se muestra cuando hay configurado un desvío incondicional por calendario. Esta funcionalidad se explica en el apartado 4.4 &lt;br /&gt;
|-&lt;br /&gt;
| [[File:webcall9.png |50px|center]] || Botón para salir del portal.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Pestañas en el portal de VIVAit Call ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pestaña Contactos ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La pestaña de contactos muestra al usuario los datos de los contactos añadidos en su agenda. Los datos que se muestran de cada contacto son: Nombre, Apellido, Empresa, Tipo agenda y Teléfono.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:WEBCALL1.png |800px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para añadir un nuevo contacto, hay que seleccionar el botón de la parte superior derecha &amp;quot;Añadir nuevo contacto&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Al darle a &amp;quot;añadir un nuevo contacto&amp;quot;, nos aparecerá una ventana con las siguientes opciones: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall13.png |800px|center]]&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;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre'''&lt;br /&gt;
|  | Nombre del usuario ('''Obligatorio''').&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Apellido 1'''&lt;br /&gt;
|  | Primer apellido del usuario.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Apellido 2'''&lt;br /&gt;
|  | Segundo apellido del usuario. &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre en pantalla'''&lt;br /&gt;
| | Nombre del usuario en pantalla. ('''Obligatorio''')&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Empresa'''&lt;br /&gt;
|  | Nombre de la empresa.&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;
| font-weight: bold;&amp;quot; | '''Código postal'''&lt;br /&gt;
|  | Código postal del usuario.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Localidad'''&lt;br /&gt;
|  | Localidad del usuario .&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Localidad'''&lt;br /&gt;
|  | Provincia del usuario .&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Número de teléfono'''&lt;br /&gt;
|  | Número de teléfono del usuario . ('''Obligatorio''')&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Tipo'''&lt;br /&gt;
|  | Fijo / Móvil&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Pestaña Historial===&lt;br /&gt;
&lt;br /&gt;
La pestaña de Historial muestra al usuario el listado de las llamadas realizadas y recibidas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall22.png |800px|center]]&lt;br /&gt;
&lt;br /&gt;
=== Pestaña Mensaje de voz===&lt;br /&gt;
&lt;br /&gt;
La pestaña de mensajes de voz muestra los mensajes que han llegado a nuestro buzón de voz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:web-call5.png|800px|center]]&lt;br /&gt;
&lt;br /&gt;
=== Pestaña Desvíos ===&lt;br /&gt;
&lt;br /&gt;
La pestaña Desvíos permite al usuario visualizar información de relevancia como usuario de telefonía corporativa, y realizar desvíos de usuario (no a nivel de extensión) en diferentes casuísticas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall16.png |800px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En esta pestaña podremos configurar cinco tipos de desvío: &lt;br /&gt;
&lt;br /&gt;
•	Desvío incondicional: Todas las llamadas se desvían.&lt;br /&gt;
&lt;br /&gt;
•	Desvío por calendario: Desvío de la llamada cuando se configura una fecha en el calendario.&lt;br /&gt;
&lt;br /&gt;
•	Desvío por no conectado: Desvío en caso de que se dirija una llamada al número de un usuario que no está registrado en el teléfono.&lt;br /&gt;
&lt;br /&gt;
•	Desvío por ocupado: Desvío cuando el usuario está ocupado (comunicando).&lt;br /&gt;
&lt;br /&gt;
•	Desvío por no contestado: Desvío de la llamada cuando el usuario no contesta.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Las opciones de la pestaña Desvíos se explican en la siguiente tabla:&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;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #0099ff;border-bottom:0.05pt solid #0099ff;border-left:0.05pt solid #0099ff;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''INCONDICIONAL'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío incondicional a mensajería'''&lt;br /&gt;
|| Desvía todas las llamadas que recibe el usuario 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 al que se desvía la llamada. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío incondicional por calendario'''&lt;br /&gt;
|| Permite al usuario gestionar su desvío por calendario&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por calendario'''&lt;br /&gt;
|| Pestaña para seleccionar fechas para el desvío&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #0099ff;border-bottom:0.05pt solid #0099ff;border-left:0.05pt solid #0099ff;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''NO CONECTADO'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por no conectado a mensajería'''&lt;br /&gt;
|| Desvía la llamada al buzón de voz cuando el usuario no está registrado en el teléfono. &lt;br /&gt;
|| Si / No. &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por no conectado'''&lt;br /&gt;
|| Número al que se desvía la llamada cuando el usuario no está registrado en el teléfono. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #0099ff;border-bottom:0.05pt solid #0099ff;border-left:0.05pt solid #0099ff;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''OCUPADO'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por ocupado a mensajería'''&lt;br /&gt;
|| Desvía la llamada al buzón de voz cuando el usuario está 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 al que se desvía la llamada cuando el usuario está ocupado. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #0099ff;border-bottom:0.05pt solid #0099ff;border-left:0.05pt solid #0099ff;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''NO CONTESTADO'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por no contestación a mensajería'''&lt;br /&gt;
|| Desvía la llamada al buzón de voz cuando el usuario no contesta.&lt;br /&gt;
|| Si / No. &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por no contestación'''&lt;br /&gt;
|| Número al que se desvía la llamada cuando el usuario no contesta. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Pestaña Ajustes ===&lt;br /&gt;
&lt;br /&gt;
El área de ajustes del portal nos da acceso a tres pestañas de gestión.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La pestaña de '''Ajustes/Dispositivos''' se muestra en la siguiente imagen: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall17.png |900px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En esta pestaña se configura el dispositivo de entrada y salida de audio, también sirve para establecer un tono de timbre.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La pestaña de '''Ajustes/Usuario''' se muestra en la siguiente imagen:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:WEBCALL2.png |900px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En esta pantalla los campos que se muestran sombreados no serán editables.&lt;br /&gt;
&lt;br /&gt;
Algunos campos son solo informativos por lo que siempre aparecerán sombreados, en otras ocasiones el usuario no dispondrá de permisos para editar los campos, pero los campos siempre aparecerán. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Las opciones de la pestaña de usuario se explican en la siguiente tabla:&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;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre'''&lt;br /&gt;
|  | Nombre del usuario ('''Obligatorio''').&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Apellido 1'''&lt;br /&gt;
|  | Primer apellido del usuario.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Apellido 2'''&lt;br /&gt;
|  | Segundo apellido del usuario. &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;
| font-weight: bold;&amp;quot; | '''Localidad'''&lt;br /&gt;
|  | Código postal del usuario.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Código Postal'''&lt;br /&gt;
| | Localidad del usuario .&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;
| font-weight: bold;&amp;quot; | '''Mensaje de texto'''&lt;br /&gt;
|  | Mensaje de texto a mostrar.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Idioma'''&lt;br /&gt;
| | Idioma del usuario.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Fecha de expiración'''&lt;br /&gt;
|   | Nombre de la cuenta del usuario. (solo lectura)&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Fecha último cambio de clave'''&lt;br /&gt;
|  |Clave de la cuenta (obligatorio). &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La pestaña '''Ajustes/extensiones''' muestra al usuario final las extensiones del sistema que tiene asignadas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:WEBCALL3.png |1000px|center]]&lt;/div&gt;</summary>
		<author><name>Alfredo.rodriguez</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1&amp;diff=16998</id>
		<title>Documentación de usuario VIVAit Call 5.1</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1&amp;diff=16998"/>
		<updated>2026-03-18T10:36:07Z</updated>

		<summary type="html">&lt;p&gt;Alfredo.rodriguez: &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;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;big&amp;gt;&lt;br /&gt;
Versiones anteriores de [[Usuario Vivait Call versiones| Usuario Vivait Call]]&lt;br /&gt;
&lt;br /&gt;
[[Guía_rápida_Web_Call_V.2.3.0 | Guía rápida Web Call]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Los usuarios del sistema '''''VIVA'''''it Call disponen de una serie de herramientas de gestión que permiten manejar y configurar las principales características del sistema a nivel de usuario final:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
* Terminal telefónico, con diferentes características en función de la marca y modelo que el usuario disponga.&lt;br /&gt;
* Facilidades del sistema, accesibles desde cualquier terminal telefónico mediante la pulsación de combinaciones del teclado.&lt;br /&gt;
* Portal de usuario, para poder acceder a facilidades del sistema y otros servicios de manera más sencilla e intuitiva.&lt;br /&gt;
* Aplicación '''''VIVA'''''it Tracker, que permite realizar el seguimiento, escucha y descarga de grabaciones de llamadas para usuarios con permiso de acceso.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[#Introducción | Volver arriba]] / [https://vivait-wiki.mdnova.local/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1 Volver al indice]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1 | Volver al indice]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Terminales telefónicos ==&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''''VIVA'''''it Call está preparado para poder soportar gran cantidad de terminales telefónicos, de diversas marcas y modelos; se adjuntan manuales de usuario de los más habituales&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{:Terminales}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[#Terminales_telefónicos | Volver arriba]] / [https://vivait-wiki.mdnova.local/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1 Volver al indice]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Facilidades del sistema ==&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Una de las maneras que tiene un usuario para poder realizar operaciones básicas sobre su extensión es mediante el uso de combinaciones de teclas, que le dan acceso a la activación o desactivación de diferentes facilidades en el sistema; la tabla adjunta muestra las facilidades disponibles por defecto.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
! '''Código a marcar '''!! Funcionalidad !! Modo de uso &lt;br /&gt;
|-&lt;br /&gt;
|*21#||Desvío extensión incondicional a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*21*numero||Desvío extensión incondicional||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*211#||Desvío extensión por no contesta a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*211*numero||Desvío extensión por no contesta||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*212#||Desvío extensión por ocupado a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*212*numero||Desvío extensión por ocupado||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*213#||Desvío extensión por fuera de servicio a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*213*numero||Desvío extensión por fuera de servicio||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
&amp;lt;!--|-&lt;br /&gt;
|*223*numero||Desvío usuario por no login||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación--&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|*31#||Desvío usuario incondicional mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*31*numero||Desvío usuario incondicional||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*311#||Desvío usuario por no contesta mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*311*numero||Desvío usuario por no contesta||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*312#||Desvío usuario por ocupado a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*312*numero||Desvío usuario por ocupado||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*313#||Desvío usuario por no login a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*313*numero||Desvío usuario por no login||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*32#||Desvio usuario por calendario. ||Activación: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*33#||Desvio extensión por calendario.||Activación: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*401#||Login movilidad avanzada||Activación: Pulsar código + destino + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*402#||Logout movilidad avanzada||Activación: Pulsar código + destino + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*41*||Capturar extensión||Activación: Pulsar código + destino + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*8||Capturar llamada de grupo de captura||Activación: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*42#||Leer buzón|| Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*43#||Activar retrollamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*44#||Cancelar retrollamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*45#||Login movilidad||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*46#||Logout movilidad||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*47#||Login en grupos corporativos||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*48#||Logout en grupos corporativos||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*491#||Pausa en grupos corporativos||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*492#||Quitar pausa en grupos corporativos||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*50#||Movilidad||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*54#||Intrusión a extensión||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*55#||Intrusión a VDN o Grupo||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*500#||Eco||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*501#|| Tono de prueba||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*60#||Movilidad llamada a llamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*61#||Categoría usuario en llamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*65#||Categoría temporal de teléfono||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*66#||Fin Categoría temporal de teléfono||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*72#||Movilidad llamada a llamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|70106 ||Cancelar retrollamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[#Facilidades_del_sistema | Volver arriba]] / [https://vivait-wiki.mdnova.local/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1 Volver al indice]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Retrollamadas ===&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
El funcionamiento será el siguiente:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*La retrollamada queda programada de extensión física &amp;quot;A&amp;quot; a extensión física &amp;quot;B&amp;quot; (no queda programada a numeraciones de usuarios); esto no quiere decir que no podamos programar una retrollamada cuando hemos llamado a una numeración de usuario, pero queda programada en la extensión física en la que está ese usuario en ese momento.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*El número llamado &amp;quot;B&amp;quot; podrá ser derivado de varias causas:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
::&amp;quot;A&amp;quot; ha llamado a &amp;quot;B&amp;quot; &lt;br /&gt;
::&amp;quot;A&amp;quot; ha llamado a un usuario ubicado en &amp;quot;B&amp;quot; &lt;br /&gt;
::&amp;quot;A&amp;quot; ha llamado a un destino desviado a &amp;quot;B&amp;quot; &lt;br /&gt;
::&amp;quot;A&amp;quot; ha llamado a un destino y por preruta acaba en &amp;quot;B&amp;quot; &lt;br /&gt;
::...&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*Las causas por las que se podrá programar una retrollamada son:&lt;br /&gt;
::&amp;quot;B&amp;quot; está ocupada&lt;br /&gt;
::&amp;quot;B&amp;quot; no contesta&lt;br /&gt;
::&amp;quot;B&amp;quot; está ocupada y no contesta (ha sonado en línea 2--&amp;gt; )&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''Solo podremos programar la retrollamada si el sistema devuelve: extensión ocupada o no contesta'''&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Estas dos últimas casuísticas son iguales a efectos de usuario, pero no a efectos internos...&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Si una llamada va a buzón, salta a un grupo ACD, a una IVR...entonces NO habrá retrollamada (porque se considera contestada)&lt;br /&gt;
 &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*Para programar una retrollamada se pulsa el código de facilidad (*43#) una vez colgada la misma; el sistema recordará la última llamada durante un período de tiempo configurable; aunque entre una llamada en &amp;quot;A&amp;quot;, este podrá programar retrollamada a la última saliente si sigue dentro del período&lt;br /&gt;
*Se podrá abortar una retrollamada ( (*44#), pero esto no borrará la última llamada (podemos arrepentirnos de haber abortado la retrollamada)&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[#Facilidades_del_sistema | Volver arriba]] / [https://vivait-wiki.mdnova.local/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1 Volver al indice]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Portal de usuario ==&lt;br /&gt;
&lt;br /&gt;
El portal de usuario VIVAit Call permite que determinadas funcionalidades del sistema puedan ser accesibles por los usuarios finales desde una interfaz mucho más cómoda y amigable que el telefónico; de esta forma, desde un portal fácilmente accesible los usuarios finales podrán: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Gestionar las principales características del sistema, incluyendo:&lt;br /&gt;
&lt;br /&gt;
•	Principales datos de contacto&lt;br /&gt;
&lt;br /&gt;
•	Gestionar desvíos en telefonía corporativa&lt;br /&gt;
&lt;br /&gt;
•	Gestionar la agenda de contactos&lt;br /&gt;
&lt;br /&gt;
•	Acceder al sistema de mensajería vocal con el objeto de escuchar y administrar los mensajes de voz&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Aspecto general ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El acceso al portal se realiza tras el correspondiente proceso de validación, tal y como se muestra en la imagen siguiente:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall1.png |250px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez se ha accedido al portal, éste se compone de seis pestañas:&lt;br /&gt;
&lt;br /&gt;
•	Contactos&lt;br /&gt;
&lt;br /&gt;
•	Historial&lt;br /&gt;
&lt;br /&gt;
•	Mensaje de voz&lt;br /&gt;
&lt;br /&gt;
•	Desvíos&lt;br /&gt;
&lt;br /&gt;
•	Ajustes&lt;br /&gt;
&lt;br /&gt;
•	Información&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall2-2.png |950px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En la parte superior derecha del portal, se encuentran los siguientes botones:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall3.png |450px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Botón !! Función &lt;br /&gt;
|- &lt;br /&gt;
| [[File:webcall4.png |50px|center]] || Botón para mostrar u ocultar la ventana del teléfono.&lt;br /&gt;
|-&lt;br /&gt;
| [[File:webcall5.png |250px|center]] || Muestra si una extensión está disponible o no dependiendo del color (verde = disponible, rojo = no disponible). Cada usuario puede configurar esta funcionalidad en la pestaña Ajustes\Extensiones\Disponibilidad General [[File:webcall6.png |200px|]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:webcall7.png |50px|center]] || Este botón se muestra cuando hay configurado uno o varios desvíos. Esta funcionalidad se explica en el apartado 4.4&lt;br /&gt;
|-&lt;br /&gt;
| [[File:webcall8.png |50px|center]] || Este botón se muestra cuando hay configurado un desvío incondicional por calendario. Esta funcionalidad se explica en el apartado 4.4 &lt;br /&gt;
|-&lt;br /&gt;
| [[File:webcall9.png |50px|center]] || Botón para salir del portal.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Pestañas en el portal de VIVAit Call ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pestaña Contactos ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La pestaña de contactos muestra al usuario los datos de los contactos añadidos en su agenda. Los datos que se muestran de cada contacto son: Nombre, Apellido, Empresa, Tipo agenda y Teléfono.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:WEBCALL1.png |800px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para añadir un nuevo contacto, hay que seleccionar el botón de la parte superior derecha &amp;quot;Añadir nuevo contacto&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Al darle a &amp;quot;añadir un nuevo contacto&amp;quot;, nos aparecerá una ventana con las siguientes opciones: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall13.png |800px|center]]&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;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre'''&lt;br /&gt;
|  | Nombre del usuario ('''Obligatorio''').&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Apellido 1'''&lt;br /&gt;
|  | Primer apellido del usuario.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Apellido 2'''&lt;br /&gt;
|  | Segundo apellido del usuario. &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre en pantalla'''&lt;br /&gt;
| | Nombre del usuario en pantalla. ('''Obligatorio''')&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Empresa'''&lt;br /&gt;
|  | Nombre de la empresa.&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;
| font-weight: bold;&amp;quot; | '''Código postal'''&lt;br /&gt;
|  | Código postal del usuario.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Localidad'''&lt;br /&gt;
|  | Localidad del usuario .&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Localidad'''&lt;br /&gt;
|  | Provincia del usuario .&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Número de teléfono'''&lt;br /&gt;
|  | Número de teléfono del usuario . ('''Obligatorio''')&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Tipo'''&lt;br /&gt;
|  | Fijo / Móvil&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Pestaña Historial===&lt;br /&gt;
&lt;br /&gt;
La pestaña de Historial muestra al usuario el listado de las llamadas realizadas y recibidas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall22.png |800px|center]]&lt;br /&gt;
&lt;br /&gt;
=== Pestaña Mensaje de voz===&lt;br /&gt;
&lt;br /&gt;
La pestaña de mensajes de voz muestra los mensajes que han llegado a nuestro buzón de voz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:web-call5.png|800px|center]]&lt;br /&gt;
&lt;br /&gt;
=== Pestaña Desvíos ===&lt;br /&gt;
&lt;br /&gt;
La pestaña Desvíos permite al usuario visualizar información de relevancia como usuario de telefonía corporativa, y realizar desvíos de usuario (no a nivel de extensión) en diferentes casuísticas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall16.png |800px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En esta pestaña podremos configurar cinco tipos de desvío: &lt;br /&gt;
&lt;br /&gt;
•	Desvío incondicional: Todas las llamadas se desvían.&lt;br /&gt;
&lt;br /&gt;
•	Desvío por calendario: Desvío de la llamada cuando se configura una fecha en el calendario.&lt;br /&gt;
&lt;br /&gt;
•	Desvío por no conectado: Desvío en caso de que se dirija una llamada al número de un usuario que no está registrado en el teléfono.&lt;br /&gt;
&lt;br /&gt;
•	Desvío por ocupado: Desvío cuando el usuario está ocupado (comunicando).&lt;br /&gt;
&lt;br /&gt;
•	Desvío por no contestado: Desvío de la llamada cuando el usuario no contesta.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Las opciones de la pestaña Desvíos se explican en la siguiente tabla:&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;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #0099ff;border-bottom:0.05pt solid #0099ff;border-left:0.05pt solid #0099ff;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''INCONDICIONAL'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío incondicional a mensajería'''&lt;br /&gt;
|| Desvía todas las llamadas que recibe el usuario 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 al que se desvía la llamada. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío incondicional por calendario'''&lt;br /&gt;
|| Permite al usuario gestionar su desvío por calendario&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por calendario'''&lt;br /&gt;
|| Pestaña para seleccionar fechas para el desvío&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #0099ff;border-bottom:0.05pt solid #0099ff;border-left:0.05pt solid #0099ff;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''NO CONECTADO'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por no conectado a mensajería'''&lt;br /&gt;
|| Desvía la llamada al buzón de voz cuando el usuario no está registrado en el teléfono. &lt;br /&gt;
|| Si / No. &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por no conectado'''&lt;br /&gt;
|| Número al que se desvía la llamada cuando el usuario no está registrado en el teléfono. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #0099ff;border-bottom:0.05pt solid #0099ff;border-left:0.05pt solid #0099ff;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''OCUPADO'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por ocupado a mensajería'''&lt;br /&gt;
|| Desvía la llamada al buzón de voz cuando el usuario está 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 al que se desvía la llamada cuando el usuario está ocupado. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #0099ff;border-bottom:0.05pt solid #0099ff;border-left:0.05pt solid #0099ff;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''NO CONTESTADO'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por no contestación a mensajería'''&lt;br /&gt;
|| Desvía la llamada al buzón de voz cuando el usuario no contesta.&lt;br /&gt;
|| Si / No. &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por no contestación'''&lt;br /&gt;
|| Número al que se desvía la llamada cuando el usuario no contesta. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Pestaña Ajustes ===&lt;br /&gt;
&lt;br /&gt;
El área de ajustes del portal nos da acceso a tres pestañas de gestión.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La pestaña de '''Ajustes/Dispositivos''' se muestra en la siguiente imagen: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall17.png |900px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En esta pestaña se configura el dispositivo de entrada y salida de audio, también sirve para establecer un tono de timbre.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La pestaña de '''Ajustes/Usuario''' se muestra en la siguiente imagen:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:WEBCALL2.png |900px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En esta pantalla los campos que se muestran sombreados no serán editables.&lt;br /&gt;
&lt;br /&gt;
Algunos campos son solo informativos por lo que siempre aparecerán sombreados, en otras ocasiones el usuario no dispondrá de permisos para editar los campos, pero los campos siempre aparecerán. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Las opciones de la pestaña de usuario se explican en la siguiente tabla:&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;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre'''&lt;br /&gt;
|  | Nombre del usuario ('''Obligatorio''').&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Apellido 1'''&lt;br /&gt;
|  | Primer apellido del usuario.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Apellido 2'''&lt;br /&gt;
|  | Segundo apellido del usuario. &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;
| font-weight: bold;&amp;quot; | '''Localidad'''&lt;br /&gt;
|  | Código postal del usuario.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Código Postal'''&lt;br /&gt;
| | Localidad del usuario .&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;
| font-weight: bold;&amp;quot; | '''Mensaje de texto'''&lt;br /&gt;
|  | Mensaje de texto a mostrar.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Idioma'''&lt;br /&gt;
| | Idioma del usuario.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Fecha de expiración'''&lt;br /&gt;
|   | Nombre de la cuenta del usuario. (solo lectura)&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Fecha último cambio de clave'''&lt;br /&gt;
|  |Clave de la cuenta (obligatorio). &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La pestaña '''Ajustes/extensiones''' muestra al usuario final las extensiones del sistema que tiene asignadas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:WEBCALL3.png |1000px|center]]&lt;/div&gt;</summary>
		<author><name>Alfredo.rodriguez</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1&amp;diff=16997</id>
		<title>Documentación de usuario VIVAit Call 5.1</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1&amp;diff=16997"/>
		<updated>2026-03-18T10:33:58Z</updated>

		<summary type="html">&lt;p&gt;Alfredo.rodriguez: /* Terminales telefónicos */&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;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;big&amp;gt;&lt;br /&gt;
Versiones anteriores de [[Usuario Vivait Call versiones| Usuario Vivait Call]]&lt;br /&gt;
&lt;br /&gt;
[[Guía_rápida_Web_Call_V.2.3.0 | Guía rápida Web Call]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Los usuarios del sistema '''''VIVA'''''it Call disponen de una serie de herramientas de gestión que permiten manejar y configurar las principales características del sistema a nivel de usuario final:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
* Terminal telefónico, con diferentes características en función de la marca y modelo que el usuario disponga.&lt;br /&gt;
* Facilidades del sistema, accesibles desde cualquier terminal telefónico mediante la pulsación de combinaciones del teclado.&lt;br /&gt;
* Portal de usuario, para poder acceder a facilidades del sistema y otros servicios de manera más sencilla e intuitiva.&lt;br /&gt;
* Aplicación '''''VIVA'''''it Tracker, que permite realizar el seguimiento, escucha y descarga de grabaciones de llamadas para usuarios con permiso de acceso.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[#Introducción | Volver arriba]] / [https://vivait-wiki.mdnova.local/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1 Volver al indice]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1 | Volver al indice]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Terminales telefónicos ==&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''''VIVA'''''it Call está preparado para poder soportar gran cantidad de terminales telefónicos, de diversas marcas y modelos; se adjuntan manuales de usuario de los más habituales&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{:Terminales}}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Marca !! Modelo !! Manual de uso &lt;br /&gt;
|- &lt;br /&gt;
| Grandstream || 1160 y 1165 ||[[medio:Guia rapida Grandstream 1160_1165.pdf|Guía rápida Grandstream 1160 y 1165]]&lt;br /&gt;
|- &lt;br /&gt;
| Grandstream || 1400 y 1405 ||[[medio:Guia rapida Grandstream 1400_1405.pdf|Guía rápida Grandstream 1400 y 405]]&lt;br /&gt;
|- &lt;br /&gt;
| Grandstream || GXP2130 ,GXP2140, GXP2160, GXP2135 y GXP2170||[[medio:Guia rapida Grandstream GXP2130_GXP2140_GXP2160.pdf|Guía rápida Grandstream GXP2130 ,GXP2140, GXP2160, GXP2135 y GXP2170]]&lt;br /&gt;
|- &lt;br /&gt;
| Grandstream || DP715 y DP710 ||[[medio:Guia rapida Grandstream DP715_DP710.pdf|Guía rápida Grandstream DP715 y DP710]]&lt;br /&gt;
|- &lt;br /&gt;
| Huawei || 7910 ||[[medio:Guia rapida Huawei 7910.pdf|Guía rápida Huawei 7910]] (En Inglés)&lt;br /&gt;
|- &lt;br /&gt;
| Huawei || 7950 || [[medio:Guia rapida Huawei 7950.pdf|Guía rápida Huawei 7950]] (En Inglés)&lt;br /&gt;
|- &lt;br /&gt;
| Mitel || 6865i ||[[medio:Guia rapida Mitel 6865i.pdf|Guía rápida Mitel 6865i]]&lt;br /&gt;
|- &lt;br /&gt;
| Mitel || 6867i ||[[medio:Guia rapida Mitel 6867i.pdf|Guía rápida Mitel 6867i]]&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| Aastra (Mitel)|| 6730i y 6731i  || [[medio: 6730i_6731i_qrg_symbol_keypad_English_270710.pdf | Guía rápida Aastra Mitel 6730i y 6731i]] (En Inglés)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| Aastra (Mitel)|| 6753i || [[medio:6753i_qrg_symbol_keypad_English_270710.pdf | Guía rápida Aastra Mitel 6753i ]] (En Inglés)&lt;br /&gt;
|- &lt;br /&gt;
| Snom || 710 ||[[medio:Guia rapida Snom 710.pdf|Guía rápida Snom 710]]&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T20P ||[[medio:Guia rapida Yealink T20p.pdf|Guía rápida Yealink T20P]]&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T21P ||[[medio:Guia rapida Yealink T21p.pdf|Guía rápida Yealink T21P]]&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T23G y T23P ||[[medio:Guia rapida Yealink T23P_T23G.pdf|Guía rápida Yealink T23G y T23P]] (En Inglés)&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T26P ||[[medio:Guia rapida Yealink T26p.pdf|Guía rápida Yealink T26P]]&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T27P ||[[medio:Guia rapida Yealink T27P.pdf|Guía rápida Yealink T27P]](En Inglés)&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T28P ||[[medio:Guia rapida Yealink T28p.pdf|Guía rápida Yealink T28P]]&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || VP530 ||[[medio:Guia rapida Yealink VP530.pdf|Guía rápida Yealink VP530]]&lt;br /&gt;
|- &lt;br /&gt;
| Cisco Unified || SIP 3905 ||[[medio:Guia rapida Cisco SIP 3905.pdf|Guía rápida Cisco SIP 3905]]&lt;br /&gt;
|- &lt;br /&gt;
| Cisco Unified || IP 6921 ||[[medio:Guia rapida Cisco IP 6921.pdf.pdf|Guía rápida Cisco IP 6921]]&lt;br /&gt;
|- &lt;br /&gt;
| Cisco Unified || IP 7960G y 7940g||[[medio:7940g_y_7960g REFER RAPIDA.pdf|Guía rápida Cisco IP 7960G y 7940g]]&lt;br /&gt;
|- &lt;br /&gt;
| Cisco Unified || IP 7962G y 7942g||[[medio:cisco_ipphone_7942g.pdf |Guía rápida Cisco IP 7962G y 7942g]]&lt;br /&gt;
|- &lt;br /&gt;
| Zoiper || Business Windows || [[medio:User Guide Zoiper 5 v.1.0.7.pdf| Manual de usuario de Zoiper 5]]&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[#Terminales_telefónicos | Volver arriba]] / [https://vivait-wiki.mdnova.local/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1 Volver al indice]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Facilidades del sistema ==&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Una de las maneras que tiene un usuario para poder realizar operaciones básicas sobre su extensión es mediante el uso de combinaciones de teclas, que le dan acceso a la activación o desactivación de diferentes facilidades en el sistema; la tabla adjunta muestra las facilidades disponibles por defecto.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
! '''Código a marcar '''!! Funcionalidad !! Modo de uso &lt;br /&gt;
|-&lt;br /&gt;
|*21#||Desvío extensión incondicional a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*21*numero||Desvío extensión incondicional||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*211#||Desvío extensión por no contesta a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*211*numero||Desvío extensión por no contesta||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*212#||Desvío extensión por ocupado a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*212*numero||Desvío extensión por ocupado||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*213#||Desvío extensión por fuera de servicio a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*213*numero||Desvío extensión por fuera de servicio||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
&amp;lt;!--|-&lt;br /&gt;
|*223*numero||Desvío usuario por no login||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación--&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|*31#||Desvío usuario incondicional mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*31*numero||Desvío usuario incondicional||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*311#||Desvío usuario por no contesta mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*311*numero||Desvío usuario por no contesta||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*312#||Desvío usuario por ocupado a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*312*numero||Desvío usuario por ocupado||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*313#||Desvío usuario por no login a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*313*numero||Desvío usuario por no login||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*32#||Desvio usuario por calendario. ||Activación: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*33#||Desvio extensión por calendario.||Activación: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*401#||Login movilidad avanzada||Activación: Pulsar código + destino + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*402#||Logout movilidad avanzada||Activación: Pulsar código + destino + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*41*||Capturar extensión||Activación: Pulsar código + destino + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*8||Capturar llamada de grupo de captura||Activación: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*42#||Leer buzón|| Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*43#||Activar retrollamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*44#||Cancelar retrollamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*45#||Login movilidad||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*46#||Logout movilidad||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*47#||Login en grupos corporativos||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*48#||Logout en grupos corporativos||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*491#||Pausa en grupos corporativos||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*492#||Quitar pausa en grupos corporativos||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*50#||Movilidad||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*54#||Intrusión a extensión||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*55#||Intrusión a VDN o Grupo||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*500#||Eco||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*501#|| Tono de prueba||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*60#||Movilidad llamada a llamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*61#||Categoría usuario en llamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*65#||Categoría temporal de teléfono||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*66#||Fin Categoría temporal de teléfono||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*72#||Movilidad llamada a llamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|70106 ||Cancelar retrollamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[#Facilidades_del_sistema | Volver arriba]] / [https://vivait-wiki.mdnova.local/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1 Volver al indice]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Retrollamadas ===&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
El funcionamiento será el siguiente:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*La retrollamada queda programada de extensión física &amp;quot;A&amp;quot; a extensión física &amp;quot;B&amp;quot; (no queda programada a numeraciones de usuarios); esto no quiere decir que no podamos programar una retrollamada cuando hemos llamado a una numeración de usuario, pero queda programada en la extensión física en la que está ese usuario en ese momento.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*El número llamado &amp;quot;B&amp;quot; podrá ser derivado de varias causas:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
::&amp;quot;A&amp;quot; ha llamado a &amp;quot;B&amp;quot; &lt;br /&gt;
::&amp;quot;A&amp;quot; ha llamado a un usuario ubicado en &amp;quot;B&amp;quot; &lt;br /&gt;
::&amp;quot;A&amp;quot; ha llamado a un destino desviado a &amp;quot;B&amp;quot; &lt;br /&gt;
::&amp;quot;A&amp;quot; ha llamado a un destino y por preruta acaba en &amp;quot;B&amp;quot; &lt;br /&gt;
::...&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*Las causas por las que se podrá programar una retrollamada son:&lt;br /&gt;
::&amp;quot;B&amp;quot; está ocupada&lt;br /&gt;
::&amp;quot;B&amp;quot; no contesta&lt;br /&gt;
::&amp;quot;B&amp;quot; está ocupada y no contesta (ha sonado en línea 2--&amp;gt; )&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''Solo podremos programar la retrollamada si el sistema devuelve: extensión ocupada o no contesta'''&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Estas dos últimas casuísticas son iguales a efectos de usuario, pero no a efectos internos...&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Si una llamada va a buzón, salta a un grupo ACD, a una IVR...entonces NO habrá retrollamada (porque se considera contestada)&lt;br /&gt;
 &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*Para programar una retrollamada se pulsa el código de facilidad (*43#) una vez colgada la misma; el sistema recordará la última llamada durante un período de tiempo configurable; aunque entre una llamada en &amp;quot;A&amp;quot;, este podrá programar retrollamada a la última saliente si sigue dentro del período&lt;br /&gt;
*Se podrá abortar una retrollamada ( (*44#), pero esto no borrará la última llamada (podemos arrepentirnos de haber abortado la retrollamada)&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[#Facilidades_del_sistema | Volver arriba]] / [https://vivait-wiki.mdnova.local/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1 Volver al indice]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Portal de usuario ==&lt;br /&gt;
&lt;br /&gt;
El portal de usuario VIVAit Call permite que determinadas funcionalidades del sistema puedan ser accesibles por los usuarios finales desde una interfaz mucho más cómoda y amigable que el telefónico; de esta forma, desde un portal fácilmente accesible los usuarios finales podrán: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Gestionar las principales características del sistema, incluyendo:&lt;br /&gt;
&lt;br /&gt;
•	Principales datos de contacto&lt;br /&gt;
&lt;br /&gt;
•	Gestionar desvíos en telefonía corporativa&lt;br /&gt;
&lt;br /&gt;
•	Gestionar la agenda de contactos&lt;br /&gt;
&lt;br /&gt;
•	Acceder al sistema de mensajería vocal con el objeto de escuchar y administrar los mensajes de voz&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Aspecto general ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El acceso al portal se realiza tras el correspondiente proceso de validación, tal y como se muestra en la imagen siguiente:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall1.png |250px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez se ha accedido al portal, éste se compone de seis pestañas:&lt;br /&gt;
&lt;br /&gt;
•	Contactos&lt;br /&gt;
&lt;br /&gt;
•	Historial&lt;br /&gt;
&lt;br /&gt;
•	Mensaje de voz&lt;br /&gt;
&lt;br /&gt;
•	Desvíos&lt;br /&gt;
&lt;br /&gt;
•	Ajustes&lt;br /&gt;
&lt;br /&gt;
•	Información&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall2-2.png |950px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En la parte superior derecha del portal, se encuentran los siguientes botones:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall3.png |450px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Botón !! Función &lt;br /&gt;
|- &lt;br /&gt;
| [[File:webcall4.png |50px|center]] || Botón para mostrar u ocultar la ventana del teléfono.&lt;br /&gt;
|-&lt;br /&gt;
| [[File:webcall5.png |250px|center]] || Muestra si una extensión está disponible o no dependiendo del color (verde = disponible, rojo = no disponible). Cada usuario puede configurar esta funcionalidad en la pestaña Ajustes\Extensiones\Disponibilidad General [[File:webcall6.png |200px|]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:webcall7.png |50px|center]] || Este botón se muestra cuando hay configurado uno o varios desvíos. Esta funcionalidad se explica en el apartado 4.4&lt;br /&gt;
|-&lt;br /&gt;
| [[File:webcall8.png |50px|center]] || Este botón se muestra cuando hay configurado un desvío incondicional por calendario. Esta funcionalidad se explica en el apartado 4.4 &lt;br /&gt;
|-&lt;br /&gt;
| [[File:webcall9.png |50px|center]] || Botón para salir del portal.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Pestañas en el portal de VIVAit Call ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pestaña Contactos ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La pestaña de contactos muestra al usuario los datos de los contactos añadidos en su agenda. Los datos que se muestran de cada contacto son: Nombre, Apellido, Empresa, Tipo agenda y Teléfono.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:WEBCALL1.png |800px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para añadir un nuevo contacto, hay que seleccionar el botón de la parte superior derecha &amp;quot;Añadir nuevo contacto&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Al darle a &amp;quot;añadir un nuevo contacto&amp;quot;, nos aparecerá una ventana con las siguientes opciones: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall13.png |800px|center]]&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;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre'''&lt;br /&gt;
|  | Nombre del usuario ('''Obligatorio''').&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Apellido 1'''&lt;br /&gt;
|  | Primer apellido del usuario.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Apellido 2'''&lt;br /&gt;
|  | Segundo apellido del usuario. &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre en pantalla'''&lt;br /&gt;
| | Nombre del usuario en pantalla. ('''Obligatorio''')&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Empresa'''&lt;br /&gt;
|  | Nombre de la empresa.&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;
| font-weight: bold;&amp;quot; | '''Código postal'''&lt;br /&gt;
|  | Código postal del usuario.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Localidad'''&lt;br /&gt;
|  | Localidad del usuario .&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Localidad'''&lt;br /&gt;
|  | Provincia del usuario .&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Número de teléfono'''&lt;br /&gt;
|  | Número de teléfono del usuario . ('''Obligatorio''')&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Tipo'''&lt;br /&gt;
|  | Fijo / Móvil&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Pestaña Historial===&lt;br /&gt;
&lt;br /&gt;
La pestaña de Historial muestra al usuario el listado de las llamadas realizadas y recibidas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall22.png |800px|center]]&lt;br /&gt;
&lt;br /&gt;
=== Pestaña Mensaje de voz===&lt;br /&gt;
&lt;br /&gt;
La pestaña de mensajes de voz muestra los mensajes que han llegado a nuestro buzón de voz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:web-call5.png|800px|center]]&lt;br /&gt;
&lt;br /&gt;
=== Pestaña Desvíos ===&lt;br /&gt;
&lt;br /&gt;
La pestaña Desvíos permite al usuario visualizar información de relevancia como usuario de telefonía corporativa, y realizar desvíos de usuario (no a nivel de extensión) en diferentes casuísticas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall16.png |800px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En esta pestaña podremos configurar cinco tipos de desvío: &lt;br /&gt;
&lt;br /&gt;
•	Desvío incondicional: Todas las llamadas se desvían.&lt;br /&gt;
&lt;br /&gt;
•	Desvío por calendario: Desvío de la llamada cuando se configura una fecha en el calendario.&lt;br /&gt;
&lt;br /&gt;
•	Desvío por no conectado: Desvío en caso de que se dirija una llamada al número de un usuario que no está registrado en el teléfono.&lt;br /&gt;
&lt;br /&gt;
•	Desvío por ocupado: Desvío cuando el usuario está ocupado (comunicando).&lt;br /&gt;
&lt;br /&gt;
•	Desvío por no contestado: Desvío de la llamada cuando el usuario no contesta.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Las opciones de la pestaña Desvíos se explican en la siguiente tabla:&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;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #0099ff;border-bottom:0.05pt solid #0099ff;border-left:0.05pt solid #0099ff;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''INCONDICIONAL'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío incondicional a mensajería'''&lt;br /&gt;
|| Desvía todas las llamadas que recibe el usuario 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 al que se desvía la llamada. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío incondicional por calendario'''&lt;br /&gt;
|| Permite al usuario gestionar su desvío por calendario&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por calendario'''&lt;br /&gt;
|| Pestaña para seleccionar fechas para el desvío&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #0099ff;border-bottom:0.05pt solid #0099ff;border-left:0.05pt solid #0099ff;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''NO CONECTADO'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por no conectado a mensajería'''&lt;br /&gt;
|| Desvía la llamada al buzón de voz cuando el usuario no está registrado en el teléfono. &lt;br /&gt;
|| Si / No. &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por no conectado'''&lt;br /&gt;
|| Número al que se desvía la llamada cuando el usuario no está registrado en el teléfono. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #0099ff;border-bottom:0.05pt solid #0099ff;border-left:0.05pt solid #0099ff;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''OCUPADO'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por ocupado a mensajería'''&lt;br /&gt;
|| Desvía la llamada al buzón de voz cuando el usuario está 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 al que se desvía la llamada cuando el usuario está ocupado. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #0099ff;border-bottom:0.05pt solid #0099ff;border-left:0.05pt solid #0099ff;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''NO CONTESTADO'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por no contestación a mensajería'''&lt;br /&gt;
|| Desvía la llamada al buzón de voz cuando el usuario no contesta.&lt;br /&gt;
|| Si / No. &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por no contestación'''&lt;br /&gt;
|| Número al que se desvía la llamada cuando el usuario no contesta. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Pestaña Ajustes ===&lt;br /&gt;
&lt;br /&gt;
El área de ajustes del portal nos da acceso a tres pestañas de gestión.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La pestaña de '''Ajustes/Dispositivos''' se muestra en la siguiente imagen: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall17.png |900px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En esta pestaña se configura el dispositivo de entrada y salida de audio, también sirve para establecer un tono de timbre.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La pestaña de '''Ajustes/Usuario''' se muestra en la siguiente imagen:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:WEBCALL2.png |900px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En esta pantalla los campos que se muestran sombreados no serán editables.&lt;br /&gt;
&lt;br /&gt;
Algunos campos son solo informativos por lo que siempre aparecerán sombreados, en otras ocasiones el usuario no dispondrá de permisos para editar los campos, pero los campos siempre aparecerán. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Las opciones de la pestaña de usuario se explican en la siguiente tabla:&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;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre'''&lt;br /&gt;
|  | Nombre del usuario ('''Obligatorio''').&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Apellido 1'''&lt;br /&gt;
|  | Primer apellido del usuario.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Apellido 2'''&lt;br /&gt;
|  | Segundo apellido del usuario. &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;
| font-weight: bold;&amp;quot; | '''Localidad'''&lt;br /&gt;
|  | Código postal del usuario.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Código Postal'''&lt;br /&gt;
| | Localidad del usuario .&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;
| font-weight: bold;&amp;quot; | '''Mensaje de texto'''&lt;br /&gt;
|  | Mensaje de texto a mostrar.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Idioma'''&lt;br /&gt;
| | Idioma del usuario.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Fecha de expiración'''&lt;br /&gt;
|   | Nombre de la cuenta del usuario. (solo lectura)&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Fecha último cambio de clave'''&lt;br /&gt;
|  |Clave de la cuenta (obligatorio). &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La pestaña '''Ajustes/extensiones''' muestra al usuario final las extensiones del sistema que tiene asignadas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:WEBCALL3.png |1000px|center]]&lt;/div&gt;</summary>
		<author><name>Alfredo.rodriguez</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1&amp;diff=16996</id>
		<title>Documentación de usuario VIVAit Call 5.1</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1&amp;diff=16996"/>
		<updated>2026-03-18T10:30:40Z</updated>

		<summary type="html">&lt;p&gt;Alfredo.rodriguez: /* Introducción */&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;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;big&amp;gt;&lt;br /&gt;
Versiones anteriores de [[Usuario Vivait Call versiones| Usuario Vivait Call]]&lt;br /&gt;
&lt;br /&gt;
[[Guía_rápida_Web_Call_V.2.3.0 | Guía rápida Web Call]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Los usuarios del sistema '''''VIVA'''''it Call disponen de una serie de herramientas de gestión que permiten manejar y configurar las principales características del sistema a nivel de usuario final:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
* Terminal telefónico, con diferentes características en función de la marca y modelo que el usuario disponga.&lt;br /&gt;
* Facilidades del sistema, accesibles desde cualquier terminal telefónico mediante la pulsación de combinaciones del teclado.&lt;br /&gt;
* Portal de usuario, para poder acceder a facilidades del sistema y otros servicios de manera más sencilla e intuitiva.&lt;br /&gt;
* Aplicación '''''VIVA'''''it Tracker, que permite realizar el seguimiento, escucha y descarga de grabaciones de llamadas para usuarios con permiso de acceso.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[#Introducción | Volver arriba]] / [https://vivait-wiki.mdnova.local/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1 Volver al indice]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1 | Volver al indice]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Terminales telefónicos ==&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''''VIVA'''''it Call está preparado para poder soportar gran cantidad de terminales telefónicos, de diversas marcas y modelos; se adjuntan manuales de usuario de los más habituales&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Marca !! Modelo !! Manual de uso &lt;br /&gt;
|- &lt;br /&gt;
| Grandstream || 1160 y 1165 ||[[medio:Guia rapida Grandstream 1160_1165.pdf|Guía rápida Grandstream 1160 y 1165]]&lt;br /&gt;
|- &lt;br /&gt;
| Grandstream || 1400 y 1405 ||[[medio:Guia rapida Grandstream 1400_1405.pdf|Guía rápida Grandstream 1400 y 405]]&lt;br /&gt;
|- &lt;br /&gt;
| Grandstream || GXP2130 ,GXP2140, GXP2160, GXP2135 y GXP2170||[[medio:Guia rapida Grandstream GXP2130_GXP2140_GXP2160.pdf|Guía rápida Grandstream GXP2130 ,GXP2140, GXP2160, GXP2135 y GXP2170]]&lt;br /&gt;
|- &lt;br /&gt;
| Grandstream || DP715 y DP710 ||[[medio:Guia rapida Grandstream DP715_DP710.pdf|Guía rápida Grandstream DP715 y DP710]]&lt;br /&gt;
|- &lt;br /&gt;
| Huawei || 7910 ||[[medio:Guia rapida Huawei 7910.pdf|Guía rápida Huawei 7910]] (En Inglés)&lt;br /&gt;
|- &lt;br /&gt;
| Huawei || 7950 || [[medio:Guia rapida Huawei 7950.pdf|Guía rápida Huawei 7950]] (En Inglés)&lt;br /&gt;
|- &lt;br /&gt;
| Mitel || 6865i ||[[medio:Guia rapida Mitel 6865i.pdf|Guía rápida Mitel 6865i]]&lt;br /&gt;
|- &lt;br /&gt;
| Mitel || 6867i ||[[medio:Guia rapida Mitel 6867i.pdf|Guía rápida Mitel 6867i]]&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| Aastra (Mitel)|| 6730i y 6731i  || [[medio: 6730i_6731i_qrg_symbol_keypad_English_270710.pdf | Guía rápida Aastra Mitel 6730i y 6731i]] (En Inglés)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| Aastra (Mitel)|| 6753i || [[medio:6753i_qrg_symbol_keypad_English_270710.pdf | Guía rápida Aastra Mitel 6753i ]] (En Inglés)&lt;br /&gt;
|- &lt;br /&gt;
| Snom || 710 ||[[medio:Guia rapida Snom 710.pdf|Guía rápida Snom 710]]&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T20P ||[[medio:Guia rapida Yealink T20p.pdf|Guía rápida Yealink T20P]]&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T21P ||[[medio:Guia rapida Yealink T21p.pdf|Guía rápida Yealink T21P]]&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T23G y T23P ||[[medio:Guia rapida Yealink T23P_T23G.pdf|Guía rápida Yealink T23G y T23P]] (En Inglés)&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T26P ||[[medio:Guia rapida Yealink T26p.pdf|Guía rápida Yealink T26P]]&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T27P ||[[medio:Guia rapida Yealink T27P.pdf|Guía rápida Yealink T27P]](En Inglés)&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T28P ||[[medio:Guia rapida Yealink T28p.pdf|Guía rápida Yealink T28P]]&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || VP530 ||[[medio:Guia rapida Yealink VP530.pdf|Guía rápida Yealink VP530]]&lt;br /&gt;
|- &lt;br /&gt;
| Cisco Unified || SIP 3905 ||[[medio:Guia rapida Cisco SIP 3905.pdf|Guía rápida Cisco SIP 3905]]&lt;br /&gt;
|- &lt;br /&gt;
| Cisco Unified || IP 6921 ||[[medio:Guia rapida Cisco IP 6921.pdf.pdf|Guía rápida Cisco IP 6921]]&lt;br /&gt;
|- &lt;br /&gt;
| Cisco Unified || IP 7960G y 7940g||[[medio:7940g_y_7960g REFER RAPIDA.pdf|Guía rápida Cisco IP 7960G y 7940g]]&lt;br /&gt;
|- &lt;br /&gt;
| Cisco Unified || IP 7962G y 7942g||[[medio:cisco_ipphone_7942g.pdf |Guía rápida Cisco IP 7962G y 7942g]]&lt;br /&gt;
|- &lt;br /&gt;
| Zoiper || Business Windows || [[medio:User Guide Zoiper 5 v.1.0.7.pdf| Manual de usuario de Zoiper 5]]&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[#Terminales_telefónicos | Volver arriba]] / [https://vivait-wiki.mdnova.local/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1 Volver al indice]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Facilidades del sistema ==&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Una de las maneras que tiene un usuario para poder realizar operaciones básicas sobre su extensión es mediante el uso de combinaciones de teclas, que le dan acceso a la activación o desactivación de diferentes facilidades en el sistema; la tabla adjunta muestra las facilidades disponibles por defecto.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
! '''Código a marcar '''!! Funcionalidad !! Modo de uso &lt;br /&gt;
|-&lt;br /&gt;
|*21#||Desvío extensión incondicional a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*21*numero||Desvío extensión incondicional||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*211#||Desvío extensión por no contesta a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*211*numero||Desvío extensión por no contesta||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*212#||Desvío extensión por ocupado a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*212*numero||Desvío extensión por ocupado||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*213#||Desvío extensión por fuera de servicio a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*213*numero||Desvío extensión por fuera de servicio||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
&amp;lt;!--|-&lt;br /&gt;
|*223*numero||Desvío usuario por no login||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación--&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|*31#||Desvío usuario incondicional mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*31*numero||Desvío usuario incondicional||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*311#||Desvío usuario por no contesta mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*311*numero||Desvío usuario por no contesta||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*312#||Desvío usuario por ocupado a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*312*numero||Desvío usuario por ocupado||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*313#||Desvío usuario por no login a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*313*numero||Desvío usuario por no login||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*32#||Desvio usuario por calendario. ||Activación: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*33#||Desvio extensión por calendario.||Activación: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*401#||Login movilidad avanzada||Activación: Pulsar código + destino + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*402#||Logout movilidad avanzada||Activación: Pulsar código + destino + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*41*||Capturar extensión||Activación: Pulsar código + destino + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*8||Capturar llamada de grupo de captura||Activación: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*42#||Leer buzón|| Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*43#||Activar retrollamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*44#||Cancelar retrollamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*45#||Login movilidad||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*46#||Logout movilidad||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*47#||Login en grupos corporativos||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*48#||Logout en grupos corporativos||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*491#||Pausa en grupos corporativos||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*492#||Quitar pausa en grupos corporativos||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*50#||Movilidad||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*54#||Intrusión a extensión||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*55#||Intrusión a VDN o Grupo||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*500#||Eco||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*501#|| Tono de prueba||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*60#||Movilidad llamada a llamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*61#||Categoría usuario en llamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*65#||Categoría temporal de teléfono||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*66#||Fin Categoría temporal de teléfono||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*72#||Movilidad llamada a llamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|70106 ||Cancelar retrollamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[#Facilidades_del_sistema | Volver arriba]] / [https://vivait-wiki.mdnova.local/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1 Volver al indice]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Retrollamadas ===&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
El funcionamiento será el siguiente:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*La retrollamada queda programada de extensión física &amp;quot;A&amp;quot; a extensión física &amp;quot;B&amp;quot; (no queda programada a numeraciones de usuarios); esto no quiere decir que no podamos programar una retrollamada cuando hemos llamado a una numeración de usuario, pero queda programada en la extensión física en la que está ese usuario en ese momento.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*El número llamado &amp;quot;B&amp;quot; podrá ser derivado de varias causas:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
::&amp;quot;A&amp;quot; ha llamado a &amp;quot;B&amp;quot; &lt;br /&gt;
::&amp;quot;A&amp;quot; ha llamado a un usuario ubicado en &amp;quot;B&amp;quot; &lt;br /&gt;
::&amp;quot;A&amp;quot; ha llamado a un destino desviado a &amp;quot;B&amp;quot; &lt;br /&gt;
::&amp;quot;A&amp;quot; ha llamado a un destino y por preruta acaba en &amp;quot;B&amp;quot; &lt;br /&gt;
::...&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*Las causas por las que se podrá programar una retrollamada son:&lt;br /&gt;
::&amp;quot;B&amp;quot; está ocupada&lt;br /&gt;
::&amp;quot;B&amp;quot; no contesta&lt;br /&gt;
::&amp;quot;B&amp;quot; está ocupada y no contesta (ha sonado en línea 2--&amp;gt; )&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''Solo podremos programar la retrollamada si el sistema devuelve: extensión ocupada o no contesta'''&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Estas dos últimas casuísticas son iguales a efectos de usuario, pero no a efectos internos...&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Si una llamada va a buzón, salta a un grupo ACD, a una IVR...entonces NO habrá retrollamada (porque se considera contestada)&lt;br /&gt;
 &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*Para programar una retrollamada se pulsa el código de facilidad (*43#) una vez colgada la misma; el sistema recordará la última llamada durante un período de tiempo configurable; aunque entre una llamada en &amp;quot;A&amp;quot;, este podrá programar retrollamada a la última saliente si sigue dentro del período&lt;br /&gt;
*Se podrá abortar una retrollamada ( (*44#), pero esto no borrará la última llamada (podemos arrepentirnos de haber abortado la retrollamada)&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[#Facilidades_del_sistema | Volver arriba]] / [https://vivait-wiki.mdnova.local/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1 Volver al indice]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Portal de usuario ==&lt;br /&gt;
&lt;br /&gt;
El portal de usuario VIVAit Call permite que determinadas funcionalidades del sistema puedan ser accesibles por los usuarios finales desde una interfaz mucho más cómoda y amigable que el telefónico; de esta forma, desde un portal fácilmente accesible los usuarios finales podrán: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Gestionar las principales características del sistema, incluyendo:&lt;br /&gt;
&lt;br /&gt;
•	Principales datos de contacto&lt;br /&gt;
&lt;br /&gt;
•	Gestionar desvíos en telefonía corporativa&lt;br /&gt;
&lt;br /&gt;
•	Gestionar la agenda de contactos&lt;br /&gt;
&lt;br /&gt;
•	Acceder al sistema de mensajería vocal con el objeto de escuchar y administrar los mensajes de voz&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Aspecto general ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El acceso al portal se realiza tras el correspondiente proceso de validación, tal y como se muestra en la imagen siguiente:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall1.png |250px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez se ha accedido al portal, éste se compone de seis pestañas:&lt;br /&gt;
&lt;br /&gt;
•	Contactos&lt;br /&gt;
&lt;br /&gt;
•	Historial&lt;br /&gt;
&lt;br /&gt;
•	Mensaje de voz&lt;br /&gt;
&lt;br /&gt;
•	Desvíos&lt;br /&gt;
&lt;br /&gt;
•	Ajustes&lt;br /&gt;
&lt;br /&gt;
•	Información&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall2-2.png |950px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En la parte superior derecha del portal, se encuentran los siguientes botones:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall3.png |450px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Botón !! Función &lt;br /&gt;
|- &lt;br /&gt;
| [[File:webcall4.png |50px|center]] || Botón para mostrar u ocultar la ventana del teléfono.&lt;br /&gt;
|-&lt;br /&gt;
| [[File:webcall5.png |250px|center]] || Muestra si una extensión está disponible o no dependiendo del color (verde = disponible, rojo = no disponible). Cada usuario puede configurar esta funcionalidad en la pestaña Ajustes\Extensiones\Disponibilidad General [[File:webcall6.png |200px|]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:webcall7.png |50px|center]] || Este botón se muestra cuando hay configurado uno o varios desvíos. Esta funcionalidad se explica en el apartado 4.4&lt;br /&gt;
|-&lt;br /&gt;
| [[File:webcall8.png |50px|center]] || Este botón se muestra cuando hay configurado un desvío incondicional por calendario. Esta funcionalidad se explica en el apartado 4.4 &lt;br /&gt;
|-&lt;br /&gt;
| [[File:webcall9.png |50px|center]] || Botón para salir del portal.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Pestañas en el portal de VIVAit Call ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pestaña Contactos ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La pestaña de contactos muestra al usuario los datos de los contactos añadidos en su agenda. Los datos que se muestran de cada contacto son: Nombre, Apellido, Empresa, Tipo agenda y Teléfono.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:WEBCALL1.png |800px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para añadir un nuevo contacto, hay que seleccionar el botón de la parte superior derecha &amp;quot;Añadir nuevo contacto&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Al darle a &amp;quot;añadir un nuevo contacto&amp;quot;, nos aparecerá una ventana con las siguientes opciones: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall13.png |800px|center]]&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;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre'''&lt;br /&gt;
|  | Nombre del usuario ('''Obligatorio''').&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Apellido 1'''&lt;br /&gt;
|  | Primer apellido del usuario.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Apellido 2'''&lt;br /&gt;
|  | Segundo apellido del usuario. &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre en pantalla'''&lt;br /&gt;
| | Nombre del usuario en pantalla. ('''Obligatorio''')&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Empresa'''&lt;br /&gt;
|  | Nombre de la empresa.&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;
| font-weight: bold;&amp;quot; | '''Código postal'''&lt;br /&gt;
|  | Código postal del usuario.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Localidad'''&lt;br /&gt;
|  | Localidad del usuario .&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Localidad'''&lt;br /&gt;
|  | Provincia del usuario .&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Número de teléfono'''&lt;br /&gt;
|  | Número de teléfono del usuario . ('''Obligatorio''')&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Tipo'''&lt;br /&gt;
|  | Fijo / Móvil&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Pestaña Historial===&lt;br /&gt;
&lt;br /&gt;
La pestaña de Historial muestra al usuario el listado de las llamadas realizadas y recibidas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall22.png |800px|center]]&lt;br /&gt;
&lt;br /&gt;
=== Pestaña Mensaje de voz===&lt;br /&gt;
&lt;br /&gt;
La pestaña de mensajes de voz muestra los mensajes que han llegado a nuestro buzón de voz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:web-call5.png|800px|center]]&lt;br /&gt;
&lt;br /&gt;
=== Pestaña Desvíos ===&lt;br /&gt;
&lt;br /&gt;
La pestaña Desvíos permite al usuario visualizar información de relevancia como usuario de telefonía corporativa, y realizar desvíos de usuario (no a nivel de extensión) en diferentes casuísticas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall16.png |800px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En esta pestaña podremos configurar cinco tipos de desvío: &lt;br /&gt;
&lt;br /&gt;
•	Desvío incondicional: Todas las llamadas se desvían.&lt;br /&gt;
&lt;br /&gt;
•	Desvío por calendario: Desvío de la llamada cuando se configura una fecha en el calendario.&lt;br /&gt;
&lt;br /&gt;
•	Desvío por no conectado: Desvío en caso de que se dirija una llamada al número de un usuario que no está registrado en el teléfono.&lt;br /&gt;
&lt;br /&gt;
•	Desvío por ocupado: Desvío cuando el usuario está ocupado (comunicando).&lt;br /&gt;
&lt;br /&gt;
•	Desvío por no contestado: Desvío de la llamada cuando el usuario no contesta.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Las opciones de la pestaña Desvíos se explican en la siguiente tabla:&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;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #0099ff;border-bottom:0.05pt solid #0099ff;border-left:0.05pt solid #0099ff;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''INCONDICIONAL'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío incondicional a mensajería'''&lt;br /&gt;
|| Desvía todas las llamadas que recibe el usuario 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 al que se desvía la llamada. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío incondicional por calendario'''&lt;br /&gt;
|| Permite al usuario gestionar su desvío por calendario&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por calendario'''&lt;br /&gt;
|| Pestaña para seleccionar fechas para el desvío&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #0099ff;border-bottom:0.05pt solid #0099ff;border-left:0.05pt solid #0099ff;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''NO CONECTADO'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por no conectado a mensajería'''&lt;br /&gt;
|| Desvía la llamada al buzón de voz cuando el usuario no está registrado en el teléfono. &lt;br /&gt;
|| Si / No. &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por no conectado'''&lt;br /&gt;
|| Número al que se desvía la llamada cuando el usuario no está registrado en el teléfono. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #0099ff;border-bottom:0.05pt solid #0099ff;border-left:0.05pt solid #0099ff;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''OCUPADO'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por ocupado a mensajería'''&lt;br /&gt;
|| Desvía la llamada al buzón de voz cuando el usuario está 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 al que se desvía la llamada cuando el usuario está ocupado. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #0099ff;border-bottom:0.05pt solid #0099ff;border-left:0.05pt solid #0099ff;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''NO CONTESTADO'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por no contestación a mensajería'''&lt;br /&gt;
|| Desvía la llamada al buzón de voz cuando el usuario no contesta.&lt;br /&gt;
|| Si / No. &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por no contestación'''&lt;br /&gt;
|| Número al que se desvía la llamada cuando el usuario no contesta. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Pestaña Ajustes ===&lt;br /&gt;
&lt;br /&gt;
El área de ajustes del portal nos da acceso a tres pestañas de gestión.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La pestaña de '''Ajustes/Dispositivos''' se muestra en la siguiente imagen: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall17.png |900px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En esta pestaña se configura el dispositivo de entrada y salida de audio, también sirve para establecer un tono de timbre.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La pestaña de '''Ajustes/Usuario''' se muestra en la siguiente imagen:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:WEBCALL2.png |900px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En esta pantalla los campos que se muestran sombreados no serán editables.&lt;br /&gt;
&lt;br /&gt;
Algunos campos son solo informativos por lo que siempre aparecerán sombreados, en otras ocasiones el usuario no dispondrá de permisos para editar los campos, pero los campos siempre aparecerán. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Las opciones de la pestaña de usuario se explican en la siguiente tabla:&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;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre'''&lt;br /&gt;
|  | Nombre del usuario ('''Obligatorio''').&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Apellido 1'''&lt;br /&gt;
|  | Primer apellido del usuario.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Apellido 2'''&lt;br /&gt;
|  | Segundo apellido del usuario. &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;
| font-weight: bold;&amp;quot; | '''Localidad'''&lt;br /&gt;
|  | Código postal del usuario.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Código Postal'''&lt;br /&gt;
| | Localidad del usuario .&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;
| font-weight: bold;&amp;quot; | '''Mensaje de texto'''&lt;br /&gt;
|  | Mensaje de texto a mostrar.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Idioma'''&lt;br /&gt;
| | Idioma del usuario.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Fecha de expiración'''&lt;br /&gt;
|   | Nombre de la cuenta del usuario. (solo lectura)&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Fecha último cambio de clave'''&lt;br /&gt;
|  |Clave de la cuenta (obligatorio). &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La pestaña '''Ajustes/extensiones''' muestra al usuario final las extensiones del sistema que tiene asignadas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:WEBCALL3.png |1000px|center]]&lt;/div&gt;</summary>
		<author><name>Alfredo.rodriguez</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1&amp;diff=16995</id>
		<title>Documentación de usuario VIVAit Call 5.1</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1&amp;diff=16995"/>
		<updated>2026-03-18T10:29:53Z</updated>

		<summary type="html">&lt;p&gt;Alfredo.rodriguez: /* Introducción */&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;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;big&amp;gt;&lt;br /&gt;
Versiones anteriores de [[Usuario Vivait Call versiones| Usuario Vivait Call]]&lt;br /&gt;
&lt;br /&gt;
[[Guía_rápida_Web_Call_V.2.3.0 | Guía rápida Web Call]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Los usuarios del sistema '''''VIVA'''''it Call disponen de una serie de herramientas de gestión que permiten manejar y configurar las principales características del sistema a nivel de usuario final:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
* Terminal telefónico, con diferentes características en función de la marca y modelo que el usuario disponga.&lt;br /&gt;
* Facilidades del sistema, accesibles desde cualquier terminal telefónico mediante la pulsación de combinaciones del teclado.&lt;br /&gt;
* Portal de usuario, para poder acceder a facilidades del sistema y otros servicios de manera más sencilla e intuitiva.&lt;br /&gt;
* Aplicación '''''VIVA'''''it Tracker, que permite realizar el seguimiento, escucha y descarga de grabaciones de llamadas para usuarios con permiso de acceso.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[#Introducción | Volver arriba]] / [https://vivait-wiki.mdnova.local/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1 Volver al indice]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Manual_de_operación_de_vFlow | Volver al indice]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Terminales telefónicos ==&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''''VIVA'''''it Call está preparado para poder soportar gran cantidad de terminales telefónicos, de diversas marcas y modelos; se adjuntan manuales de usuario de los más habituales&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Marca !! Modelo !! Manual de uso &lt;br /&gt;
|- &lt;br /&gt;
| Grandstream || 1160 y 1165 ||[[medio:Guia rapida Grandstream 1160_1165.pdf|Guía rápida Grandstream 1160 y 1165]]&lt;br /&gt;
|- &lt;br /&gt;
| Grandstream || 1400 y 1405 ||[[medio:Guia rapida Grandstream 1400_1405.pdf|Guía rápida Grandstream 1400 y 405]]&lt;br /&gt;
|- &lt;br /&gt;
| Grandstream || GXP2130 ,GXP2140, GXP2160, GXP2135 y GXP2170||[[medio:Guia rapida Grandstream GXP2130_GXP2140_GXP2160.pdf|Guía rápida Grandstream GXP2130 ,GXP2140, GXP2160, GXP2135 y GXP2170]]&lt;br /&gt;
|- &lt;br /&gt;
| Grandstream || DP715 y DP710 ||[[medio:Guia rapida Grandstream DP715_DP710.pdf|Guía rápida Grandstream DP715 y DP710]]&lt;br /&gt;
|- &lt;br /&gt;
| Huawei || 7910 ||[[medio:Guia rapida Huawei 7910.pdf|Guía rápida Huawei 7910]] (En Inglés)&lt;br /&gt;
|- &lt;br /&gt;
| Huawei || 7950 || [[medio:Guia rapida Huawei 7950.pdf|Guía rápida Huawei 7950]] (En Inglés)&lt;br /&gt;
|- &lt;br /&gt;
| Mitel || 6865i ||[[medio:Guia rapida Mitel 6865i.pdf|Guía rápida Mitel 6865i]]&lt;br /&gt;
|- &lt;br /&gt;
| Mitel || 6867i ||[[medio:Guia rapida Mitel 6867i.pdf|Guía rápida Mitel 6867i]]&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| Aastra (Mitel)|| 6730i y 6731i  || [[medio: 6730i_6731i_qrg_symbol_keypad_English_270710.pdf | Guía rápida Aastra Mitel 6730i y 6731i]] (En Inglés)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| Aastra (Mitel)|| 6753i || [[medio:6753i_qrg_symbol_keypad_English_270710.pdf | Guía rápida Aastra Mitel 6753i ]] (En Inglés)&lt;br /&gt;
|- &lt;br /&gt;
| Snom || 710 ||[[medio:Guia rapida Snom 710.pdf|Guía rápida Snom 710]]&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T20P ||[[medio:Guia rapida Yealink T20p.pdf|Guía rápida Yealink T20P]]&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T21P ||[[medio:Guia rapida Yealink T21p.pdf|Guía rápida Yealink T21P]]&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T23G y T23P ||[[medio:Guia rapida Yealink T23P_T23G.pdf|Guía rápida Yealink T23G y T23P]] (En Inglés)&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T26P ||[[medio:Guia rapida Yealink T26p.pdf|Guía rápida Yealink T26P]]&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T27P ||[[medio:Guia rapida Yealink T27P.pdf|Guía rápida Yealink T27P]](En Inglés)&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T28P ||[[medio:Guia rapida Yealink T28p.pdf|Guía rápida Yealink T28P]]&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || VP530 ||[[medio:Guia rapida Yealink VP530.pdf|Guía rápida Yealink VP530]]&lt;br /&gt;
|- &lt;br /&gt;
| Cisco Unified || SIP 3905 ||[[medio:Guia rapida Cisco SIP 3905.pdf|Guía rápida Cisco SIP 3905]]&lt;br /&gt;
|- &lt;br /&gt;
| Cisco Unified || IP 6921 ||[[medio:Guia rapida Cisco IP 6921.pdf.pdf|Guía rápida Cisco IP 6921]]&lt;br /&gt;
|- &lt;br /&gt;
| Cisco Unified || IP 7960G y 7940g||[[medio:7940g_y_7960g REFER RAPIDA.pdf|Guía rápida Cisco IP 7960G y 7940g]]&lt;br /&gt;
|- &lt;br /&gt;
| Cisco Unified || IP 7962G y 7942g||[[medio:cisco_ipphone_7942g.pdf |Guía rápida Cisco IP 7962G y 7942g]]&lt;br /&gt;
|- &lt;br /&gt;
| Zoiper || Business Windows || [[medio:User Guide Zoiper 5 v.1.0.7.pdf| Manual de usuario de Zoiper 5]]&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[#Terminales_telefónicos | Volver arriba]] / [https://vivait-wiki.mdnova.local/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1 Volver al indice]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Facilidades del sistema ==&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Una de las maneras que tiene un usuario para poder realizar operaciones básicas sobre su extensión es mediante el uso de combinaciones de teclas, que le dan acceso a la activación o desactivación de diferentes facilidades en el sistema; la tabla adjunta muestra las facilidades disponibles por defecto.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
! '''Código a marcar '''!! Funcionalidad !! Modo de uso &lt;br /&gt;
|-&lt;br /&gt;
|*21#||Desvío extensión incondicional a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*21*numero||Desvío extensión incondicional||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*211#||Desvío extensión por no contesta a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*211*numero||Desvío extensión por no contesta||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*212#||Desvío extensión por ocupado a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*212*numero||Desvío extensión por ocupado||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*213#||Desvío extensión por fuera de servicio a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*213*numero||Desvío extensión por fuera de servicio||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
&amp;lt;!--|-&lt;br /&gt;
|*223*numero||Desvío usuario por no login||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación--&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|*31#||Desvío usuario incondicional mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*31*numero||Desvío usuario incondicional||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*311#||Desvío usuario por no contesta mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*311*numero||Desvío usuario por no contesta||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*312#||Desvío usuario por ocupado a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*312*numero||Desvío usuario por ocupado||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*313#||Desvío usuario por no login a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*313*numero||Desvío usuario por no login||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*32#||Desvio usuario por calendario. ||Activación: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*33#||Desvio extensión por calendario.||Activación: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*401#||Login movilidad avanzada||Activación: Pulsar código + destino + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*402#||Logout movilidad avanzada||Activación: Pulsar código + destino + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*41*||Capturar extensión||Activación: Pulsar código + destino + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*8||Capturar llamada de grupo de captura||Activación: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*42#||Leer buzón|| Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*43#||Activar retrollamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*44#||Cancelar retrollamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*45#||Login movilidad||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*46#||Logout movilidad||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*47#||Login en grupos corporativos||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*48#||Logout en grupos corporativos||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*491#||Pausa en grupos corporativos||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*492#||Quitar pausa en grupos corporativos||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*50#||Movilidad||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*54#||Intrusión a extensión||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*55#||Intrusión a VDN o Grupo||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*500#||Eco||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*501#|| Tono de prueba||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*60#||Movilidad llamada a llamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*61#||Categoría usuario en llamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*65#||Categoría temporal de teléfono||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*66#||Fin Categoría temporal de teléfono||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*72#||Movilidad llamada a llamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|70106 ||Cancelar retrollamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[#Facilidades_del_sistema | Volver arriba]] / [https://vivait-wiki.mdnova.local/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1 Volver al indice]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Retrollamadas ===&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
El funcionamiento será el siguiente:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*La retrollamada queda programada de extensión física &amp;quot;A&amp;quot; a extensión física &amp;quot;B&amp;quot; (no queda programada a numeraciones de usuarios); esto no quiere decir que no podamos programar una retrollamada cuando hemos llamado a una numeración de usuario, pero queda programada en la extensión física en la que está ese usuario en ese momento.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*El número llamado &amp;quot;B&amp;quot; podrá ser derivado de varias causas:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
::&amp;quot;A&amp;quot; ha llamado a &amp;quot;B&amp;quot; &lt;br /&gt;
::&amp;quot;A&amp;quot; ha llamado a un usuario ubicado en &amp;quot;B&amp;quot; &lt;br /&gt;
::&amp;quot;A&amp;quot; ha llamado a un destino desviado a &amp;quot;B&amp;quot; &lt;br /&gt;
::&amp;quot;A&amp;quot; ha llamado a un destino y por preruta acaba en &amp;quot;B&amp;quot; &lt;br /&gt;
::...&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*Las causas por las que se podrá programar una retrollamada son:&lt;br /&gt;
::&amp;quot;B&amp;quot; está ocupada&lt;br /&gt;
::&amp;quot;B&amp;quot; no contesta&lt;br /&gt;
::&amp;quot;B&amp;quot; está ocupada y no contesta (ha sonado en línea 2--&amp;gt; )&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''Solo podremos programar la retrollamada si el sistema devuelve: extensión ocupada o no contesta'''&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Estas dos últimas casuísticas son iguales a efectos de usuario, pero no a efectos internos...&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Si una llamada va a buzón, salta a un grupo ACD, a una IVR...entonces NO habrá retrollamada (porque se considera contestada)&lt;br /&gt;
 &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*Para programar una retrollamada se pulsa el código de facilidad (*43#) una vez colgada la misma; el sistema recordará la última llamada durante un período de tiempo configurable; aunque entre una llamada en &amp;quot;A&amp;quot;, este podrá programar retrollamada a la última saliente si sigue dentro del período&lt;br /&gt;
*Se podrá abortar una retrollamada ( (*44#), pero esto no borrará la última llamada (podemos arrepentirnos de haber abortado la retrollamada)&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[#Facilidades_del_sistema | Volver arriba]] / [https://vivait-wiki.mdnova.local/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1 Volver al indice]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Portal de usuario ==&lt;br /&gt;
&lt;br /&gt;
El portal de usuario VIVAit Call permite que determinadas funcionalidades del sistema puedan ser accesibles por los usuarios finales desde una interfaz mucho más cómoda y amigable que el telefónico; de esta forma, desde un portal fácilmente accesible los usuarios finales podrán: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Gestionar las principales características del sistema, incluyendo:&lt;br /&gt;
&lt;br /&gt;
•	Principales datos de contacto&lt;br /&gt;
&lt;br /&gt;
•	Gestionar desvíos en telefonía corporativa&lt;br /&gt;
&lt;br /&gt;
•	Gestionar la agenda de contactos&lt;br /&gt;
&lt;br /&gt;
•	Acceder al sistema de mensajería vocal con el objeto de escuchar y administrar los mensajes de voz&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Aspecto general ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El acceso al portal se realiza tras el correspondiente proceso de validación, tal y como se muestra en la imagen siguiente:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall1.png |250px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez se ha accedido al portal, éste se compone de seis pestañas:&lt;br /&gt;
&lt;br /&gt;
•	Contactos&lt;br /&gt;
&lt;br /&gt;
•	Historial&lt;br /&gt;
&lt;br /&gt;
•	Mensaje de voz&lt;br /&gt;
&lt;br /&gt;
•	Desvíos&lt;br /&gt;
&lt;br /&gt;
•	Ajustes&lt;br /&gt;
&lt;br /&gt;
•	Información&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall2-2.png |950px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En la parte superior derecha del portal, se encuentran los siguientes botones:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall3.png |450px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Botón !! Función &lt;br /&gt;
|- &lt;br /&gt;
| [[File:webcall4.png |50px|center]] || Botón para mostrar u ocultar la ventana del teléfono.&lt;br /&gt;
|-&lt;br /&gt;
| [[File:webcall5.png |250px|center]] || Muestra si una extensión está disponible o no dependiendo del color (verde = disponible, rojo = no disponible). Cada usuario puede configurar esta funcionalidad en la pestaña Ajustes\Extensiones\Disponibilidad General [[File:webcall6.png |200px|]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:webcall7.png |50px|center]] || Este botón se muestra cuando hay configurado uno o varios desvíos. Esta funcionalidad se explica en el apartado 4.4&lt;br /&gt;
|-&lt;br /&gt;
| [[File:webcall8.png |50px|center]] || Este botón se muestra cuando hay configurado un desvío incondicional por calendario. Esta funcionalidad se explica en el apartado 4.4 &lt;br /&gt;
|-&lt;br /&gt;
| [[File:webcall9.png |50px|center]] || Botón para salir del portal.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Pestañas en el portal de VIVAit Call ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pestaña Contactos ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La pestaña de contactos muestra al usuario los datos de los contactos añadidos en su agenda. Los datos que se muestran de cada contacto son: Nombre, Apellido, Empresa, Tipo agenda y Teléfono.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:WEBCALL1.png |800px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para añadir un nuevo contacto, hay que seleccionar el botón de la parte superior derecha &amp;quot;Añadir nuevo contacto&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Al darle a &amp;quot;añadir un nuevo contacto&amp;quot;, nos aparecerá una ventana con las siguientes opciones: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall13.png |800px|center]]&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;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre'''&lt;br /&gt;
|  | Nombre del usuario ('''Obligatorio''').&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Apellido 1'''&lt;br /&gt;
|  | Primer apellido del usuario.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Apellido 2'''&lt;br /&gt;
|  | Segundo apellido del usuario. &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre en pantalla'''&lt;br /&gt;
| | Nombre del usuario en pantalla. ('''Obligatorio''')&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Empresa'''&lt;br /&gt;
|  | Nombre de la empresa.&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;
| font-weight: bold;&amp;quot; | '''Código postal'''&lt;br /&gt;
|  | Código postal del usuario.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Localidad'''&lt;br /&gt;
|  | Localidad del usuario .&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Localidad'''&lt;br /&gt;
|  | Provincia del usuario .&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Número de teléfono'''&lt;br /&gt;
|  | Número de teléfono del usuario . ('''Obligatorio''')&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Tipo'''&lt;br /&gt;
|  | Fijo / Móvil&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Pestaña Historial===&lt;br /&gt;
&lt;br /&gt;
La pestaña de Historial muestra al usuario el listado de las llamadas realizadas y recibidas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall22.png |800px|center]]&lt;br /&gt;
&lt;br /&gt;
=== Pestaña Mensaje de voz===&lt;br /&gt;
&lt;br /&gt;
La pestaña de mensajes de voz muestra los mensajes que han llegado a nuestro buzón de voz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:web-call5.png|800px|center]]&lt;br /&gt;
&lt;br /&gt;
=== Pestaña Desvíos ===&lt;br /&gt;
&lt;br /&gt;
La pestaña Desvíos permite al usuario visualizar información de relevancia como usuario de telefonía corporativa, y realizar desvíos de usuario (no a nivel de extensión) en diferentes casuísticas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall16.png |800px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En esta pestaña podremos configurar cinco tipos de desvío: &lt;br /&gt;
&lt;br /&gt;
•	Desvío incondicional: Todas las llamadas se desvían.&lt;br /&gt;
&lt;br /&gt;
•	Desvío por calendario: Desvío de la llamada cuando se configura una fecha en el calendario.&lt;br /&gt;
&lt;br /&gt;
•	Desvío por no conectado: Desvío en caso de que se dirija una llamada al número de un usuario que no está registrado en el teléfono.&lt;br /&gt;
&lt;br /&gt;
•	Desvío por ocupado: Desvío cuando el usuario está ocupado (comunicando).&lt;br /&gt;
&lt;br /&gt;
•	Desvío por no contestado: Desvío de la llamada cuando el usuario no contesta.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Las opciones de la pestaña Desvíos se explican en la siguiente tabla:&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;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #0099ff;border-bottom:0.05pt solid #0099ff;border-left:0.05pt solid #0099ff;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''INCONDICIONAL'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío incondicional a mensajería'''&lt;br /&gt;
|| Desvía todas las llamadas que recibe el usuario 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 al que se desvía la llamada. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío incondicional por calendario'''&lt;br /&gt;
|| Permite al usuario gestionar su desvío por calendario&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por calendario'''&lt;br /&gt;
|| Pestaña para seleccionar fechas para el desvío&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #0099ff;border-bottom:0.05pt solid #0099ff;border-left:0.05pt solid #0099ff;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''NO CONECTADO'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por no conectado a mensajería'''&lt;br /&gt;
|| Desvía la llamada al buzón de voz cuando el usuario no está registrado en el teléfono. &lt;br /&gt;
|| Si / No. &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por no conectado'''&lt;br /&gt;
|| Número al que se desvía la llamada cuando el usuario no está registrado en el teléfono. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #0099ff;border-bottom:0.05pt solid #0099ff;border-left:0.05pt solid #0099ff;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''OCUPADO'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por ocupado a mensajería'''&lt;br /&gt;
|| Desvía la llamada al buzón de voz cuando el usuario está 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 al que se desvía la llamada cuando el usuario está ocupado. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #0099ff;border-bottom:0.05pt solid #0099ff;border-left:0.05pt solid #0099ff;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''NO CONTESTADO'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por no contestación a mensajería'''&lt;br /&gt;
|| Desvía la llamada al buzón de voz cuando el usuario no contesta.&lt;br /&gt;
|| Si / No. &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por no contestación'''&lt;br /&gt;
|| Número al que se desvía la llamada cuando el usuario no contesta. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Pestaña Ajustes ===&lt;br /&gt;
&lt;br /&gt;
El área de ajustes del portal nos da acceso a tres pestañas de gestión.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La pestaña de '''Ajustes/Dispositivos''' se muestra en la siguiente imagen: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall17.png |900px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En esta pestaña se configura el dispositivo de entrada y salida de audio, también sirve para establecer un tono de timbre.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La pestaña de '''Ajustes/Usuario''' se muestra en la siguiente imagen:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:WEBCALL2.png |900px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En esta pantalla los campos que se muestran sombreados no serán editables.&lt;br /&gt;
&lt;br /&gt;
Algunos campos son solo informativos por lo que siempre aparecerán sombreados, en otras ocasiones el usuario no dispondrá de permisos para editar los campos, pero los campos siempre aparecerán. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Las opciones de la pestaña de usuario se explican en la siguiente tabla:&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;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre'''&lt;br /&gt;
|  | Nombre del usuario ('''Obligatorio''').&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Apellido 1'''&lt;br /&gt;
|  | Primer apellido del usuario.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Apellido 2'''&lt;br /&gt;
|  | Segundo apellido del usuario. &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;
| font-weight: bold;&amp;quot; | '''Localidad'''&lt;br /&gt;
|  | Código postal del usuario.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Código Postal'''&lt;br /&gt;
| | Localidad del usuario .&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;
| font-weight: bold;&amp;quot; | '''Mensaje de texto'''&lt;br /&gt;
|  | Mensaje de texto a mostrar.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Idioma'''&lt;br /&gt;
| | Idioma del usuario.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Fecha de expiración'''&lt;br /&gt;
|   | Nombre de la cuenta del usuario. (solo lectura)&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Fecha último cambio de clave'''&lt;br /&gt;
|  |Clave de la cuenta (obligatorio). &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La pestaña '''Ajustes/extensiones''' muestra al usuario final las extensiones del sistema que tiene asignadas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:WEBCALL3.png |1000px|center]]&lt;/div&gt;</summary>
		<author><name>Alfredo.rodriguez</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1&amp;diff=16994</id>
		<title>Documentación de usuario VIVAit Call 5.1</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1&amp;diff=16994"/>
		<updated>2026-03-18T10:29:21Z</updated>

		<summary type="html">&lt;p&gt;Alfredo.rodriguez: /* Introducción */&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;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;big&amp;gt;&lt;br /&gt;
Versiones anteriores de [[Usuario Vivait Call versiones| Usuario Vivait Call]]&lt;br /&gt;
&lt;br /&gt;
[[Guía_rápida_Web_Call_V.2.3.0 | Guía rápida Web Call]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Los usuarios del sistema '''''VIVA'''''it Call disponen de una serie de herramientas de gestión que permiten manejar y configurar las principales características del sistema a nivel de usuario final:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
* Terminal telefónico, con diferentes características en función de la marca y modelo que el usuario disponga.&lt;br /&gt;
* Facilidades del sistema, accesibles desde cualquier terminal telefónico mediante la pulsación de combinaciones del teclado.&lt;br /&gt;
* Portal de usuario, para poder acceder a facilidades del sistema y otros servicios de manera más sencilla e intuitiva.&lt;br /&gt;
* Aplicación '''''VIVA'''''it Tracker, que permite realizar el seguimiento, escucha y descarga de grabaciones de llamadas para usuarios con permiso de acceso.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[#Introducción | Volver arriba]] / [https://vivait-wiki.mdnova.local/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1 Volver al indice]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[Manual de operación de vFlow | Volver al indice]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Terminales telefónicos ==&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''''VIVA'''''it Call está preparado para poder soportar gran cantidad de terminales telefónicos, de diversas marcas y modelos; se adjuntan manuales de usuario de los más habituales&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Marca !! Modelo !! Manual de uso &lt;br /&gt;
|- &lt;br /&gt;
| Grandstream || 1160 y 1165 ||[[medio:Guia rapida Grandstream 1160_1165.pdf|Guía rápida Grandstream 1160 y 1165]]&lt;br /&gt;
|- &lt;br /&gt;
| Grandstream || 1400 y 1405 ||[[medio:Guia rapida Grandstream 1400_1405.pdf|Guía rápida Grandstream 1400 y 405]]&lt;br /&gt;
|- &lt;br /&gt;
| Grandstream || GXP2130 ,GXP2140, GXP2160, GXP2135 y GXP2170||[[medio:Guia rapida Grandstream GXP2130_GXP2140_GXP2160.pdf|Guía rápida Grandstream GXP2130 ,GXP2140, GXP2160, GXP2135 y GXP2170]]&lt;br /&gt;
|- &lt;br /&gt;
| Grandstream || DP715 y DP710 ||[[medio:Guia rapida Grandstream DP715_DP710.pdf|Guía rápida Grandstream DP715 y DP710]]&lt;br /&gt;
|- &lt;br /&gt;
| Huawei || 7910 ||[[medio:Guia rapida Huawei 7910.pdf|Guía rápida Huawei 7910]] (En Inglés)&lt;br /&gt;
|- &lt;br /&gt;
| Huawei || 7950 || [[medio:Guia rapida Huawei 7950.pdf|Guía rápida Huawei 7950]] (En Inglés)&lt;br /&gt;
|- &lt;br /&gt;
| Mitel || 6865i ||[[medio:Guia rapida Mitel 6865i.pdf|Guía rápida Mitel 6865i]]&lt;br /&gt;
|- &lt;br /&gt;
| Mitel || 6867i ||[[medio:Guia rapida Mitel 6867i.pdf|Guía rápida Mitel 6867i]]&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| Aastra (Mitel)|| 6730i y 6731i  || [[medio: 6730i_6731i_qrg_symbol_keypad_English_270710.pdf | Guía rápida Aastra Mitel 6730i y 6731i]] (En Inglés)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| Aastra (Mitel)|| 6753i || [[medio:6753i_qrg_symbol_keypad_English_270710.pdf | Guía rápida Aastra Mitel 6753i ]] (En Inglés)&lt;br /&gt;
|- &lt;br /&gt;
| Snom || 710 ||[[medio:Guia rapida Snom 710.pdf|Guía rápida Snom 710]]&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T20P ||[[medio:Guia rapida Yealink T20p.pdf|Guía rápida Yealink T20P]]&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T21P ||[[medio:Guia rapida Yealink T21p.pdf|Guía rápida Yealink T21P]]&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T23G y T23P ||[[medio:Guia rapida Yealink T23P_T23G.pdf|Guía rápida Yealink T23G y T23P]] (En Inglés)&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T26P ||[[medio:Guia rapida Yealink T26p.pdf|Guía rápida Yealink T26P]]&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T27P ||[[medio:Guia rapida Yealink T27P.pdf|Guía rápida Yealink T27P]](En Inglés)&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T28P ||[[medio:Guia rapida Yealink T28p.pdf|Guía rápida Yealink T28P]]&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || VP530 ||[[medio:Guia rapida Yealink VP530.pdf|Guía rápida Yealink VP530]]&lt;br /&gt;
|- &lt;br /&gt;
| Cisco Unified || SIP 3905 ||[[medio:Guia rapida Cisco SIP 3905.pdf|Guía rápida Cisco SIP 3905]]&lt;br /&gt;
|- &lt;br /&gt;
| Cisco Unified || IP 6921 ||[[medio:Guia rapida Cisco IP 6921.pdf.pdf|Guía rápida Cisco IP 6921]]&lt;br /&gt;
|- &lt;br /&gt;
| Cisco Unified || IP 7960G y 7940g||[[medio:7940g_y_7960g REFER RAPIDA.pdf|Guía rápida Cisco IP 7960G y 7940g]]&lt;br /&gt;
|- &lt;br /&gt;
| Cisco Unified || IP 7962G y 7942g||[[medio:cisco_ipphone_7942g.pdf |Guía rápida Cisco IP 7962G y 7942g]]&lt;br /&gt;
|- &lt;br /&gt;
| Zoiper || Business Windows || [[medio:User Guide Zoiper 5 v.1.0.7.pdf| Manual de usuario de Zoiper 5]]&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[#Terminales_telefónicos | Volver arriba]] / [https://vivait-wiki.mdnova.local/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1 Volver al indice]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Facilidades del sistema ==&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Una de las maneras que tiene un usuario para poder realizar operaciones básicas sobre su extensión es mediante el uso de combinaciones de teclas, que le dan acceso a la activación o desactivación de diferentes facilidades en el sistema; la tabla adjunta muestra las facilidades disponibles por defecto.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
! '''Código a marcar '''!! Funcionalidad !! Modo de uso &lt;br /&gt;
|-&lt;br /&gt;
|*21#||Desvío extensión incondicional a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*21*numero||Desvío extensión incondicional||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*211#||Desvío extensión por no contesta a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*211*numero||Desvío extensión por no contesta||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*212#||Desvío extensión por ocupado a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*212*numero||Desvío extensión por ocupado||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*213#||Desvío extensión por fuera de servicio a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*213*numero||Desvío extensión por fuera de servicio||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
&amp;lt;!--|-&lt;br /&gt;
|*223*numero||Desvío usuario por no login||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación--&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|*31#||Desvío usuario incondicional mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*31*numero||Desvío usuario incondicional||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*311#||Desvío usuario por no contesta mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*311*numero||Desvío usuario por no contesta||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*312#||Desvío usuario por ocupado a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*312*numero||Desvío usuario por ocupado||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*313#||Desvío usuario por no login a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*313*numero||Desvío usuario por no login||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*32#||Desvio usuario por calendario. ||Activación: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*33#||Desvio extensión por calendario.||Activación: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*401#||Login movilidad avanzada||Activación: Pulsar código + destino + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*402#||Logout movilidad avanzada||Activación: Pulsar código + destino + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*41*||Capturar extensión||Activación: Pulsar código + destino + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*8||Capturar llamada de grupo de captura||Activación: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*42#||Leer buzón|| Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*43#||Activar retrollamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*44#||Cancelar retrollamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*45#||Login movilidad||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*46#||Logout movilidad||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*47#||Login en grupos corporativos||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*48#||Logout en grupos corporativos||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*491#||Pausa en grupos corporativos||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*492#||Quitar pausa en grupos corporativos||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*50#||Movilidad||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*54#||Intrusión a extensión||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*55#||Intrusión a VDN o Grupo||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*500#||Eco||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*501#|| Tono de prueba||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*60#||Movilidad llamada a llamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*61#||Categoría usuario en llamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*65#||Categoría temporal de teléfono||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*66#||Fin Categoría temporal de teléfono||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*72#||Movilidad llamada a llamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|70106 ||Cancelar retrollamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[#Facilidades_del_sistema | Volver arriba]] / [https://vivait-wiki.mdnova.local/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1 Volver al indice]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Retrollamadas ===&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
El funcionamiento será el siguiente:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*La retrollamada queda programada de extensión física &amp;quot;A&amp;quot; a extensión física &amp;quot;B&amp;quot; (no queda programada a numeraciones de usuarios); esto no quiere decir que no podamos programar una retrollamada cuando hemos llamado a una numeración de usuario, pero queda programada en la extensión física en la que está ese usuario en ese momento.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*El número llamado &amp;quot;B&amp;quot; podrá ser derivado de varias causas:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
::&amp;quot;A&amp;quot; ha llamado a &amp;quot;B&amp;quot; &lt;br /&gt;
::&amp;quot;A&amp;quot; ha llamado a un usuario ubicado en &amp;quot;B&amp;quot; &lt;br /&gt;
::&amp;quot;A&amp;quot; ha llamado a un destino desviado a &amp;quot;B&amp;quot; &lt;br /&gt;
::&amp;quot;A&amp;quot; ha llamado a un destino y por preruta acaba en &amp;quot;B&amp;quot; &lt;br /&gt;
::...&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*Las causas por las que se podrá programar una retrollamada son:&lt;br /&gt;
::&amp;quot;B&amp;quot; está ocupada&lt;br /&gt;
::&amp;quot;B&amp;quot; no contesta&lt;br /&gt;
::&amp;quot;B&amp;quot; está ocupada y no contesta (ha sonado en línea 2--&amp;gt; )&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''Solo podremos programar la retrollamada si el sistema devuelve: extensión ocupada o no contesta'''&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Estas dos últimas casuísticas son iguales a efectos de usuario, pero no a efectos internos...&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Si una llamada va a buzón, salta a un grupo ACD, a una IVR...entonces NO habrá retrollamada (porque se considera contestada)&lt;br /&gt;
 &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*Para programar una retrollamada se pulsa el código de facilidad (*43#) una vez colgada la misma; el sistema recordará la última llamada durante un período de tiempo configurable; aunque entre una llamada en &amp;quot;A&amp;quot;, este podrá programar retrollamada a la última saliente si sigue dentro del período&lt;br /&gt;
*Se podrá abortar una retrollamada ( (*44#), pero esto no borrará la última llamada (podemos arrepentirnos de haber abortado la retrollamada)&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[#Facilidades_del_sistema | Volver arriba]] / [https://vivait-wiki.mdnova.local/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1 Volver al indice]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Portal de usuario ==&lt;br /&gt;
&lt;br /&gt;
El portal de usuario VIVAit Call permite que determinadas funcionalidades del sistema puedan ser accesibles por los usuarios finales desde una interfaz mucho más cómoda y amigable que el telefónico; de esta forma, desde un portal fácilmente accesible los usuarios finales podrán: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Gestionar las principales características del sistema, incluyendo:&lt;br /&gt;
&lt;br /&gt;
•	Principales datos de contacto&lt;br /&gt;
&lt;br /&gt;
•	Gestionar desvíos en telefonía corporativa&lt;br /&gt;
&lt;br /&gt;
•	Gestionar la agenda de contactos&lt;br /&gt;
&lt;br /&gt;
•	Acceder al sistema de mensajería vocal con el objeto de escuchar y administrar los mensajes de voz&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Aspecto general ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El acceso al portal se realiza tras el correspondiente proceso de validación, tal y como se muestra en la imagen siguiente:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall1.png |250px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez se ha accedido al portal, éste se compone de seis pestañas:&lt;br /&gt;
&lt;br /&gt;
•	Contactos&lt;br /&gt;
&lt;br /&gt;
•	Historial&lt;br /&gt;
&lt;br /&gt;
•	Mensaje de voz&lt;br /&gt;
&lt;br /&gt;
•	Desvíos&lt;br /&gt;
&lt;br /&gt;
•	Ajustes&lt;br /&gt;
&lt;br /&gt;
•	Información&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall2-2.png |950px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En la parte superior derecha del portal, se encuentran los siguientes botones:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall3.png |450px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Botón !! Función &lt;br /&gt;
|- &lt;br /&gt;
| [[File:webcall4.png |50px|center]] || Botón para mostrar u ocultar la ventana del teléfono.&lt;br /&gt;
|-&lt;br /&gt;
| [[File:webcall5.png |250px|center]] || Muestra si una extensión está disponible o no dependiendo del color (verde = disponible, rojo = no disponible). Cada usuario puede configurar esta funcionalidad en la pestaña Ajustes\Extensiones\Disponibilidad General [[File:webcall6.png |200px|]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:webcall7.png |50px|center]] || Este botón se muestra cuando hay configurado uno o varios desvíos. Esta funcionalidad se explica en el apartado 4.4&lt;br /&gt;
|-&lt;br /&gt;
| [[File:webcall8.png |50px|center]] || Este botón se muestra cuando hay configurado un desvío incondicional por calendario. Esta funcionalidad se explica en el apartado 4.4 &lt;br /&gt;
|-&lt;br /&gt;
| [[File:webcall9.png |50px|center]] || Botón para salir del portal.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Pestañas en el portal de VIVAit Call ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pestaña Contactos ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La pestaña de contactos muestra al usuario los datos de los contactos añadidos en su agenda. Los datos que se muestran de cada contacto son: Nombre, Apellido, Empresa, Tipo agenda y Teléfono.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:WEBCALL1.png |800px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para añadir un nuevo contacto, hay que seleccionar el botón de la parte superior derecha &amp;quot;Añadir nuevo contacto&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Al darle a &amp;quot;añadir un nuevo contacto&amp;quot;, nos aparecerá una ventana con las siguientes opciones: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall13.png |800px|center]]&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;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre'''&lt;br /&gt;
|  | Nombre del usuario ('''Obligatorio''').&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Apellido 1'''&lt;br /&gt;
|  | Primer apellido del usuario.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Apellido 2'''&lt;br /&gt;
|  | Segundo apellido del usuario. &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre en pantalla'''&lt;br /&gt;
| | Nombre del usuario en pantalla. ('''Obligatorio''')&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Empresa'''&lt;br /&gt;
|  | Nombre de la empresa.&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;
| font-weight: bold;&amp;quot; | '''Código postal'''&lt;br /&gt;
|  | Código postal del usuario.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Localidad'''&lt;br /&gt;
|  | Localidad del usuario .&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Localidad'''&lt;br /&gt;
|  | Provincia del usuario .&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Número de teléfono'''&lt;br /&gt;
|  | Número de teléfono del usuario . ('''Obligatorio''')&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Tipo'''&lt;br /&gt;
|  | Fijo / Móvil&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Pestaña Historial===&lt;br /&gt;
&lt;br /&gt;
La pestaña de Historial muestra al usuario el listado de las llamadas realizadas y recibidas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall22.png |800px|center]]&lt;br /&gt;
&lt;br /&gt;
=== Pestaña Mensaje de voz===&lt;br /&gt;
&lt;br /&gt;
La pestaña de mensajes de voz muestra los mensajes que han llegado a nuestro buzón de voz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:web-call5.png|800px|center]]&lt;br /&gt;
&lt;br /&gt;
=== Pestaña Desvíos ===&lt;br /&gt;
&lt;br /&gt;
La pestaña Desvíos permite al usuario visualizar información de relevancia como usuario de telefonía corporativa, y realizar desvíos de usuario (no a nivel de extensión) en diferentes casuísticas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall16.png |800px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En esta pestaña podremos configurar cinco tipos de desvío: &lt;br /&gt;
&lt;br /&gt;
•	Desvío incondicional: Todas las llamadas se desvían.&lt;br /&gt;
&lt;br /&gt;
•	Desvío por calendario: Desvío de la llamada cuando se configura una fecha en el calendario.&lt;br /&gt;
&lt;br /&gt;
•	Desvío por no conectado: Desvío en caso de que se dirija una llamada al número de un usuario que no está registrado en el teléfono.&lt;br /&gt;
&lt;br /&gt;
•	Desvío por ocupado: Desvío cuando el usuario está ocupado (comunicando).&lt;br /&gt;
&lt;br /&gt;
•	Desvío por no contestado: Desvío de la llamada cuando el usuario no contesta.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Las opciones de la pestaña Desvíos se explican en la siguiente tabla:&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;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #0099ff;border-bottom:0.05pt solid #0099ff;border-left:0.05pt solid #0099ff;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''INCONDICIONAL'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío incondicional a mensajería'''&lt;br /&gt;
|| Desvía todas las llamadas que recibe el usuario 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 al que se desvía la llamada. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío incondicional por calendario'''&lt;br /&gt;
|| Permite al usuario gestionar su desvío por calendario&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por calendario'''&lt;br /&gt;
|| Pestaña para seleccionar fechas para el desvío&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #0099ff;border-bottom:0.05pt solid #0099ff;border-left:0.05pt solid #0099ff;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''NO CONECTADO'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por no conectado a mensajería'''&lt;br /&gt;
|| Desvía la llamada al buzón de voz cuando el usuario no está registrado en el teléfono. &lt;br /&gt;
|| Si / No. &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por no conectado'''&lt;br /&gt;
|| Número al que se desvía la llamada cuando el usuario no está registrado en el teléfono. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #0099ff;border-bottom:0.05pt solid #0099ff;border-left:0.05pt solid #0099ff;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''OCUPADO'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por ocupado a mensajería'''&lt;br /&gt;
|| Desvía la llamada al buzón de voz cuando el usuario está 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 al que se desvía la llamada cuando el usuario está ocupado. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #0099ff;border-bottom:0.05pt solid #0099ff;border-left:0.05pt solid #0099ff;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''NO CONTESTADO'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por no contestación a mensajería'''&lt;br /&gt;
|| Desvía la llamada al buzón de voz cuando el usuario no contesta.&lt;br /&gt;
|| Si / No. &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por no contestación'''&lt;br /&gt;
|| Número al que se desvía la llamada cuando el usuario no contesta. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Pestaña Ajustes ===&lt;br /&gt;
&lt;br /&gt;
El área de ajustes del portal nos da acceso a tres pestañas de gestión.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La pestaña de '''Ajustes/Dispositivos''' se muestra en la siguiente imagen: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall17.png |900px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En esta pestaña se configura el dispositivo de entrada y salida de audio, también sirve para establecer un tono de timbre.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La pestaña de '''Ajustes/Usuario''' se muestra en la siguiente imagen:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:WEBCALL2.png |900px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En esta pantalla los campos que se muestran sombreados no serán editables.&lt;br /&gt;
&lt;br /&gt;
Algunos campos son solo informativos por lo que siempre aparecerán sombreados, en otras ocasiones el usuario no dispondrá de permisos para editar los campos, pero los campos siempre aparecerán. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Las opciones de la pestaña de usuario se explican en la siguiente tabla:&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;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre'''&lt;br /&gt;
|  | Nombre del usuario ('''Obligatorio''').&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Apellido 1'''&lt;br /&gt;
|  | Primer apellido del usuario.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Apellido 2'''&lt;br /&gt;
|  | Segundo apellido del usuario. &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;
| font-weight: bold;&amp;quot; | '''Localidad'''&lt;br /&gt;
|  | Código postal del usuario.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Código Postal'''&lt;br /&gt;
| | Localidad del usuario .&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;
| font-weight: bold;&amp;quot; | '''Mensaje de texto'''&lt;br /&gt;
|  | Mensaje de texto a mostrar.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Idioma'''&lt;br /&gt;
| | Idioma del usuario.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Fecha de expiración'''&lt;br /&gt;
|   | Nombre de la cuenta del usuario. (solo lectura)&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Fecha último cambio de clave'''&lt;br /&gt;
|  |Clave de la cuenta (obligatorio). &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La pestaña '''Ajustes/extensiones''' muestra al usuario final las extensiones del sistema que tiene asignadas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:WEBCALL3.png |1000px|center]]&lt;/div&gt;</summary>
		<author><name>Alfredo.rodriguez</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1&amp;diff=16993</id>
		<title>Documentación de usuario VIVAit Call 5.1</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1&amp;diff=16993"/>
		<updated>2026-03-18T10:28:20Z</updated>

		<summary type="html">&lt;p&gt;Alfredo.rodriguez: /* Introducción */&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;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;big&amp;gt;&lt;br /&gt;
Versiones anteriores de [[Usuario Vivait Call versiones| Usuario Vivait Call]]&lt;br /&gt;
&lt;br /&gt;
[[Guía_rápida_Web_Call_V.2.3.0 | Guía rápida Web Call]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Los usuarios del sistema '''''VIVA'''''it Call disponen de una serie de herramientas de gestión que permiten manejar y configurar las principales características del sistema a nivel de usuario final:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
* Terminal telefónico, con diferentes características en función de la marca y modelo que el usuario disponga.&lt;br /&gt;
* Facilidades del sistema, accesibles desde cualquier terminal telefónico mediante la pulsación de combinaciones del teclado.&lt;br /&gt;
* Portal de usuario, para poder acceder a facilidades del sistema y otros servicios de manera más sencilla e intuitiva.&lt;br /&gt;
* Aplicación '''''VIVA'''''it Tracker, que permite realizar el seguimiento, escucha y descarga de grabaciones de llamadas para usuarios con permiso de acceso.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[#Introducción | Volver arriba]] / [https://vivait-wiki.mdnova.local/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1 Volver al indice]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Documentación_de_usuario_VIVAit_Call_5.1 | Volver al indice]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Terminales telefónicos ==&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''''VIVA'''''it Call está preparado para poder soportar gran cantidad de terminales telefónicos, de diversas marcas y modelos; se adjuntan manuales de usuario de los más habituales&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Marca !! Modelo !! Manual de uso &lt;br /&gt;
|- &lt;br /&gt;
| Grandstream || 1160 y 1165 ||[[medio:Guia rapida Grandstream 1160_1165.pdf|Guía rápida Grandstream 1160 y 1165]]&lt;br /&gt;
|- &lt;br /&gt;
| Grandstream || 1400 y 1405 ||[[medio:Guia rapida Grandstream 1400_1405.pdf|Guía rápida Grandstream 1400 y 405]]&lt;br /&gt;
|- &lt;br /&gt;
| Grandstream || GXP2130 ,GXP2140, GXP2160, GXP2135 y GXP2170||[[medio:Guia rapida Grandstream GXP2130_GXP2140_GXP2160.pdf|Guía rápida Grandstream GXP2130 ,GXP2140, GXP2160, GXP2135 y GXP2170]]&lt;br /&gt;
|- &lt;br /&gt;
| Grandstream || DP715 y DP710 ||[[medio:Guia rapida Grandstream DP715_DP710.pdf|Guía rápida Grandstream DP715 y DP710]]&lt;br /&gt;
|- &lt;br /&gt;
| Huawei || 7910 ||[[medio:Guia rapida Huawei 7910.pdf|Guía rápida Huawei 7910]] (En Inglés)&lt;br /&gt;
|- &lt;br /&gt;
| Huawei || 7950 || [[medio:Guia rapida Huawei 7950.pdf|Guía rápida Huawei 7950]] (En Inglés)&lt;br /&gt;
|- &lt;br /&gt;
| Mitel || 6865i ||[[medio:Guia rapida Mitel 6865i.pdf|Guía rápida Mitel 6865i]]&lt;br /&gt;
|- &lt;br /&gt;
| Mitel || 6867i ||[[medio:Guia rapida Mitel 6867i.pdf|Guía rápida Mitel 6867i]]&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| Aastra (Mitel)|| 6730i y 6731i  || [[medio: 6730i_6731i_qrg_symbol_keypad_English_270710.pdf | Guía rápida Aastra Mitel 6730i y 6731i]] (En Inglés)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| Aastra (Mitel)|| 6753i || [[medio:6753i_qrg_symbol_keypad_English_270710.pdf | Guía rápida Aastra Mitel 6753i ]] (En Inglés)&lt;br /&gt;
|- &lt;br /&gt;
| Snom || 710 ||[[medio:Guia rapida Snom 710.pdf|Guía rápida Snom 710]]&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T20P ||[[medio:Guia rapida Yealink T20p.pdf|Guía rápida Yealink T20P]]&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T21P ||[[medio:Guia rapida Yealink T21p.pdf|Guía rápida Yealink T21P]]&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T23G y T23P ||[[medio:Guia rapida Yealink T23P_T23G.pdf|Guía rápida Yealink T23G y T23P]] (En Inglés)&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T26P ||[[medio:Guia rapida Yealink T26p.pdf|Guía rápida Yealink T26P]]&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T27P ||[[medio:Guia rapida Yealink T27P.pdf|Guía rápida Yealink T27P]](En Inglés)&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T28P ||[[medio:Guia rapida Yealink T28p.pdf|Guía rápida Yealink T28P]]&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || VP530 ||[[medio:Guia rapida Yealink VP530.pdf|Guía rápida Yealink VP530]]&lt;br /&gt;
|- &lt;br /&gt;
| Cisco Unified || SIP 3905 ||[[medio:Guia rapida Cisco SIP 3905.pdf|Guía rápida Cisco SIP 3905]]&lt;br /&gt;
|- &lt;br /&gt;
| Cisco Unified || IP 6921 ||[[medio:Guia rapida Cisco IP 6921.pdf.pdf|Guía rápida Cisco IP 6921]]&lt;br /&gt;
|- &lt;br /&gt;
| Cisco Unified || IP 7960G y 7940g||[[medio:7940g_y_7960g REFER RAPIDA.pdf|Guía rápida Cisco IP 7960G y 7940g]]&lt;br /&gt;
|- &lt;br /&gt;
| Cisco Unified || IP 7962G y 7942g||[[medio:cisco_ipphone_7942g.pdf |Guía rápida Cisco IP 7962G y 7942g]]&lt;br /&gt;
|- &lt;br /&gt;
| Zoiper || Business Windows || [[medio:User Guide Zoiper 5 v.1.0.7.pdf| Manual de usuario de Zoiper 5]]&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[#Terminales_telefónicos | Volver arriba]] / [https://vivait-wiki.mdnova.local/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1 Volver al indice]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Facilidades del sistema ==&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Una de las maneras que tiene un usuario para poder realizar operaciones básicas sobre su extensión es mediante el uso de combinaciones de teclas, que le dan acceso a la activación o desactivación de diferentes facilidades en el sistema; la tabla adjunta muestra las facilidades disponibles por defecto.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
! '''Código a marcar '''!! Funcionalidad !! Modo de uso &lt;br /&gt;
|-&lt;br /&gt;
|*21#||Desvío extensión incondicional a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*21*numero||Desvío extensión incondicional||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*211#||Desvío extensión por no contesta a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*211*numero||Desvío extensión por no contesta||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*212#||Desvío extensión por ocupado a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*212*numero||Desvío extensión por ocupado||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*213#||Desvío extensión por fuera de servicio a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*213*numero||Desvío extensión por fuera de servicio||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
&amp;lt;!--|-&lt;br /&gt;
|*223*numero||Desvío usuario por no login||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación--&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|*31#||Desvío usuario incondicional mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*31*numero||Desvío usuario incondicional||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*311#||Desvío usuario por no contesta mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*311*numero||Desvío usuario por no contesta||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*312#||Desvío usuario por ocupado a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*312*numero||Desvío usuario por ocupado||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*313#||Desvío usuario por no login a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*313*numero||Desvío usuario por no login||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*32#||Desvio usuario por calendario. ||Activación: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*33#||Desvio extensión por calendario.||Activación: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*401#||Login movilidad avanzada||Activación: Pulsar código + destino + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*402#||Logout movilidad avanzada||Activación: Pulsar código + destino + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*41*||Capturar extensión||Activación: Pulsar código + destino + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*8||Capturar llamada de grupo de captura||Activación: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*42#||Leer buzón|| Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*43#||Activar retrollamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*44#||Cancelar retrollamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*45#||Login movilidad||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*46#||Logout movilidad||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*47#||Login en grupos corporativos||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*48#||Logout en grupos corporativos||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*491#||Pausa en grupos corporativos||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*492#||Quitar pausa en grupos corporativos||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*50#||Movilidad||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*54#||Intrusión a extensión||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*55#||Intrusión a VDN o Grupo||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*500#||Eco||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*501#|| Tono de prueba||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*60#||Movilidad llamada a llamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*61#||Categoría usuario en llamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*65#||Categoría temporal de teléfono||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*66#||Fin Categoría temporal de teléfono||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*72#||Movilidad llamada a llamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|70106 ||Cancelar retrollamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[#Facilidades_del_sistema | Volver arriba]] / [https://vivait-wiki.mdnova.local/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1 Volver al indice]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Retrollamadas ===&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
El funcionamiento será el siguiente:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*La retrollamada queda programada de extensión física &amp;quot;A&amp;quot; a extensión física &amp;quot;B&amp;quot; (no queda programada a numeraciones de usuarios); esto no quiere decir que no podamos programar una retrollamada cuando hemos llamado a una numeración de usuario, pero queda programada en la extensión física en la que está ese usuario en ese momento.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*El número llamado &amp;quot;B&amp;quot; podrá ser derivado de varias causas:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
::&amp;quot;A&amp;quot; ha llamado a &amp;quot;B&amp;quot; &lt;br /&gt;
::&amp;quot;A&amp;quot; ha llamado a un usuario ubicado en &amp;quot;B&amp;quot; &lt;br /&gt;
::&amp;quot;A&amp;quot; ha llamado a un destino desviado a &amp;quot;B&amp;quot; &lt;br /&gt;
::&amp;quot;A&amp;quot; ha llamado a un destino y por preruta acaba en &amp;quot;B&amp;quot; &lt;br /&gt;
::...&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*Las causas por las que se podrá programar una retrollamada son:&lt;br /&gt;
::&amp;quot;B&amp;quot; está ocupada&lt;br /&gt;
::&amp;quot;B&amp;quot; no contesta&lt;br /&gt;
::&amp;quot;B&amp;quot; está ocupada y no contesta (ha sonado en línea 2--&amp;gt; )&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''Solo podremos programar la retrollamada si el sistema devuelve: extensión ocupada o no contesta'''&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Estas dos últimas casuísticas son iguales a efectos de usuario, pero no a efectos internos...&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Si una llamada va a buzón, salta a un grupo ACD, a una IVR...entonces NO habrá retrollamada (porque se considera contestada)&lt;br /&gt;
 &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*Para programar una retrollamada se pulsa el código de facilidad (*43#) una vez colgada la misma; el sistema recordará la última llamada durante un período de tiempo configurable; aunque entre una llamada en &amp;quot;A&amp;quot;, este podrá programar retrollamada a la última saliente si sigue dentro del período&lt;br /&gt;
*Se podrá abortar una retrollamada ( (*44#), pero esto no borrará la última llamada (podemos arrepentirnos de haber abortado la retrollamada)&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[#Facilidades_del_sistema | Volver arriba]] / [https://vivait-wiki.mdnova.local/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1 Volver al indice]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Portal de usuario ==&lt;br /&gt;
&lt;br /&gt;
El portal de usuario VIVAit Call permite que determinadas funcionalidades del sistema puedan ser accesibles por los usuarios finales desde una interfaz mucho más cómoda y amigable que el telefónico; de esta forma, desde un portal fácilmente accesible los usuarios finales podrán: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Gestionar las principales características del sistema, incluyendo:&lt;br /&gt;
&lt;br /&gt;
•	Principales datos de contacto&lt;br /&gt;
&lt;br /&gt;
•	Gestionar desvíos en telefonía corporativa&lt;br /&gt;
&lt;br /&gt;
•	Gestionar la agenda de contactos&lt;br /&gt;
&lt;br /&gt;
•	Acceder al sistema de mensajería vocal con el objeto de escuchar y administrar los mensajes de voz&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Aspecto general ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El acceso al portal se realiza tras el correspondiente proceso de validación, tal y como se muestra en la imagen siguiente:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall1.png |250px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez se ha accedido al portal, éste se compone de seis pestañas:&lt;br /&gt;
&lt;br /&gt;
•	Contactos&lt;br /&gt;
&lt;br /&gt;
•	Historial&lt;br /&gt;
&lt;br /&gt;
•	Mensaje de voz&lt;br /&gt;
&lt;br /&gt;
•	Desvíos&lt;br /&gt;
&lt;br /&gt;
•	Ajustes&lt;br /&gt;
&lt;br /&gt;
•	Información&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall2-2.png |950px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En la parte superior derecha del portal, se encuentran los siguientes botones:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall3.png |450px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Botón !! Función &lt;br /&gt;
|- &lt;br /&gt;
| [[File:webcall4.png |50px|center]] || Botón para mostrar u ocultar la ventana del teléfono.&lt;br /&gt;
|-&lt;br /&gt;
| [[File:webcall5.png |250px|center]] || Muestra si una extensión está disponible o no dependiendo del color (verde = disponible, rojo = no disponible). Cada usuario puede configurar esta funcionalidad en la pestaña Ajustes\Extensiones\Disponibilidad General [[File:webcall6.png |200px|]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:webcall7.png |50px|center]] || Este botón se muestra cuando hay configurado uno o varios desvíos. Esta funcionalidad se explica en el apartado 4.4&lt;br /&gt;
|-&lt;br /&gt;
| [[File:webcall8.png |50px|center]] || Este botón se muestra cuando hay configurado un desvío incondicional por calendario. Esta funcionalidad se explica en el apartado 4.4 &lt;br /&gt;
|-&lt;br /&gt;
| [[File:webcall9.png |50px|center]] || Botón para salir del portal.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Pestañas en el portal de VIVAit Call ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pestaña Contactos ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La pestaña de contactos muestra al usuario los datos de los contactos añadidos en su agenda. Los datos que se muestran de cada contacto son: Nombre, Apellido, Empresa, Tipo agenda y Teléfono.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:WEBCALL1.png |800px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para añadir un nuevo contacto, hay que seleccionar el botón de la parte superior derecha &amp;quot;Añadir nuevo contacto&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Al darle a &amp;quot;añadir un nuevo contacto&amp;quot;, nos aparecerá una ventana con las siguientes opciones: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall13.png |800px|center]]&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;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre'''&lt;br /&gt;
|  | Nombre del usuario ('''Obligatorio''').&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Apellido 1'''&lt;br /&gt;
|  | Primer apellido del usuario.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Apellido 2'''&lt;br /&gt;
|  | Segundo apellido del usuario. &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre en pantalla'''&lt;br /&gt;
| | Nombre del usuario en pantalla. ('''Obligatorio''')&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Empresa'''&lt;br /&gt;
|  | Nombre de la empresa.&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;
| font-weight: bold;&amp;quot; | '''Código postal'''&lt;br /&gt;
|  | Código postal del usuario.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Localidad'''&lt;br /&gt;
|  | Localidad del usuario .&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Localidad'''&lt;br /&gt;
|  | Provincia del usuario .&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Número de teléfono'''&lt;br /&gt;
|  | Número de teléfono del usuario . ('''Obligatorio''')&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Tipo'''&lt;br /&gt;
|  | Fijo / Móvil&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Pestaña Historial===&lt;br /&gt;
&lt;br /&gt;
La pestaña de Historial muestra al usuario el listado de las llamadas realizadas y recibidas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall22.png |800px|center]]&lt;br /&gt;
&lt;br /&gt;
=== Pestaña Mensaje de voz===&lt;br /&gt;
&lt;br /&gt;
La pestaña de mensajes de voz muestra los mensajes que han llegado a nuestro buzón de voz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:web-call5.png|800px|center]]&lt;br /&gt;
&lt;br /&gt;
=== Pestaña Desvíos ===&lt;br /&gt;
&lt;br /&gt;
La pestaña Desvíos permite al usuario visualizar información de relevancia como usuario de telefonía corporativa, y realizar desvíos de usuario (no a nivel de extensión) en diferentes casuísticas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall16.png |800px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En esta pestaña podremos configurar cinco tipos de desvío: &lt;br /&gt;
&lt;br /&gt;
•	Desvío incondicional: Todas las llamadas se desvían.&lt;br /&gt;
&lt;br /&gt;
•	Desvío por calendario: Desvío de la llamada cuando se configura una fecha en el calendario.&lt;br /&gt;
&lt;br /&gt;
•	Desvío por no conectado: Desvío en caso de que se dirija una llamada al número de un usuario que no está registrado en el teléfono.&lt;br /&gt;
&lt;br /&gt;
•	Desvío por ocupado: Desvío cuando el usuario está ocupado (comunicando).&lt;br /&gt;
&lt;br /&gt;
•	Desvío por no contestado: Desvío de la llamada cuando el usuario no contesta.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Las opciones de la pestaña Desvíos se explican en la siguiente tabla:&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;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #0099ff;border-bottom:0.05pt solid #0099ff;border-left:0.05pt solid #0099ff;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''INCONDICIONAL'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío incondicional a mensajería'''&lt;br /&gt;
|| Desvía todas las llamadas que recibe el usuario 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 al que se desvía la llamada. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío incondicional por calendario'''&lt;br /&gt;
|| Permite al usuario gestionar su desvío por calendario&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por calendario'''&lt;br /&gt;
|| Pestaña para seleccionar fechas para el desvío&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #0099ff;border-bottom:0.05pt solid #0099ff;border-left:0.05pt solid #0099ff;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''NO CONECTADO'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por no conectado a mensajería'''&lt;br /&gt;
|| Desvía la llamada al buzón de voz cuando el usuario no está registrado en el teléfono. &lt;br /&gt;
|| Si / No. &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por no conectado'''&lt;br /&gt;
|| Número al que se desvía la llamada cuando el usuario no está registrado en el teléfono. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #0099ff;border-bottom:0.05pt solid #0099ff;border-left:0.05pt solid #0099ff;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''OCUPADO'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por ocupado a mensajería'''&lt;br /&gt;
|| Desvía la llamada al buzón de voz cuando el usuario está 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 al que se desvía la llamada cuando el usuario está ocupado. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #0099ff;border-bottom:0.05pt solid #0099ff;border-left:0.05pt solid #0099ff;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''NO CONTESTADO'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por no contestación a mensajería'''&lt;br /&gt;
|| Desvía la llamada al buzón de voz cuando el usuario no contesta.&lt;br /&gt;
|| Si / No. &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por no contestación'''&lt;br /&gt;
|| Número al que se desvía la llamada cuando el usuario no contesta. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Pestaña Ajustes ===&lt;br /&gt;
&lt;br /&gt;
El área de ajustes del portal nos da acceso a tres pestañas de gestión.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La pestaña de '''Ajustes/Dispositivos''' se muestra en la siguiente imagen: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall17.png |900px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En esta pestaña se configura el dispositivo de entrada y salida de audio, también sirve para establecer un tono de timbre.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La pestaña de '''Ajustes/Usuario''' se muestra en la siguiente imagen:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:WEBCALL2.png |900px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En esta pantalla los campos que se muestran sombreados no serán editables.&lt;br /&gt;
&lt;br /&gt;
Algunos campos son solo informativos por lo que siempre aparecerán sombreados, en otras ocasiones el usuario no dispondrá de permisos para editar los campos, pero los campos siempre aparecerán. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Las opciones de la pestaña de usuario se explican en la siguiente tabla:&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;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre'''&lt;br /&gt;
|  | Nombre del usuario ('''Obligatorio''').&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Apellido 1'''&lt;br /&gt;
|  | Primer apellido del usuario.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Apellido 2'''&lt;br /&gt;
|  | Segundo apellido del usuario. &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;
| font-weight: bold;&amp;quot; | '''Localidad'''&lt;br /&gt;
|  | Código postal del usuario.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Código Postal'''&lt;br /&gt;
| | Localidad del usuario .&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;
| font-weight: bold;&amp;quot; | '''Mensaje de texto'''&lt;br /&gt;
|  | Mensaje de texto a mostrar.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Idioma'''&lt;br /&gt;
| | Idioma del usuario.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Fecha de expiración'''&lt;br /&gt;
|   | Nombre de la cuenta del usuario. (solo lectura)&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Fecha último cambio de clave'''&lt;br /&gt;
|  |Clave de la cuenta (obligatorio). &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La pestaña '''Ajustes/extensiones''' muestra al usuario final las extensiones del sistema que tiene asignadas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:WEBCALL3.png |1000px|center]]&lt;/div&gt;</summary>
		<author><name>Alfredo.rodriguez</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1&amp;diff=16992</id>
		<title>Documentación de usuario VIVAit Call 5.1</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1&amp;diff=16992"/>
		<updated>2026-03-18T10:27:57Z</updated>

		<summary type="html">&lt;p&gt;Alfredo.rodriguez: /* Introducción */&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;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;big&amp;gt;&lt;br /&gt;
Versiones anteriores de [[Usuario Vivait Call versiones| Usuario Vivait Call]]&lt;br /&gt;
&lt;br /&gt;
[[Guía_rápida_Web_Call_V.2.3.0 | Guía rápida Web Call]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Los usuarios del sistema '''''VIVA'''''it Call disponen de una serie de herramientas de gestión que permiten manejar y configurar las principales características del sistema a nivel de usuario final:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
* Terminal telefónico, con diferentes características en función de la marca y modelo que el usuario disponga.&lt;br /&gt;
* Facilidades del sistema, accesibles desde cualquier terminal telefónico mediante la pulsación de combinaciones del teclado.&lt;br /&gt;
* Portal de usuario, para poder acceder a facilidades del sistema y otros servicios de manera más sencilla e intuitiva.&lt;br /&gt;
* Aplicación '''''VIVA'''''it Tracker, que permite realizar el seguimiento, escucha y descarga de grabaciones de llamadas para usuarios con permiso de acceso.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[#Introducción | Volver arriba]] / [https://vivait-wiki.mdnova.local/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1 Volver al indice]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1 | Volver al indice]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Terminales telefónicos ==&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''''VIVA'''''it Call está preparado para poder soportar gran cantidad de terminales telefónicos, de diversas marcas y modelos; se adjuntan manuales de usuario de los más habituales&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Marca !! Modelo !! Manual de uso &lt;br /&gt;
|- &lt;br /&gt;
| Grandstream || 1160 y 1165 ||[[medio:Guia rapida Grandstream 1160_1165.pdf|Guía rápida Grandstream 1160 y 1165]]&lt;br /&gt;
|- &lt;br /&gt;
| Grandstream || 1400 y 1405 ||[[medio:Guia rapida Grandstream 1400_1405.pdf|Guía rápida Grandstream 1400 y 405]]&lt;br /&gt;
|- &lt;br /&gt;
| Grandstream || GXP2130 ,GXP2140, GXP2160, GXP2135 y GXP2170||[[medio:Guia rapida Grandstream GXP2130_GXP2140_GXP2160.pdf|Guía rápida Grandstream GXP2130 ,GXP2140, GXP2160, GXP2135 y GXP2170]]&lt;br /&gt;
|- &lt;br /&gt;
| Grandstream || DP715 y DP710 ||[[medio:Guia rapida Grandstream DP715_DP710.pdf|Guía rápida Grandstream DP715 y DP710]]&lt;br /&gt;
|- &lt;br /&gt;
| Huawei || 7910 ||[[medio:Guia rapida Huawei 7910.pdf|Guía rápida Huawei 7910]] (En Inglés)&lt;br /&gt;
|- &lt;br /&gt;
| Huawei || 7950 || [[medio:Guia rapida Huawei 7950.pdf|Guía rápida Huawei 7950]] (En Inglés)&lt;br /&gt;
|- &lt;br /&gt;
| Mitel || 6865i ||[[medio:Guia rapida Mitel 6865i.pdf|Guía rápida Mitel 6865i]]&lt;br /&gt;
|- &lt;br /&gt;
| Mitel || 6867i ||[[medio:Guia rapida Mitel 6867i.pdf|Guía rápida Mitel 6867i]]&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| Aastra (Mitel)|| 6730i y 6731i  || [[medio: 6730i_6731i_qrg_symbol_keypad_English_270710.pdf | Guía rápida Aastra Mitel 6730i y 6731i]] (En Inglés)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| Aastra (Mitel)|| 6753i || [[medio:6753i_qrg_symbol_keypad_English_270710.pdf | Guía rápida Aastra Mitel 6753i ]] (En Inglés)&lt;br /&gt;
|- &lt;br /&gt;
| Snom || 710 ||[[medio:Guia rapida Snom 710.pdf|Guía rápida Snom 710]]&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T20P ||[[medio:Guia rapida Yealink T20p.pdf|Guía rápida Yealink T20P]]&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T21P ||[[medio:Guia rapida Yealink T21p.pdf|Guía rápida Yealink T21P]]&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T23G y T23P ||[[medio:Guia rapida Yealink T23P_T23G.pdf|Guía rápida Yealink T23G y T23P]] (En Inglés)&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T26P ||[[medio:Guia rapida Yealink T26p.pdf|Guía rápida Yealink T26P]]&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T27P ||[[medio:Guia rapida Yealink T27P.pdf|Guía rápida Yealink T27P]](En Inglés)&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T28P ||[[medio:Guia rapida Yealink T28p.pdf|Guía rápida Yealink T28P]]&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || VP530 ||[[medio:Guia rapida Yealink VP530.pdf|Guía rápida Yealink VP530]]&lt;br /&gt;
|- &lt;br /&gt;
| Cisco Unified || SIP 3905 ||[[medio:Guia rapida Cisco SIP 3905.pdf|Guía rápida Cisco SIP 3905]]&lt;br /&gt;
|- &lt;br /&gt;
| Cisco Unified || IP 6921 ||[[medio:Guia rapida Cisco IP 6921.pdf.pdf|Guía rápida Cisco IP 6921]]&lt;br /&gt;
|- &lt;br /&gt;
| Cisco Unified || IP 7960G y 7940g||[[medio:7940g_y_7960g REFER RAPIDA.pdf|Guía rápida Cisco IP 7960G y 7940g]]&lt;br /&gt;
|- &lt;br /&gt;
| Cisco Unified || IP 7962G y 7942g||[[medio:cisco_ipphone_7942g.pdf |Guía rápida Cisco IP 7962G y 7942g]]&lt;br /&gt;
|- &lt;br /&gt;
| Zoiper || Business Windows || [[medio:User Guide Zoiper 5 v.1.0.7.pdf| Manual de usuario de Zoiper 5]]&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[#Terminales_telefónicos | Volver arriba]] / [https://vivait-wiki.mdnova.local/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1 Volver al indice]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Facilidades del sistema ==&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Una de las maneras que tiene un usuario para poder realizar operaciones básicas sobre su extensión es mediante el uso de combinaciones de teclas, que le dan acceso a la activación o desactivación de diferentes facilidades en el sistema; la tabla adjunta muestra las facilidades disponibles por defecto.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
! '''Código a marcar '''!! Funcionalidad !! Modo de uso &lt;br /&gt;
|-&lt;br /&gt;
|*21#||Desvío extensión incondicional a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*21*numero||Desvío extensión incondicional||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*211#||Desvío extensión por no contesta a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*211*numero||Desvío extensión por no contesta||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*212#||Desvío extensión por ocupado a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*212*numero||Desvío extensión por ocupado||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*213#||Desvío extensión por fuera de servicio a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*213*numero||Desvío extensión por fuera de servicio||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
&amp;lt;!--|-&lt;br /&gt;
|*223*numero||Desvío usuario por no login||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación--&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|*31#||Desvío usuario incondicional mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*31*numero||Desvío usuario incondicional||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*311#||Desvío usuario por no contesta mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*311*numero||Desvío usuario por no contesta||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*312#||Desvío usuario por ocupado a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*312*numero||Desvío usuario por ocupado||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*313#||Desvío usuario por no login a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*313*numero||Desvío usuario por no login||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*32#||Desvio usuario por calendario. ||Activación: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*33#||Desvio extensión por calendario.||Activación: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*401#||Login movilidad avanzada||Activación: Pulsar código + destino + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*402#||Logout movilidad avanzada||Activación: Pulsar código + destino + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*41*||Capturar extensión||Activación: Pulsar código + destino + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*8||Capturar llamada de grupo de captura||Activación: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*42#||Leer buzón|| Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*43#||Activar retrollamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*44#||Cancelar retrollamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*45#||Login movilidad||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*46#||Logout movilidad||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*47#||Login en grupos corporativos||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*48#||Logout en grupos corporativos||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*491#||Pausa en grupos corporativos||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*492#||Quitar pausa en grupos corporativos||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*50#||Movilidad||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*54#||Intrusión a extensión||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*55#||Intrusión a VDN o Grupo||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*500#||Eco||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*501#|| Tono de prueba||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*60#||Movilidad llamada a llamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*61#||Categoría usuario en llamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*65#||Categoría temporal de teléfono||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*66#||Fin Categoría temporal de teléfono||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*72#||Movilidad llamada a llamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|70106 ||Cancelar retrollamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[#Facilidades_del_sistema | Volver arriba]] / [https://vivait-wiki.mdnova.local/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1 Volver al indice]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Retrollamadas ===&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
El funcionamiento será el siguiente:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*La retrollamada queda programada de extensión física &amp;quot;A&amp;quot; a extensión física &amp;quot;B&amp;quot; (no queda programada a numeraciones de usuarios); esto no quiere decir que no podamos programar una retrollamada cuando hemos llamado a una numeración de usuario, pero queda programada en la extensión física en la que está ese usuario en ese momento.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*El número llamado &amp;quot;B&amp;quot; podrá ser derivado de varias causas:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
::&amp;quot;A&amp;quot; ha llamado a &amp;quot;B&amp;quot; &lt;br /&gt;
::&amp;quot;A&amp;quot; ha llamado a un usuario ubicado en &amp;quot;B&amp;quot; &lt;br /&gt;
::&amp;quot;A&amp;quot; ha llamado a un destino desviado a &amp;quot;B&amp;quot; &lt;br /&gt;
::&amp;quot;A&amp;quot; ha llamado a un destino y por preruta acaba en &amp;quot;B&amp;quot; &lt;br /&gt;
::...&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*Las causas por las que se podrá programar una retrollamada son:&lt;br /&gt;
::&amp;quot;B&amp;quot; está ocupada&lt;br /&gt;
::&amp;quot;B&amp;quot; no contesta&lt;br /&gt;
::&amp;quot;B&amp;quot; está ocupada y no contesta (ha sonado en línea 2--&amp;gt; )&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''Solo podremos programar la retrollamada si el sistema devuelve: extensión ocupada o no contesta'''&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Estas dos últimas casuísticas son iguales a efectos de usuario, pero no a efectos internos...&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Si una llamada va a buzón, salta a un grupo ACD, a una IVR...entonces NO habrá retrollamada (porque se considera contestada)&lt;br /&gt;
 &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*Para programar una retrollamada se pulsa el código de facilidad (*43#) una vez colgada la misma; el sistema recordará la última llamada durante un período de tiempo configurable; aunque entre una llamada en &amp;quot;A&amp;quot;, este podrá programar retrollamada a la última saliente si sigue dentro del período&lt;br /&gt;
*Se podrá abortar una retrollamada ( (*44#), pero esto no borrará la última llamada (podemos arrepentirnos de haber abortado la retrollamada)&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[#Facilidades_del_sistema | Volver arriba]] / [https://vivait-wiki.mdnova.local/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1 Volver al indice]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Portal de usuario ==&lt;br /&gt;
&lt;br /&gt;
El portal de usuario VIVAit Call permite que determinadas funcionalidades del sistema puedan ser accesibles por los usuarios finales desde una interfaz mucho más cómoda y amigable que el telefónico; de esta forma, desde un portal fácilmente accesible los usuarios finales podrán: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Gestionar las principales características del sistema, incluyendo:&lt;br /&gt;
&lt;br /&gt;
•	Principales datos de contacto&lt;br /&gt;
&lt;br /&gt;
•	Gestionar desvíos en telefonía corporativa&lt;br /&gt;
&lt;br /&gt;
•	Gestionar la agenda de contactos&lt;br /&gt;
&lt;br /&gt;
•	Acceder al sistema de mensajería vocal con el objeto de escuchar y administrar los mensajes de voz&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Aspecto general ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El acceso al portal se realiza tras el correspondiente proceso de validación, tal y como se muestra en la imagen siguiente:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall1.png |250px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez se ha accedido al portal, éste se compone de seis pestañas:&lt;br /&gt;
&lt;br /&gt;
•	Contactos&lt;br /&gt;
&lt;br /&gt;
•	Historial&lt;br /&gt;
&lt;br /&gt;
•	Mensaje de voz&lt;br /&gt;
&lt;br /&gt;
•	Desvíos&lt;br /&gt;
&lt;br /&gt;
•	Ajustes&lt;br /&gt;
&lt;br /&gt;
•	Información&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall2-2.png |950px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En la parte superior derecha del portal, se encuentran los siguientes botones:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall3.png |450px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Botón !! Función &lt;br /&gt;
|- &lt;br /&gt;
| [[File:webcall4.png |50px|center]] || Botón para mostrar u ocultar la ventana del teléfono.&lt;br /&gt;
|-&lt;br /&gt;
| [[File:webcall5.png |250px|center]] || Muestra si una extensión está disponible o no dependiendo del color (verde = disponible, rojo = no disponible). Cada usuario puede configurar esta funcionalidad en la pestaña Ajustes\Extensiones\Disponibilidad General [[File:webcall6.png |200px|]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:webcall7.png |50px|center]] || Este botón se muestra cuando hay configurado uno o varios desvíos. Esta funcionalidad se explica en el apartado 4.4&lt;br /&gt;
|-&lt;br /&gt;
| [[File:webcall8.png |50px|center]] || Este botón se muestra cuando hay configurado un desvío incondicional por calendario. Esta funcionalidad se explica en el apartado 4.4 &lt;br /&gt;
|-&lt;br /&gt;
| [[File:webcall9.png |50px|center]] || Botón para salir del portal.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Pestañas en el portal de VIVAit Call ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pestaña Contactos ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La pestaña de contactos muestra al usuario los datos de los contactos añadidos en su agenda. Los datos que se muestran de cada contacto son: Nombre, Apellido, Empresa, Tipo agenda y Teléfono.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:WEBCALL1.png |800px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para añadir un nuevo contacto, hay que seleccionar el botón de la parte superior derecha &amp;quot;Añadir nuevo contacto&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Al darle a &amp;quot;añadir un nuevo contacto&amp;quot;, nos aparecerá una ventana con las siguientes opciones: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall13.png |800px|center]]&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;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre'''&lt;br /&gt;
|  | Nombre del usuario ('''Obligatorio''').&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Apellido 1'''&lt;br /&gt;
|  | Primer apellido del usuario.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Apellido 2'''&lt;br /&gt;
|  | Segundo apellido del usuario. &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre en pantalla'''&lt;br /&gt;
| | Nombre del usuario en pantalla. ('''Obligatorio''')&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Empresa'''&lt;br /&gt;
|  | Nombre de la empresa.&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;
| font-weight: bold;&amp;quot; | '''Código postal'''&lt;br /&gt;
|  | Código postal del usuario.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Localidad'''&lt;br /&gt;
|  | Localidad del usuario .&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Localidad'''&lt;br /&gt;
|  | Provincia del usuario .&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Número de teléfono'''&lt;br /&gt;
|  | Número de teléfono del usuario . ('''Obligatorio''')&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Tipo'''&lt;br /&gt;
|  | Fijo / Móvil&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Pestaña Historial===&lt;br /&gt;
&lt;br /&gt;
La pestaña de Historial muestra al usuario el listado de las llamadas realizadas y recibidas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall22.png |800px|center]]&lt;br /&gt;
&lt;br /&gt;
=== Pestaña Mensaje de voz===&lt;br /&gt;
&lt;br /&gt;
La pestaña de mensajes de voz muestra los mensajes que han llegado a nuestro buzón de voz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:web-call5.png|800px|center]]&lt;br /&gt;
&lt;br /&gt;
=== Pestaña Desvíos ===&lt;br /&gt;
&lt;br /&gt;
La pestaña Desvíos permite al usuario visualizar información de relevancia como usuario de telefonía corporativa, y realizar desvíos de usuario (no a nivel de extensión) en diferentes casuísticas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall16.png |800px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En esta pestaña podremos configurar cinco tipos de desvío: &lt;br /&gt;
&lt;br /&gt;
•	Desvío incondicional: Todas las llamadas se desvían.&lt;br /&gt;
&lt;br /&gt;
•	Desvío por calendario: Desvío de la llamada cuando se configura una fecha en el calendario.&lt;br /&gt;
&lt;br /&gt;
•	Desvío por no conectado: Desvío en caso de que se dirija una llamada al número de un usuario que no está registrado en el teléfono.&lt;br /&gt;
&lt;br /&gt;
•	Desvío por ocupado: Desvío cuando el usuario está ocupado (comunicando).&lt;br /&gt;
&lt;br /&gt;
•	Desvío por no contestado: Desvío de la llamada cuando el usuario no contesta.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Las opciones de la pestaña Desvíos se explican en la siguiente tabla:&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;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #0099ff;border-bottom:0.05pt solid #0099ff;border-left:0.05pt solid #0099ff;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''INCONDICIONAL'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío incondicional a mensajería'''&lt;br /&gt;
|| Desvía todas las llamadas que recibe el usuario 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 al que se desvía la llamada. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío incondicional por calendario'''&lt;br /&gt;
|| Permite al usuario gestionar su desvío por calendario&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por calendario'''&lt;br /&gt;
|| Pestaña para seleccionar fechas para el desvío&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #0099ff;border-bottom:0.05pt solid #0099ff;border-left:0.05pt solid #0099ff;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''NO CONECTADO'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por no conectado a mensajería'''&lt;br /&gt;
|| Desvía la llamada al buzón de voz cuando el usuario no está registrado en el teléfono. &lt;br /&gt;
|| Si / No. &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por no conectado'''&lt;br /&gt;
|| Número al que se desvía la llamada cuando el usuario no está registrado en el teléfono. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #0099ff;border-bottom:0.05pt solid #0099ff;border-left:0.05pt solid #0099ff;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''OCUPADO'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por ocupado a mensajería'''&lt;br /&gt;
|| Desvía la llamada al buzón de voz cuando el usuario está 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 al que se desvía la llamada cuando el usuario está ocupado. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #0099ff;border-bottom:0.05pt solid #0099ff;border-left:0.05pt solid #0099ff;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''NO CONTESTADO'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por no contestación a mensajería'''&lt;br /&gt;
|| Desvía la llamada al buzón de voz cuando el usuario no contesta.&lt;br /&gt;
|| Si / No. &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por no contestación'''&lt;br /&gt;
|| Número al que se desvía la llamada cuando el usuario no contesta. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Pestaña Ajustes ===&lt;br /&gt;
&lt;br /&gt;
El área de ajustes del portal nos da acceso a tres pestañas de gestión.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La pestaña de '''Ajustes/Dispositivos''' se muestra en la siguiente imagen: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall17.png |900px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En esta pestaña se configura el dispositivo de entrada y salida de audio, también sirve para establecer un tono de timbre.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La pestaña de '''Ajustes/Usuario''' se muestra en la siguiente imagen:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:WEBCALL2.png |900px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En esta pantalla los campos que se muestran sombreados no serán editables.&lt;br /&gt;
&lt;br /&gt;
Algunos campos son solo informativos por lo que siempre aparecerán sombreados, en otras ocasiones el usuario no dispondrá de permisos para editar los campos, pero los campos siempre aparecerán. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Las opciones de la pestaña de usuario se explican en la siguiente tabla:&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;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre'''&lt;br /&gt;
|  | Nombre del usuario ('''Obligatorio''').&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Apellido 1'''&lt;br /&gt;
|  | Primer apellido del usuario.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Apellido 2'''&lt;br /&gt;
|  | Segundo apellido del usuario. &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;
| font-weight: bold;&amp;quot; | '''Localidad'''&lt;br /&gt;
|  | Código postal del usuario.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Código Postal'''&lt;br /&gt;
| | Localidad del usuario .&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;
| font-weight: bold;&amp;quot; | '''Mensaje de texto'''&lt;br /&gt;
|  | Mensaje de texto a mostrar.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Idioma'''&lt;br /&gt;
| | Idioma del usuario.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Fecha de expiración'''&lt;br /&gt;
|   | Nombre de la cuenta del usuario. (solo lectura)&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Fecha último cambio de clave'''&lt;br /&gt;
|  |Clave de la cuenta (obligatorio). &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La pestaña '''Ajustes/extensiones''' muestra al usuario final las extensiones del sistema que tiene asignadas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:WEBCALL3.png |1000px|center]]&lt;/div&gt;</summary>
		<author><name>Alfredo.rodriguez</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1&amp;diff=16991</id>
		<title>Documentación de usuario VIVAit Call 5.1</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1&amp;diff=16991"/>
		<updated>2026-03-18T10:27:39Z</updated>

		<summary type="html">&lt;p&gt;Alfredo.rodriguez: /* Introducción */&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;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;big&amp;gt;&lt;br /&gt;
Versiones anteriores de [[Usuario Vivait Call versiones| Usuario Vivait Call]]&lt;br /&gt;
&lt;br /&gt;
[[Guía_rápida_Web_Call_V.2.3.0 | Guía rápida Web Call]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Los usuarios del sistema '''''VIVA'''''it Call disponen de una serie de herramientas de gestión que permiten manejar y configurar las principales características del sistema a nivel de usuario final:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
* Terminal telefónico, con diferentes características en función de la marca y modelo que el usuario disponga.&lt;br /&gt;
* Facilidades del sistema, accesibles desde cualquier terminal telefónico mediante la pulsación de combinaciones del teclado.&lt;br /&gt;
* Portal de usuario, para poder acceder a facilidades del sistema y otros servicios de manera más sencilla e intuitiva.&lt;br /&gt;
* Aplicación '''''VIVA'''''it Tracker, que permite realizar el seguimiento, escucha y descarga de grabaciones de llamadas para usuarios con permiso de acceso.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[#Introducción | Volver arriba]] / [https://vivait-wiki.mdnova.local/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1 Volver al indice]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1 | Volver al indice]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Terminales telefónicos ==&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''''VIVA'''''it Call está preparado para poder soportar gran cantidad de terminales telefónicos, de diversas marcas y modelos; se adjuntan manuales de usuario de los más habituales&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Marca !! Modelo !! Manual de uso &lt;br /&gt;
|- &lt;br /&gt;
| Grandstream || 1160 y 1165 ||[[medio:Guia rapida Grandstream 1160_1165.pdf|Guía rápida Grandstream 1160 y 1165]]&lt;br /&gt;
|- &lt;br /&gt;
| Grandstream || 1400 y 1405 ||[[medio:Guia rapida Grandstream 1400_1405.pdf|Guía rápida Grandstream 1400 y 405]]&lt;br /&gt;
|- &lt;br /&gt;
| Grandstream || GXP2130 ,GXP2140, GXP2160, GXP2135 y GXP2170||[[medio:Guia rapida Grandstream GXP2130_GXP2140_GXP2160.pdf|Guía rápida Grandstream GXP2130 ,GXP2140, GXP2160, GXP2135 y GXP2170]]&lt;br /&gt;
|- &lt;br /&gt;
| Grandstream || DP715 y DP710 ||[[medio:Guia rapida Grandstream DP715_DP710.pdf|Guía rápida Grandstream DP715 y DP710]]&lt;br /&gt;
|- &lt;br /&gt;
| Huawei || 7910 ||[[medio:Guia rapida Huawei 7910.pdf|Guía rápida Huawei 7910]] (En Inglés)&lt;br /&gt;
|- &lt;br /&gt;
| Huawei || 7950 || [[medio:Guia rapida Huawei 7950.pdf|Guía rápida Huawei 7950]] (En Inglés)&lt;br /&gt;
|- &lt;br /&gt;
| Mitel || 6865i ||[[medio:Guia rapida Mitel 6865i.pdf|Guía rápida Mitel 6865i]]&lt;br /&gt;
|- &lt;br /&gt;
| Mitel || 6867i ||[[medio:Guia rapida Mitel 6867i.pdf|Guía rápida Mitel 6867i]]&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| Aastra (Mitel)|| 6730i y 6731i  || [[medio: 6730i_6731i_qrg_symbol_keypad_English_270710.pdf | Guía rápida Aastra Mitel 6730i y 6731i]] (En Inglés)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| Aastra (Mitel)|| 6753i || [[medio:6753i_qrg_symbol_keypad_English_270710.pdf | Guía rápida Aastra Mitel 6753i ]] (En Inglés)&lt;br /&gt;
|- &lt;br /&gt;
| Snom || 710 ||[[medio:Guia rapida Snom 710.pdf|Guía rápida Snom 710]]&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T20P ||[[medio:Guia rapida Yealink T20p.pdf|Guía rápida Yealink T20P]]&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T21P ||[[medio:Guia rapida Yealink T21p.pdf|Guía rápida Yealink T21P]]&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T23G y T23P ||[[medio:Guia rapida Yealink T23P_T23G.pdf|Guía rápida Yealink T23G y T23P]] (En Inglés)&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T26P ||[[medio:Guia rapida Yealink T26p.pdf|Guía rápida Yealink T26P]]&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T27P ||[[medio:Guia rapida Yealink T27P.pdf|Guía rápida Yealink T27P]](En Inglés)&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T28P ||[[medio:Guia rapida Yealink T28p.pdf|Guía rápida Yealink T28P]]&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || VP530 ||[[medio:Guia rapida Yealink VP530.pdf|Guía rápida Yealink VP530]]&lt;br /&gt;
|- &lt;br /&gt;
| Cisco Unified || SIP 3905 ||[[medio:Guia rapida Cisco SIP 3905.pdf|Guía rápida Cisco SIP 3905]]&lt;br /&gt;
|- &lt;br /&gt;
| Cisco Unified || IP 6921 ||[[medio:Guia rapida Cisco IP 6921.pdf.pdf|Guía rápida Cisco IP 6921]]&lt;br /&gt;
|- &lt;br /&gt;
| Cisco Unified || IP 7960G y 7940g||[[medio:7940g_y_7960g REFER RAPIDA.pdf|Guía rápida Cisco IP 7960G y 7940g]]&lt;br /&gt;
|- &lt;br /&gt;
| Cisco Unified || IP 7962G y 7942g||[[medio:cisco_ipphone_7942g.pdf |Guía rápida Cisco IP 7962G y 7942g]]&lt;br /&gt;
|- &lt;br /&gt;
| Zoiper || Business Windows || [[medio:User Guide Zoiper 5 v.1.0.7.pdf| Manual de usuario de Zoiper 5]]&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[#Terminales_telefónicos | Volver arriba]] / [https://vivait-wiki.mdnova.local/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1 Volver al indice]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Facilidades del sistema ==&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Una de las maneras que tiene un usuario para poder realizar operaciones básicas sobre su extensión es mediante el uso de combinaciones de teclas, que le dan acceso a la activación o desactivación de diferentes facilidades en el sistema; la tabla adjunta muestra las facilidades disponibles por defecto.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
! '''Código a marcar '''!! Funcionalidad !! Modo de uso &lt;br /&gt;
|-&lt;br /&gt;
|*21#||Desvío extensión incondicional a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*21*numero||Desvío extensión incondicional||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*211#||Desvío extensión por no contesta a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*211*numero||Desvío extensión por no contesta||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*212#||Desvío extensión por ocupado a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*212*numero||Desvío extensión por ocupado||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*213#||Desvío extensión por fuera de servicio a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*213*numero||Desvío extensión por fuera de servicio||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
&amp;lt;!--|-&lt;br /&gt;
|*223*numero||Desvío usuario por no login||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación--&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|*31#||Desvío usuario incondicional mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*31*numero||Desvío usuario incondicional||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*311#||Desvío usuario por no contesta mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*311*numero||Desvío usuario por no contesta||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*312#||Desvío usuario por ocupado a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*312*numero||Desvío usuario por ocupado||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*313#||Desvío usuario por no login a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*313*numero||Desvío usuario por no login||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*32#||Desvio usuario por calendario. ||Activación: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*33#||Desvio extensión por calendario.||Activación: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*401#||Login movilidad avanzada||Activación: Pulsar código + destino + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*402#||Logout movilidad avanzada||Activación: Pulsar código + destino + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*41*||Capturar extensión||Activación: Pulsar código + destino + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*8||Capturar llamada de grupo de captura||Activación: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*42#||Leer buzón|| Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*43#||Activar retrollamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*44#||Cancelar retrollamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*45#||Login movilidad||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*46#||Logout movilidad||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*47#||Login en grupos corporativos||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*48#||Logout en grupos corporativos||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*491#||Pausa en grupos corporativos||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*492#||Quitar pausa en grupos corporativos||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*50#||Movilidad||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*54#||Intrusión a extensión||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*55#||Intrusión a VDN o Grupo||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*500#||Eco||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*501#|| Tono de prueba||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*60#||Movilidad llamada a llamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*61#||Categoría usuario en llamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*65#||Categoría temporal de teléfono||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*66#||Fin Categoría temporal de teléfono||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*72#||Movilidad llamada a llamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|70106 ||Cancelar retrollamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[#Facilidades_del_sistema | Volver arriba]] / [https://vivait-wiki.mdnova.local/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1 Volver al indice]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Retrollamadas ===&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
El funcionamiento será el siguiente:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*La retrollamada queda programada de extensión física &amp;quot;A&amp;quot; a extensión física &amp;quot;B&amp;quot; (no queda programada a numeraciones de usuarios); esto no quiere decir que no podamos programar una retrollamada cuando hemos llamado a una numeración de usuario, pero queda programada en la extensión física en la que está ese usuario en ese momento.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*El número llamado &amp;quot;B&amp;quot; podrá ser derivado de varias causas:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
::&amp;quot;A&amp;quot; ha llamado a &amp;quot;B&amp;quot; &lt;br /&gt;
::&amp;quot;A&amp;quot; ha llamado a un usuario ubicado en &amp;quot;B&amp;quot; &lt;br /&gt;
::&amp;quot;A&amp;quot; ha llamado a un destino desviado a &amp;quot;B&amp;quot; &lt;br /&gt;
::&amp;quot;A&amp;quot; ha llamado a un destino y por preruta acaba en &amp;quot;B&amp;quot; &lt;br /&gt;
::...&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*Las causas por las que se podrá programar una retrollamada son:&lt;br /&gt;
::&amp;quot;B&amp;quot; está ocupada&lt;br /&gt;
::&amp;quot;B&amp;quot; no contesta&lt;br /&gt;
::&amp;quot;B&amp;quot; está ocupada y no contesta (ha sonado en línea 2--&amp;gt; )&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''Solo podremos programar la retrollamada si el sistema devuelve: extensión ocupada o no contesta'''&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Estas dos últimas casuísticas son iguales a efectos de usuario, pero no a efectos internos...&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Si una llamada va a buzón, salta a un grupo ACD, a una IVR...entonces NO habrá retrollamada (porque se considera contestada)&lt;br /&gt;
 &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*Para programar una retrollamada se pulsa el código de facilidad (*43#) una vez colgada la misma; el sistema recordará la última llamada durante un período de tiempo configurable; aunque entre una llamada en &amp;quot;A&amp;quot;, este podrá programar retrollamada a la última saliente si sigue dentro del período&lt;br /&gt;
*Se podrá abortar una retrollamada ( (*44#), pero esto no borrará la última llamada (podemos arrepentirnos de haber abortado la retrollamada)&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[#Facilidades_del_sistema | Volver arriba]] / [https://vivait-wiki.mdnova.local/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1 Volver al indice]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Portal de usuario ==&lt;br /&gt;
&lt;br /&gt;
El portal de usuario VIVAit Call permite que determinadas funcionalidades del sistema puedan ser accesibles por los usuarios finales desde una interfaz mucho más cómoda y amigable que el telefónico; de esta forma, desde un portal fácilmente accesible los usuarios finales podrán: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Gestionar las principales características del sistema, incluyendo:&lt;br /&gt;
&lt;br /&gt;
•	Principales datos de contacto&lt;br /&gt;
&lt;br /&gt;
•	Gestionar desvíos en telefonía corporativa&lt;br /&gt;
&lt;br /&gt;
•	Gestionar la agenda de contactos&lt;br /&gt;
&lt;br /&gt;
•	Acceder al sistema de mensajería vocal con el objeto de escuchar y administrar los mensajes de voz&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Aspecto general ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El acceso al portal se realiza tras el correspondiente proceso de validación, tal y como se muestra en la imagen siguiente:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall1.png |250px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez se ha accedido al portal, éste se compone de seis pestañas:&lt;br /&gt;
&lt;br /&gt;
•	Contactos&lt;br /&gt;
&lt;br /&gt;
•	Historial&lt;br /&gt;
&lt;br /&gt;
•	Mensaje de voz&lt;br /&gt;
&lt;br /&gt;
•	Desvíos&lt;br /&gt;
&lt;br /&gt;
•	Ajustes&lt;br /&gt;
&lt;br /&gt;
•	Información&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall2-2.png |950px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En la parte superior derecha del portal, se encuentran los siguientes botones:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall3.png |450px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Botón !! Función &lt;br /&gt;
|- &lt;br /&gt;
| [[File:webcall4.png |50px|center]] || Botón para mostrar u ocultar la ventana del teléfono.&lt;br /&gt;
|-&lt;br /&gt;
| [[File:webcall5.png |250px|center]] || Muestra si una extensión está disponible o no dependiendo del color (verde = disponible, rojo = no disponible). Cada usuario puede configurar esta funcionalidad en la pestaña Ajustes\Extensiones\Disponibilidad General [[File:webcall6.png |200px|]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:webcall7.png |50px|center]] || Este botón se muestra cuando hay configurado uno o varios desvíos. Esta funcionalidad se explica en el apartado 4.4&lt;br /&gt;
|-&lt;br /&gt;
| [[File:webcall8.png |50px|center]] || Este botón se muestra cuando hay configurado un desvío incondicional por calendario. Esta funcionalidad se explica en el apartado 4.4 &lt;br /&gt;
|-&lt;br /&gt;
| [[File:webcall9.png |50px|center]] || Botón para salir del portal.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Pestañas en el portal de VIVAit Call ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pestaña Contactos ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La pestaña de contactos muestra al usuario los datos de los contactos añadidos en su agenda. Los datos que se muestran de cada contacto son: Nombre, Apellido, Empresa, Tipo agenda y Teléfono.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:WEBCALL1.png |800px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para añadir un nuevo contacto, hay que seleccionar el botón de la parte superior derecha &amp;quot;Añadir nuevo contacto&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Al darle a &amp;quot;añadir un nuevo contacto&amp;quot;, nos aparecerá una ventana con las siguientes opciones: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall13.png |800px|center]]&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;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre'''&lt;br /&gt;
|  | Nombre del usuario ('''Obligatorio''').&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Apellido 1'''&lt;br /&gt;
|  | Primer apellido del usuario.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Apellido 2'''&lt;br /&gt;
|  | Segundo apellido del usuario. &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre en pantalla'''&lt;br /&gt;
| | Nombre del usuario en pantalla. ('''Obligatorio''')&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Empresa'''&lt;br /&gt;
|  | Nombre de la empresa.&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;
| font-weight: bold;&amp;quot; | '''Código postal'''&lt;br /&gt;
|  | Código postal del usuario.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Localidad'''&lt;br /&gt;
|  | Localidad del usuario .&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Localidad'''&lt;br /&gt;
|  | Provincia del usuario .&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Número de teléfono'''&lt;br /&gt;
|  | Número de teléfono del usuario . ('''Obligatorio''')&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Tipo'''&lt;br /&gt;
|  | Fijo / Móvil&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Pestaña Historial===&lt;br /&gt;
&lt;br /&gt;
La pestaña de Historial muestra al usuario el listado de las llamadas realizadas y recibidas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall22.png |800px|center]]&lt;br /&gt;
&lt;br /&gt;
=== Pestaña Mensaje de voz===&lt;br /&gt;
&lt;br /&gt;
La pestaña de mensajes de voz muestra los mensajes que han llegado a nuestro buzón de voz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:web-call5.png|800px|center]]&lt;br /&gt;
&lt;br /&gt;
=== Pestaña Desvíos ===&lt;br /&gt;
&lt;br /&gt;
La pestaña Desvíos permite al usuario visualizar información de relevancia como usuario de telefonía corporativa, y realizar desvíos de usuario (no a nivel de extensión) en diferentes casuísticas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall16.png |800px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En esta pestaña podremos configurar cinco tipos de desvío: &lt;br /&gt;
&lt;br /&gt;
•	Desvío incondicional: Todas las llamadas se desvían.&lt;br /&gt;
&lt;br /&gt;
•	Desvío por calendario: Desvío de la llamada cuando se configura una fecha en el calendario.&lt;br /&gt;
&lt;br /&gt;
•	Desvío por no conectado: Desvío en caso de que se dirija una llamada al número de un usuario que no está registrado en el teléfono.&lt;br /&gt;
&lt;br /&gt;
•	Desvío por ocupado: Desvío cuando el usuario está ocupado (comunicando).&lt;br /&gt;
&lt;br /&gt;
•	Desvío por no contestado: Desvío de la llamada cuando el usuario no contesta.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Las opciones de la pestaña Desvíos se explican en la siguiente tabla:&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;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #0099ff;border-bottom:0.05pt solid #0099ff;border-left:0.05pt solid #0099ff;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''INCONDICIONAL'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío incondicional a mensajería'''&lt;br /&gt;
|| Desvía todas las llamadas que recibe el usuario 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 al que se desvía la llamada. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío incondicional por calendario'''&lt;br /&gt;
|| Permite al usuario gestionar su desvío por calendario&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por calendario'''&lt;br /&gt;
|| Pestaña para seleccionar fechas para el desvío&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #0099ff;border-bottom:0.05pt solid #0099ff;border-left:0.05pt solid #0099ff;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''NO CONECTADO'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por no conectado a mensajería'''&lt;br /&gt;
|| Desvía la llamada al buzón de voz cuando el usuario no está registrado en el teléfono. &lt;br /&gt;
|| Si / No. &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por no conectado'''&lt;br /&gt;
|| Número al que se desvía la llamada cuando el usuario no está registrado en el teléfono. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #0099ff;border-bottom:0.05pt solid #0099ff;border-left:0.05pt solid #0099ff;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''OCUPADO'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por ocupado a mensajería'''&lt;br /&gt;
|| Desvía la llamada al buzón de voz cuando el usuario está 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 al que se desvía la llamada cuando el usuario está ocupado. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #0099ff;border-bottom:0.05pt solid #0099ff;border-left:0.05pt solid #0099ff;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''NO CONTESTADO'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por no contestación a mensajería'''&lt;br /&gt;
|| Desvía la llamada al buzón de voz cuando el usuario no contesta.&lt;br /&gt;
|| Si / No. &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por no contestación'''&lt;br /&gt;
|| Número al que se desvía la llamada cuando el usuario no contesta. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Pestaña Ajustes ===&lt;br /&gt;
&lt;br /&gt;
El área de ajustes del portal nos da acceso a tres pestañas de gestión.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La pestaña de '''Ajustes/Dispositivos''' se muestra en la siguiente imagen: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall17.png |900px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En esta pestaña se configura el dispositivo de entrada y salida de audio, también sirve para establecer un tono de timbre.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La pestaña de '''Ajustes/Usuario''' se muestra en la siguiente imagen:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:WEBCALL2.png |900px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En esta pantalla los campos que se muestran sombreados no serán editables.&lt;br /&gt;
&lt;br /&gt;
Algunos campos son solo informativos por lo que siempre aparecerán sombreados, en otras ocasiones el usuario no dispondrá de permisos para editar los campos, pero los campos siempre aparecerán. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Las opciones de la pestaña de usuario se explican en la siguiente tabla:&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;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre'''&lt;br /&gt;
|  | Nombre del usuario ('''Obligatorio''').&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Apellido 1'''&lt;br /&gt;
|  | Primer apellido del usuario.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Apellido 2'''&lt;br /&gt;
|  | Segundo apellido del usuario. &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;
| font-weight: bold;&amp;quot; | '''Localidad'''&lt;br /&gt;
|  | Código postal del usuario.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Código Postal'''&lt;br /&gt;
| | Localidad del usuario .&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;
| font-weight: bold;&amp;quot; | '''Mensaje de texto'''&lt;br /&gt;
|  | Mensaje de texto a mostrar.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Idioma'''&lt;br /&gt;
| | Idioma del usuario.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Fecha de expiración'''&lt;br /&gt;
|   | Nombre de la cuenta del usuario. (solo lectura)&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Fecha último cambio de clave'''&lt;br /&gt;
|  |Clave de la cuenta (obligatorio). &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La pestaña '''Ajustes/extensiones''' muestra al usuario final las extensiones del sistema que tiene asignadas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:WEBCALL3.png |1000px|center]]&lt;/div&gt;</summary>
		<author><name>Alfredo.rodriguez</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1&amp;diff=16990</id>
		<title>Documentación de usuario VIVAit Call 5.1</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1&amp;diff=16990"/>
		<updated>2026-03-18T10:27:10Z</updated>

		<summary type="html">&lt;p&gt;Alfredo.rodriguez: /* Introducción */&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;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;big&amp;gt;&lt;br /&gt;
Versiones anteriores de [[Usuario Vivait Call versiones| Usuario Vivait Call]]&lt;br /&gt;
&lt;br /&gt;
[[Guía_rápida_Web_Call_V.2.3.0 | Guía rápida Web Call]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Los usuarios del sistema '''''VIVA'''''it Call disponen de una serie de herramientas de gestión que permiten manejar y configurar las principales características del sistema a nivel de usuario final:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
* Terminal telefónico, con diferentes características en función de la marca y modelo que el usuario disponga.&lt;br /&gt;
* Facilidades del sistema, accesibles desde cualquier terminal telefónico mediante la pulsación de combinaciones del teclado.&lt;br /&gt;
* Portal de usuario, para poder acceder a facilidades del sistema y otros servicios de manera más sencilla e intuitiva.&lt;br /&gt;
* Aplicación '''''VIVA'''''it Tracker, que permite realizar el seguimiento, escucha y descarga de grabaciones de llamadas para usuarios con permiso de acceso.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[#Introducción | Volver arriba]] / [https://vivait-wiki.mdnova.local/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1 Volver al indice]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1|Volver al indice]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Terminales telefónicos ==&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''''VIVA'''''it Call está preparado para poder soportar gran cantidad de terminales telefónicos, de diversas marcas y modelos; se adjuntan manuales de usuario de los más habituales&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Marca !! Modelo !! Manual de uso &lt;br /&gt;
|- &lt;br /&gt;
| Grandstream || 1160 y 1165 ||[[medio:Guia rapida Grandstream 1160_1165.pdf|Guía rápida Grandstream 1160 y 1165]]&lt;br /&gt;
|- &lt;br /&gt;
| Grandstream || 1400 y 1405 ||[[medio:Guia rapida Grandstream 1400_1405.pdf|Guía rápida Grandstream 1400 y 405]]&lt;br /&gt;
|- &lt;br /&gt;
| Grandstream || GXP2130 ,GXP2140, GXP2160, GXP2135 y GXP2170||[[medio:Guia rapida Grandstream GXP2130_GXP2140_GXP2160.pdf|Guía rápida Grandstream GXP2130 ,GXP2140, GXP2160, GXP2135 y GXP2170]]&lt;br /&gt;
|- &lt;br /&gt;
| Grandstream || DP715 y DP710 ||[[medio:Guia rapida Grandstream DP715_DP710.pdf|Guía rápida Grandstream DP715 y DP710]]&lt;br /&gt;
|- &lt;br /&gt;
| Huawei || 7910 ||[[medio:Guia rapida Huawei 7910.pdf|Guía rápida Huawei 7910]] (En Inglés)&lt;br /&gt;
|- &lt;br /&gt;
| Huawei || 7950 || [[medio:Guia rapida Huawei 7950.pdf|Guía rápida Huawei 7950]] (En Inglés)&lt;br /&gt;
|- &lt;br /&gt;
| Mitel || 6865i ||[[medio:Guia rapida Mitel 6865i.pdf|Guía rápida Mitel 6865i]]&lt;br /&gt;
|- &lt;br /&gt;
| Mitel || 6867i ||[[medio:Guia rapida Mitel 6867i.pdf|Guía rápida Mitel 6867i]]&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| Aastra (Mitel)|| 6730i y 6731i  || [[medio: 6730i_6731i_qrg_symbol_keypad_English_270710.pdf | Guía rápida Aastra Mitel 6730i y 6731i]] (En Inglés)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| Aastra (Mitel)|| 6753i || [[medio:6753i_qrg_symbol_keypad_English_270710.pdf | Guía rápida Aastra Mitel 6753i ]] (En Inglés)&lt;br /&gt;
|- &lt;br /&gt;
| Snom || 710 ||[[medio:Guia rapida Snom 710.pdf|Guía rápida Snom 710]]&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T20P ||[[medio:Guia rapida Yealink T20p.pdf|Guía rápida Yealink T20P]]&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T21P ||[[medio:Guia rapida Yealink T21p.pdf|Guía rápida Yealink T21P]]&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T23G y T23P ||[[medio:Guia rapida Yealink T23P_T23G.pdf|Guía rápida Yealink T23G y T23P]] (En Inglés)&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T26P ||[[medio:Guia rapida Yealink T26p.pdf|Guía rápida Yealink T26P]]&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T27P ||[[medio:Guia rapida Yealink T27P.pdf|Guía rápida Yealink T27P]](En Inglés)&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T28P ||[[medio:Guia rapida Yealink T28p.pdf|Guía rápida Yealink T28P]]&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || VP530 ||[[medio:Guia rapida Yealink VP530.pdf|Guía rápida Yealink VP530]]&lt;br /&gt;
|- &lt;br /&gt;
| Cisco Unified || SIP 3905 ||[[medio:Guia rapida Cisco SIP 3905.pdf|Guía rápida Cisco SIP 3905]]&lt;br /&gt;
|- &lt;br /&gt;
| Cisco Unified || IP 6921 ||[[medio:Guia rapida Cisco IP 6921.pdf.pdf|Guía rápida Cisco IP 6921]]&lt;br /&gt;
|- &lt;br /&gt;
| Cisco Unified || IP 7960G y 7940g||[[medio:7940g_y_7960g REFER RAPIDA.pdf|Guía rápida Cisco IP 7960G y 7940g]]&lt;br /&gt;
|- &lt;br /&gt;
| Cisco Unified || IP 7962G y 7942g||[[medio:cisco_ipphone_7942g.pdf |Guía rápida Cisco IP 7962G y 7942g]]&lt;br /&gt;
|- &lt;br /&gt;
| Zoiper || Business Windows || [[medio:User Guide Zoiper 5 v.1.0.7.pdf| Manual de usuario de Zoiper 5]]&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[#Terminales_telefónicos | Volver arriba]] / [https://vivait-wiki.mdnova.local/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1 Volver al indice]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Facilidades del sistema ==&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Una de las maneras que tiene un usuario para poder realizar operaciones básicas sobre su extensión es mediante el uso de combinaciones de teclas, que le dan acceso a la activación o desactivación de diferentes facilidades en el sistema; la tabla adjunta muestra las facilidades disponibles por defecto.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
! '''Código a marcar '''!! Funcionalidad !! Modo de uso &lt;br /&gt;
|-&lt;br /&gt;
|*21#||Desvío extensión incondicional a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*21*numero||Desvío extensión incondicional||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*211#||Desvío extensión por no contesta a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*211*numero||Desvío extensión por no contesta||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*212#||Desvío extensión por ocupado a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*212*numero||Desvío extensión por ocupado||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*213#||Desvío extensión por fuera de servicio a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*213*numero||Desvío extensión por fuera de servicio||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
&amp;lt;!--|-&lt;br /&gt;
|*223*numero||Desvío usuario por no login||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación--&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|*31#||Desvío usuario incondicional mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*31*numero||Desvío usuario incondicional||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*311#||Desvío usuario por no contesta mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*311*numero||Desvío usuario por no contesta||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*312#||Desvío usuario por ocupado a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*312*numero||Desvío usuario por ocupado||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*313#||Desvío usuario por no login a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*313*numero||Desvío usuario por no login||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*32#||Desvio usuario por calendario. ||Activación: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*33#||Desvio extensión por calendario.||Activación: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*401#||Login movilidad avanzada||Activación: Pulsar código + destino + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*402#||Logout movilidad avanzada||Activación: Pulsar código + destino + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*41*||Capturar extensión||Activación: Pulsar código + destino + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*8||Capturar llamada de grupo de captura||Activación: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*42#||Leer buzón|| Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*43#||Activar retrollamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*44#||Cancelar retrollamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*45#||Login movilidad||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*46#||Logout movilidad||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*47#||Login en grupos corporativos||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*48#||Logout en grupos corporativos||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*491#||Pausa en grupos corporativos||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*492#||Quitar pausa en grupos corporativos||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*50#||Movilidad||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*54#||Intrusión a extensión||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*55#||Intrusión a VDN o Grupo||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*500#||Eco||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*501#|| Tono de prueba||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*60#||Movilidad llamada a llamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*61#||Categoría usuario en llamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*65#||Categoría temporal de teléfono||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*66#||Fin Categoría temporal de teléfono||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*72#||Movilidad llamada a llamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|70106 ||Cancelar retrollamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[#Facilidades_del_sistema | Volver arriba]] / [https://vivait-wiki.mdnova.local/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1 Volver al indice]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Retrollamadas ===&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
El funcionamiento será el siguiente:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*La retrollamada queda programada de extensión física &amp;quot;A&amp;quot; a extensión física &amp;quot;B&amp;quot; (no queda programada a numeraciones de usuarios); esto no quiere decir que no podamos programar una retrollamada cuando hemos llamado a una numeración de usuario, pero queda programada en la extensión física en la que está ese usuario en ese momento.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*El número llamado &amp;quot;B&amp;quot; podrá ser derivado de varias causas:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
::&amp;quot;A&amp;quot; ha llamado a &amp;quot;B&amp;quot; &lt;br /&gt;
::&amp;quot;A&amp;quot; ha llamado a un usuario ubicado en &amp;quot;B&amp;quot; &lt;br /&gt;
::&amp;quot;A&amp;quot; ha llamado a un destino desviado a &amp;quot;B&amp;quot; &lt;br /&gt;
::&amp;quot;A&amp;quot; ha llamado a un destino y por preruta acaba en &amp;quot;B&amp;quot; &lt;br /&gt;
::...&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*Las causas por las que se podrá programar una retrollamada son:&lt;br /&gt;
::&amp;quot;B&amp;quot; está ocupada&lt;br /&gt;
::&amp;quot;B&amp;quot; no contesta&lt;br /&gt;
::&amp;quot;B&amp;quot; está ocupada y no contesta (ha sonado en línea 2--&amp;gt; )&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''Solo podremos programar la retrollamada si el sistema devuelve: extensión ocupada o no contesta'''&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Estas dos últimas casuísticas son iguales a efectos de usuario, pero no a efectos internos...&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Si una llamada va a buzón, salta a un grupo ACD, a una IVR...entonces NO habrá retrollamada (porque se considera contestada)&lt;br /&gt;
 &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*Para programar una retrollamada se pulsa el código de facilidad (*43#) una vez colgada la misma; el sistema recordará la última llamada durante un período de tiempo configurable; aunque entre una llamada en &amp;quot;A&amp;quot;, este podrá programar retrollamada a la última saliente si sigue dentro del período&lt;br /&gt;
*Se podrá abortar una retrollamada ( (*44#), pero esto no borrará la última llamada (podemos arrepentirnos de haber abortado la retrollamada)&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[#Facilidades_del_sistema | Volver arriba]] / [https://vivait-wiki.mdnova.local/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1 Volver al indice]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Portal de usuario ==&lt;br /&gt;
&lt;br /&gt;
El portal de usuario VIVAit Call permite que determinadas funcionalidades del sistema puedan ser accesibles por los usuarios finales desde una interfaz mucho más cómoda y amigable que el telefónico; de esta forma, desde un portal fácilmente accesible los usuarios finales podrán: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Gestionar las principales características del sistema, incluyendo:&lt;br /&gt;
&lt;br /&gt;
•	Principales datos de contacto&lt;br /&gt;
&lt;br /&gt;
•	Gestionar desvíos en telefonía corporativa&lt;br /&gt;
&lt;br /&gt;
•	Gestionar la agenda de contactos&lt;br /&gt;
&lt;br /&gt;
•	Acceder al sistema de mensajería vocal con el objeto de escuchar y administrar los mensajes de voz&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Aspecto general ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El acceso al portal se realiza tras el correspondiente proceso de validación, tal y como se muestra en la imagen siguiente:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall1.png |250px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez se ha accedido al portal, éste se compone de seis pestañas:&lt;br /&gt;
&lt;br /&gt;
•	Contactos&lt;br /&gt;
&lt;br /&gt;
•	Historial&lt;br /&gt;
&lt;br /&gt;
•	Mensaje de voz&lt;br /&gt;
&lt;br /&gt;
•	Desvíos&lt;br /&gt;
&lt;br /&gt;
•	Ajustes&lt;br /&gt;
&lt;br /&gt;
•	Información&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall2-2.png |950px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En la parte superior derecha del portal, se encuentran los siguientes botones:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall3.png |450px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Botón !! Función &lt;br /&gt;
|- &lt;br /&gt;
| [[File:webcall4.png |50px|center]] || Botón para mostrar u ocultar la ventana del teléfono.&lt;br /&gt;
|-&lt;br /&gt;
| [[File:webcall5.png |250px|center]] || Muestra si una extensión está disponible o no dependiendo del color (verde = disponible, rojo = no disponible). Cada usuario puede configurar esta funcionalidad en la pestaña Ajustes\Extensiones\Disponibilidad General [[File:webcall6.png |200px|]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:webcall7.png |50px|center]] || Este botón se muestra cuando hay configurado uno o varios desvíos. Esta funcionalidad se explica en el apartado 4.4&lt;br /&gt;
|-&lt;br /&gt;
| [[File:webcall8.png |50px|center]] || Este botón se muestra cuando hay configurado un desvío incondicional por calendario. Esta funcionalidad se explica en el apartado 4.4 &lt;br /&gt;
|-&lt;br /&gt;
| [[File:webcall9.png |50px|center]] || Botón para salir del portal.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Pestañas en el portal de VIVAit Call ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pestaña Contactos ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La pestaña de contactos muestra al usuario los datos de los contactos añadidos en su agenda. Los datos que se muestran de cada contacto son: Nombre, Apellido, Empresa, Tipo agenda y Teléfono.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:WEBCALL1.png |800px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para añadir un nuevo contacto, hay que seleccionar el botón de la parte superior derecha &amp;quot;Añadir nuevo contacto&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Al darle a &amp;quot;añadir un nuevo contacto&amp;quot;, nos aparecerá una ventana con las siguientes opciones: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall13.png |800px|center]]&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;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre'''&lt;br /&gt;
|  | Nombre del usuario ('''Obligatorio''').&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Apellido 1'''&lt;br /&gt;
|  | Primer apellido del usuario.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Apellido 2'''&lt;br /&gt;
|  | Segundo apellido del usuario. &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre en pantalla'''&lt;br /&gt;
| | Nombre del usuario en pantalla. ('''Obligatorio''')&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Empresa'''&lt;br /&gt;
|  | Nombre de la empresa.&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;
| font-weight: bold;&amp;quot; | '''Código postal'''&lt;br /&gt;
|  | Código postal del usuario.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Localidad'''&lt;br /&gt;
|  | Localidad del usuario .&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Localidad'''&lt;br /&gt;
|  | Provincia del usuario .&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Número de teléfono'''&lt;br /&gt;
|  | Número de teléfono del usuario . ('''Obligatorio''')&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Tipo'''&lt;br /&gt;
|  | Fijo / Móvil&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Pestaña Historial===&lt;br /&gt;
&lt;br /&gt;
La pestaña de Historial muestra al usuario el listado de las llamadas realizadas y recibidas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall22.png |800px|center]]&lt;br /&gt;
&lt;br /&gt;
=== Pestaña Mensaje de voz===&lt;br /&gt;
&lt;br /&gt;
La pestaña de mensajes de voz muestra los mensajes que han llegado a nuestro buzón de voz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:web-call5.png|800px|center]]&lt;br /&gt;
&lt;br /&gt;
=== Pestaña Desvíos ===&lt;br /&gt;
&lt;br /&gt;
La pestaña Desvíos permite al usuario visualizar información de relevancia como usuario de telefonía corporativa, y realizar desvíos de usuario (no a nivel de extensión) en diferentes casuísticas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall16.png |800px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En esta pestaña podremos configurar cinco tipos de desvío: &lt;br /&gt;
&lt;br /&gt;
•	Desvío incondicional: Todas las llamadas se desvían.&lt;br /&gt;
&lt;br /&gt;
•	Desvío por calendario: Desvío de la llamada cuando se configura una fecha en el calendario.&lt;br /&gt;
&lt;br /&gt;
•	Desvío por no conectado: Desvío en caso de que se dirija una llamada al número de un usuario que no está registrado en el teléfono.&lt;br /&gt;
&lt;br /&gt;
•	Desvío por ocupado: Desvío cuando el usuario está ocupado (comunicando).&lt;br /&gt;
&lt;br /&gt;
•	Desvío por no contestado: Desvío de la llamada cuando el usuario no contesta.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Las opciones de la pestaña Desvíos se explican en la siguiente tabla:&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;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #0099ff;border-bottom:0.05pt solid #0099ff;border-left:0.05pt solid #0099ff;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''INCONDICIONAL'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío incondicional a mensajería'''&lt;br /&gt;
|| Desvía todas las llamadas que recibe el usuario 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 al que se desvía la llamada. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío incondicional por calendario'''&lt;br /&gt;
|| Permite al usuario gestionar su desvío por calendario&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por calendario'''&lt;br /&gt;
|| Pestaña para seleccionar fechas para el desvío&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #0099ff;border-bottom:0.05pt solid #0099ff;border-left:0.05pt solid #0099ff;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''NO CONECTADO'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por no conectado a mensajería'''&lt;br /&gt;
|| Desvía la llamada al buzón de voz cuando el usuario no está registrado en el teléfono. &lt;br /&gt;
|| Si / No. &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por no conectado'''&lt;br /&gt;
|| Número al que se desvía la llamada cuando el usuario no está registrado en el teléfono. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #0099ff;border-bottom:0.05pt solid #0099ff;border-left:0.05pt solid #0099ff;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''OCUPADO'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por ocupado a mensajería'''&lt;br /&gt;
|| Desvía la llamada al buzón de voz cuando el usuario está 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 al que se desvía la llamada cuando el usuario está ocupado. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #0099ff;border-bottom:0.05pt solid #0099ff;border-left:0.05pt solid #0099ff;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''NO CONTESTADO'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por no contestación a mensajería'''&lt;br /&gt;
|| Desvía la llamada al buzón de voz cuando el usuario no contesta.&lt;br /&gt;
|| Si / No. &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por no contestación'''&lt;br /&gt;
|| Número al que se desvía la llamada cuando el usuario no contesta. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Pestaña Ajustes ===&lt;br /&gt;
&lt;br /&gt;
El área de ajustes del portal nos da acceso a tres pestañas de gestión.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La pestaña de '''Ajustes/Dispositivos''' se muestra en la siguiente imagen: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall17.png |900px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En esta pestaña se configura el dispositivo de entrada y salida de audio, también sirve para establecer un tono de timbre.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La pestaña de '''Ajustes/Usuario''' se muestra en la siguiente imagen:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:WEBCALL2.png |900px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En esta pantalla los campos que se muestran sombreados no serán editables.&lt;br /&gt;
&lt;br /&gt;
Algunos campos son solo informativos por lo que siempre aparecerán sombreados, en otras ocasiones el usuario no dispondrá de permisos para editar los campos, pero los campos siempre aparecerán. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Las opciones de la pestaña de usuario se explican en la siguiente tabla:&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;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre'''&lt;br /&gt;
|  | Nombre del usuario ('''Obligatorio''').&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Apellido 1'''&lt;br /&gt;
|  | Primer apellido del usuario.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Apellido 2'''&lt;br /&gt;
|  | Segundo apellido del usuario. &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;
| font-weight: bold;&amp;quot; | '''Localidad'''&lt;br /&gt;
|  | Código postal del usuario.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Código Postal'''&lt;br /&gt;
| | Localidad del usuario .&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;
| font-weight: bold;&amp;quot; | '''Mensaje de texto'''&lt;br /&gt;
|  | Mensaje de texto a mostrar.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Idioma'''&lt;br /&gt;
| | Idioma del usuario.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Fecha de expiración'''&lt;br /&gt;
|   | Nombre de la cuenta del usuario. (solo lectura)&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Fecha último cambio de clave'''&lt;br /&gt;
|  |Clave de la cuenta (obligatorio). &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La pestaña '''Ajustes/extensiones''' muestra al usuario final las extensiones del sistema que tiene asignadas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:WEBCALL3.png |1000px|center]]&lt;/div&gt;</summary>
		<author><name>Alfredo.rodriguez</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1&amp;diff=16989</id>
		<title>Documentación de usuario VIVAit Call 5.1</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1&amp;diff=16989"/>
		<updated>2026-03-18T10:26:53Z</updated>

		<summary type="html">&lt;p&gt;Alfredo.rodriguez: /* Introducción */&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;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;big&amp;gt;&lt;br /&gt;
Versiones anteriores de [[Usuario Vivait Call versiones| Usuario Vivait Call]]&lt;br /&gt;
&lt;br /&gt;
[[Guía_rápida_Web_Call_V.2.3.0 | Guía rápida Web Call]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Los usuarios del sistema '''''VIVA'''''it Call disponen de una serie de herramientas de gestión que permiten manejar y configurar las principales características del sistema a nivel de usuario final:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
* Terminal telefónico, con diferentes características en función de la marca y modelo que el usuario disponga.&lt;br /&gt;
* Facilidades del sistema, accesibles desde cualquier terminal telefónico mediante la pulsación de combinaciones del teclado.&lt;br /&gt;
* Portal de usuario, para poder acceder a facilidades del sistema y otros servicios de manera más sencilla e intuitiva.&lt;br /&gt;
* Aplicación '''''VIVA'''''it Tracker, que permite realizar el seguimiento, escucha y descarga de grabaciones de llamadas para usuarios con permiso de acceso.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[#Introducción | Volver arriba]] / [https://vivait-wiki.mdnova.local/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1 Volver al indice]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1 | Volver al indice]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Terminales telefónicos ==&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''''VIVA'''''it Call está preparado para poder soportar gran cantidad de terminales telefónicos, de diversas marcas y modelos; se adjuntan manuales de usuario de los más habituales&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Marca !! Modelo !! Manual de uso &lt;br /&gt;
|- &lt;br /&gt;
| Grandstream || 1160 y 1165 ||[[medio:Guia rapida Grandstream 1160_1165.pdf|Guía rápida Grandstream 1160 y 1165]]&lt;br /&gt;
|- &lt;br /&gt;
| Grandstream || 1400 y 1405 ||[[medio:Guia rapida Grandstream 1400_1405.pdf|Guía rápida Grandstream 1400 y 405]]&lt;br /&gt;
|- &lt;br /&gt;
| Grandstream || GXP2130 ,GXP2140, GXP2160, GXP2135 y GXP2170||[[medio:Guia rapida Grandstream GXP2130_GXP2140_GXP2160.pdf|Guía rápida Grandstream GXP2130 ,GXP2140, GXP2160, GXP2135 y GXP2170]]&lt;br /&gt;
|- &lt;br /&gt;
| Grandstream || DP715 y DP710 ||[[medio:Guia rapida Grandstream DP715_DP710.pdf|Guía rápida Grandstream DP715 y DP710]]&lt;br /&gt;
|- &lt;br /&gt;
| Huawei || 7910 ||[[medio:Guia rapida Huawei 7910.pdf|Guía rápida Huawei 7910]] (En Inglés)&lt;br /&gt;
|- &lt;br /&gt;
| Huawei || 7950 || [[medio:Guia rapida Huawei 7950.pdf|Guía rápida Huawei 7950]] (En Inglés)&lt;br /&gt;
|- &lt;br /&gt;
| Mitel || 6865i ||[[medio:Guia rapida Mitel 6865i.pdf|Guía rápida Mitel 6865i]]&lt;br /&gt;
|- &lt;br /&gt;
| Mitel || 6867i ||[[medio:Guia rapida Mitel 6867i.pdf|Guía rápida Mitel 6867i]]&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| Aastra (Mitel)|| 6730i y 6731i  || [[medio: 6730i_6731i_qrg_symbol_keypad_English_270710.pdf | Guía rápida Aastra Mitel 6730i y 6731i]] (En Inglés)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| Aastra (Mitel)|| 6753i || [[medio:6753i_qrg_symbol_keypad_English_270710.pdf | Guía rápida Aastra Mitel 6753i ]] (En Inglés)&lt;br /&gt;
|- &lt;br /&gt;
| Snom || 710 ||[[medio:Guia rapida Snom 710.pdf|Guía rápida Snom 710]]&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T20P ||[[medio:Guia rapida Yealink T20p.pdf|Guía rápida Yealink T20P]]&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T21P ||[[medio:Guia rapida Yealink T21p.pdf|Guía rápida Yealink T21P]]&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T23G y T23P ||[[medio:Guia rapida Yealink T23P_T23G.pdf|Guía rápida Yealink T23G y T23P]] (En Inglés)&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T26P ||[[medio:Guia rapida Yealink T26p.pdf|Guía rápida Yealink T26P]]&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T27P ||[[medio:Guia rapida Yealink T27P.pdf|Guía rápida Yealink T27P]](En Inglés)&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T28P ||[[medio:Guia rapida Yealink T28p.pdf|Guía rápida Yealink T28P]]&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || VP530 ||[[medio:Guia rapida Yealink VP530.pdf|Guía rápida Yealink VP530]]&lt;br /&gt;
|- &lt;br /&gt;
| Cisco Unified || SIP 3905 ||[[medio:Guia rapida Cisco SIP 3905.pdf|Guía rápida Cisco SIP 3905]]&lt;br /&gt;
|- &lt;br /&gt;
| Cisco Unified || IP 6921 ||[[medio:Guia rapida Cisco IP 6921.pdf.pdf|Guía rápida Cisco IP 6921]]&lt;br /&gt;
|- &lt;br /&gt;
| Cisco Unified || IP 7960G y 7940g||[[medio:7940g_y_7960g REFER RAPIDA.pdf|Guía rápida Cisco IP 7960G y 7940g]]&lt;br /&gt;
|- &lt;br /&gt;
| Cisco Unified || IP 7962G y 7942g||[[medio:cisco_ipphone_7942g.pdf |Guía rápida Cisco IP 7962G y 7942g]]&lt;br /&gt;
|- &lt;br /&gt;
| Zoiper || Business Windows || [[medio:User Guide Zoiper 5 v.1.0.7.pdf| Manual de usuario de Zoiper 5]]&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[#Terminales_telefónicos | Volver arriba]] / [https://vivait-wiki.mdnova.local/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1 Volver al indice]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Facilidades del sistema ==&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Una de las maneras que tiene un usuario para poder realizar operaciones básicas sobre su extensión es mediante el uso de combinaciones de teclas, que le dan acceso a la activación o desactivación de diferentes facilidades en el sistema; la tabla adjunta muestra las facilidades disponibles por defecto.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
! '''Código a marcar '''!! Funcionalidad !! Modo de uso &lt;br /&gt;
|-&lt;br /&gt;
|*21#||Desvío extensión incondicional a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*21*numero||Desvío extensión incondicional||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*211#||Desvío extensión por no contesta a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*211*numero||Desvío extensión por no contesta||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*212#||Desvío extensión por ocupado a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*212*numero||Desvío extensión por ocupado||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*213#||Desvío extensión por fuera de servicio a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*213*numero||Desvío extensión por fuera de servicio||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
&amp;lt;!--|-&lt;br /&gt;
|*223*numero||Desvío usuario por no login||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación--&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|*31#||Desvío usuario incondicional mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*31*numero||Desvío usuario incondicional||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*311#||Desvío usuario por no contesta mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*311*numero||Desvío usuario por no contesta||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*312#||Desvío usuario por ocupado a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*312*numero||Desvío usuario por ocupado||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*313#||Desvío usuario por no login a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*313*numero||Desvío usuario por no login||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*32#||Desvio usuario por calendario. ||Activación: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*33#||Desvio extensión por calendario.||Activación: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*401#||Login movilidad avanzada||Activación: Pulsar código + destino + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*402#||Logout movilidad avanzada||Activación: Pulsar código + destino + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*41*||Capturar extensión||Activación: Pulsar código + destino + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*8||Capturar llamada de grupo de captura||Activación: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*42#||Leer buzón|| Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*43#||Activar retrollamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*44#||Cancelar retrollamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*45#||Login movilidad||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*46#||Logout movilidad||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*47#||Login en grupos corporativos||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*48#||Logout en grupos corporativos||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*491#||Pausa en grupos corporativos||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*492#||Quitar pausa en grupos corporativos||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*50#||Movilidad||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*54#||Intrusión a extensión||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*55#||Intrusión a VDN o Grupo||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*500#||Eco||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*501#|| Tono de prueba||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*60#||Movilidad llamada a llamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*61#||Categoría usuario en llamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*65#||Categoría temporal de teléfono||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*66#||Fin Categoría temporal de teléfono||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*72#||Movilidad llamada a llamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|70106 ||Cancelar retrollamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[#Facilidades_del_sistema | Volver arriba]] / [https://vivait-wiki.mdnova.local/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1 Volver al indice]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Retrollamadas ===&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
El funcionamiento será el siguiente:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*La retrollamada queda programada de extensión física &amp;quot;A&amp;quot; a extensión física &amp;quot;B&amp;quot; (no queda programada a numeraciones de usuarios); esto no quiere decir que no podamos programar una retrollamada cuando hemos llamado a una numeración de usuario, pero queda programada en la extensión física en la que está ese usuario en ese momento.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*El número llamado &amp;quot;B&amp;quot; podrá ser derivado de varias causas:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
::&amp;quot;A&amp;quot; ha llamado a &amp;quot;B&amp;quot; &lt;br /&gt;
::&amp;quot;A&amp;quot; ha llamado a un usuario ubicado en &amp;quot;B&amp;quot; &lt;br /&gt;
::&amp;quot;A&amp;quot; ha llamado a un destino desviado a &amp;quot;B&amp;quot; &lt;br /&gt;
::&amp;quot;A&amp;quot; ha llamado a un destino y por preruta acaba en &amp;quot;B&amp;quot; &lt;br /&gt;
::...&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*Las causas por las que se podrá programar una retrollamada son:&lt;br /&gt;
::&amp;quot;B&amp;quot; está ocupada&lt;br /&gt;
::&amp;quot;B&amp;quot; no contesta&lt;br /&gt;
::&amp;quot;B&amp;quot; está ocupada y no contesta (ha sonado en línea 2--&amp;gt; )&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''Solo podremos programar la retrollamada si el sistema devuelve: extensión ocupada o no contesta'''&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Estas dos últimas casuísticas son iguales a efectos de usuario, pero no a efectos internos...&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Si una llamada va a buzón, salta a un grupo ACD, a una IVR...entonces NO habrá retrollamada (porque se considera contestada)&lt;br /&gt;
 &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*Para programar una retrollamada se pulsa el código de facilidad (*43#) una vez colgada la misma; el sistema recordará la última llamada durante un período de tiempo configurable; aunque entre una llamada en &amp;quot;A&amp;quot;, este podrá programar retrollamada a la última saliente si sigue dentro del período&lt;br /&gt;
*Se podrá abortar una retrollamada ( (*44#), pero esto no borrará la última llamada (podemos arrepentirnos de haber abortado la retrollamada)&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[#Facilidades_del_sistema | Volver arriba]] / [https://vivait-wiki.mdnova.local/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1 Volver al indice]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Portal de usuario ==&lt;br /&gt;
&lt;br /&gt;
El portal de usuario VIVAit Call permite que determinadas funcionalidades del sistema puedan ser accesibles por los usuarios finales desde una interfaz mucho más cómoda y amigable que el telefónico; de esta forma, desde un portal fácilmente accesible los usuarios finales podrán: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Gestionar las principales características del sistema, incluyendo:&lt;br /&gt;
&lt;br /&gt;
•	Principales datos de contacto&lt;br /&gt;
&lt;br /&gt;
•	Gestionar desvíos en telefonía corporativa&lt;br /&gt;
&lt;br /&gt;
•	Gestionar la agenda de contactos&lt;br /&gt;
&lt;br /&gt;
•	Acceder al sistema de mensajería vocal con el objeto de escuchar y administrar los mensajes de voz&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Aspecto general ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El acceso al portal se realiza tras el correspondiente proceso de validación, tal y como se muestra en la imagen siguiente:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall1.png |250px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez se ha accedido al portal, éste se compone de seis pestañas:&lt;br /&gt;
&lt;br /&gt;
•	Contactos&lt;br /&gt;
&lt;br /&gt;
•	Historial&lt;br /&gt;
&lt;br /&gt;
•	Mensaje de voz&lt;br /&gt;
&lt;br /&gt;
•	Desvíos&lt;br /&gt;
&lt;br /&gt;
•	Ajustes&lt;br /&gt;
&lt;br /&gt;
•	Información&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall2-2.png |950px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En la parte superior derecha del portal, se encuentran los siguientes botones:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall3.png |450px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Botón !! Función &lt;br /&gt;
|- &lt;br /&gt;
| [[File:webcall4.png |50px|center]] || Botón para mostrar u ocultar la ventana del teléfono.&lt;br /&gt;
|-&lt;br /&gt;
| [[File:webcall5.png |250px|center]] || Muestra si una extensión está disponible o no dependiendo del color (verde = disponible, rojo = no disponible). Cada usuario puede configurar esta funcionalidad en la pestaña Ajustes\Extensiones\Disponibilidad General [[File:webcall6.png |200px|]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:webcall7.png |50px|center]] || Este botón se muestra cuando hay configurado uno o varios desvíos. Esta funcionalidad se explica en el apartado 4.4&lt;br /&gt;
|-&lt;br /&gt;
| [[File:webcall8.png |50px|center]] || Este botón se muestra cuando hay configurado un desvío incondicional por calendario. Esta funcionalidad se explica en el apartado 4.4 &lt;br /&gt;
|-&lt;br /&gt;
| [[File:webcall9.png |50px|center]] || Botón para salir del portal.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Pestañas en el portal de VIVAit Call ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pestaña Contactos ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La pestaña de contactos muestra al usuario los datos de los contactos añadidos en su agenda. Los datos que se muestran de cada contacto son: Nombre, Apellido, Empresa, Tipo agenda y Teléfono.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:WEBCALL1.png |800px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para añadir un nuevo contacto, hay que seleccionar el botón de la parte superior derecha &amp;quot;Añadir nuevo contacto&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Al darle a &amp;quot;añadir un nuevo contacto&amp;quot;, nos aparecerá una ventana con las siguientes opciones: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall13.png |800px|center]]&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;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre'''&lt;br /&gt;
|  | Nombre del usuario ('''Obligatorio''').&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Apellido 1'''&lt;br /&gt;
|  | Primer apellido del usuario.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Apellido 2'''&lt;br /&gt;
|  | Segundo apellido del usuario. &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre en pantalla'''&lt;br /&gt;
| | Nombre del usuario en pantalla. ('''Obligatorio''')&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Empresa'''&lt;br /&gt;
|  | Nombre de la empresa.&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;
| font-weight: bold;&amp;quot; | '''Código postal'''&lt;br /&gt;
|  | Código postal del usuario.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Localidad'''&lt;br /&gt;
|  | Localidad del usuario .&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Localidad'''&lt;br /&gt;
|  | Provincia del usuario .&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Número de teléfono'''&lt;br /&gt;
|  | Número de teléfono del usuario . ('''Obligatorio''')&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Tipo'''&lt;br /&gt;
|  | Fijo / Móvil&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Pestaña Historial===&lt;br /&gt;
&lt;br /&gt;
La pestaña de Historial muestra al usuario el listado de las llamadas realizadas y recibidas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall22.png |800px|center]]&lt;br /&gt;
&lt;br /&gt;
=== Pestaña Mensaje de voz===&lt;br /&gt;
&lt;br /&gt;
La pestaña de mensajes de voz muestra los mensajes que han llegado a nuestro buzón de voz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:web-call5.png|800px|center]]&lt;br /&gt;
&lt;br /&gt;
=== Pestaña Desvíos ===&lt;br /&gt;
&lt;br /&gt;
La pestaña Desvíos permite al usuario visualizar información de relevancia como usuario de telefonía corporativa, y realizar desvíos de usuario (no a nivel de extensión) en diferentes casuísticas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall16.png |800px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En esta pestaña podremos configurar cinco tipos de desvío: &lt;br /&gt;
&lt;br /&gt;
•	Desvío incondicional: Todas las llamadas se desvían.&lt;br /&gt;
&lt;br /&gt;
•	Desvío por calendario: Desvío de la llamada cuando se configura una fecha en el calendario.&lt;br /&gt;
&lt;br /&gt;
•	Desvío por no conectado: Desvío en caso de que se dirija una llamada al número de un usuario que no está registrado en el teléfono.&lt;br /&gt;
&lt;br /&gt;
•	Desvío por ocupado: Desvío cuando el usuario está ocupado (comunicando).&lt;br /&gt;
&lt;br /&gt;
•	Desvío por no contestado: Desvío de la llamada cuando el usuario no contesta.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Las opciones de la pestaña Desvíos se explican en la siguiente tabla:&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;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #0099ff;border-bottom:0.05pt solid #0099ff;border-left:0.05pt solid #0099ff;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''INCONDICIONAL'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío incondicional a mensajería'''&lt;br /&gt;
|| Desvía todas las llamadas que recibe el usuario 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 al que se desvía la llamada. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío incondicional por calendario'''&lt;br /&gt;
|| Permite al usuario gestionar su desvío por calendario&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por calendario'''&lt;br /&gt;
|| Pestaña para seleccionar fechas para el desvío&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #0099ff;border-bottom:0.05pt solid #0099ff;border-left:0.05pt solid #0099ff;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''NO CONECTADO'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por no conectado a mensajería'''&lt;br /&gt;
|| Desvía la llamada al buzón de voz cuando el usuario no está registrado en el teléfono. &lt;br /&gt;
|| Si / No. &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por no conectado'''&lt;br /&gt;
|| Número al que se desvía la llamada cuando el usuario no está registrado en el teléfono. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #0099ff;border-bottom:0.05pt solid #0099ff;border-left:0.05pt solid #0099ff;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''OCUPADO'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por ocupado a mensajería'''&lt;br /&gt;
|| Desvía la llamada al buzón de voz cuando el usuario está 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 al que se desvía la llamada cuando el usuario está ocupado. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #0099ff;border-bottom:0.05pt solid #0099ff;border-left:0.05pt solid #0099ff;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''NO CONTESTADO'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por no contestación a mensajería'''&lt;br /&gt;
|| Desvía la llamada al buzón de voz cuando el usuario no contesta.&lt;br /&gt;
|| Si / No. &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por no contestación'''&lt;br /&gt;
|| Número al que se desvía la llamada cuando el usuario no contesta. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Pestaña Ajustes ===&lt;br /&gt;
&lt;br /&gt;
El área de ajustes del portal nos da acceso a tres pestañas de gestión.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La pestaña de '''Ajustes/Dispositivos''' se muestra en la siguiente imagen: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall17.png |900px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En esta pestaña se configura el dispositivo de entrada y salida de audio, también sirve para establecer un tono de timbre.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La pestaña de '''Ajustes/Usuario''' se muestra en la siguiente imagen:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:WEBCALL2.png |900px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En esta pantalla los campos que se muestran sombreados no serán editables.&lt;br /&gt;
&lt;br /&gt;
Algunos campos son solo informativos por lo que siempre aparecerán sombreados, en otras ocasiones el usuario no dispondrá de permisos para editar los campos, pero los campos siempre aparecerán. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Las opciones de la pestaña de usuario se explican en la siguiente tabla:&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;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre'''&lt;br /&gt;
|  | Nombre del usuario ('''Obligatorio''').&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Apellido 1'''&lt;br /&gt;
|  | Primer apellido del usuario.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Apellido 2'''&lt;br /&gt;
|  | Segundo apellido del usuario. &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;
| font-weight: bold;&amp;quot; | '''Localidad'''&lt;br /&gt;
|  | Código postal del usuario.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Código Postal'''&lt;br /&gt;
| | Localidad del usuario .&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;
| font-weight: bold;&amp;quot; | '''Mensaje de texto'''&lt;br /&gt;
|  | Mensaje de texto a mostrar.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Idioma'''&lt;br /&gt;
| | Idioma del usuario.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Fecha de expiración'''&lt;br /&gt;
|   | Nombre de la cuenta del usuario. (solo lectura)&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Fecha último cambio de clave'''&lt;br /&gt;
|  |Clave de la cuenta (obligatorio). &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La pestaña '''Ajustes/extensiones''' muestra al usuario final las extensiones del sistema que tiene asignadas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:WEBCALL3.png |1000px|center]]&lt;/div&gt;</summary>
		<author><name>Alfredo.rodriguez</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1&amp;diff=16988</id>
		<title>Documentación de usuario VIVAit Call 5.1</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1&amp;diff=16988"/>
		<updated>2026-03-18T10:26:37Z</updated>

		<summary type="html">&lt;p&gt;Alfredo.rodriguez: /* Introducción */&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;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;big&amp;gt;&lt;br /&gt;
Versiones anteriores de [[Usuario Vivait Call versiones| Usuario Vivait Call]]&lt;br /&gt;
&lt;br /&gt;
[[Guía_rápida_Web_Call_V.2.3.0 | Guía rápida Web Call]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Los usuarios del sistema '''''VIVA'''''it Call disponen de una serie de herramientas de gestión que permiten manejar y configurar las principales características del sistema a nivel de usuario final:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
* Terminal telefónico, con diferentes características en función de la marca y modelo que el usuario disponga.&lt;br /&gt;
* Facilidades del sistema, accesibles desde cualquier terminal telefónico mediante la pulsación de combinaciones del teclado.&lt;br /&gt;
* Portal de usuario, para poder acceder a facilidades del sistema y otros servicios de manera más sencilla e intuitiva.&lt;br /&gt;
* Aplicación '''''VIVA'''''it Tracker, que permite realizar el seguimiento, escucha y descarga de grabaciones de llamadas para usuarios con permiso de acceso.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[#Introducción | Volver arriba]] / [https://vivait-wiki.mdnova.local/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1 Volver al indice]&lt;br /&gt;
[[Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1 | Volver al indice]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Terminales telefónicos ==&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''''VIVA'''''it Call está preparado para poder soportar gran cantidad de terminales telefónicos, de diversas marcas y modelos; se adjuntan manuales de usuario de los más habituales&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Marca !! Modelo !! Manual de uso &lt;br /&gt;
|- &lt;br /&gt;
| Grandstream || 1160 y 1165 ||[[medio:Guia rapida Grandstream 1160_1165.pdf|Guía rápida Grandstream 1160 y 1165]]&lt;br /&gt;
|- &lt;br /&gt;
| Grandstream || 1400 y 1405 ||[[medio:Guia rapida Grandstream 1400_1405.pdf|Guía rápida Grandstream 1400 y 405]]&lt;br /&gt;
|- &lt;br /&gt;
| Grandstream || GXP2130 ,GXP2140, GXP2160, GXP2135 y GXP2170||[[medio:Guia rapida Grandstream GXP2130_GXP2140_GXP2160.pdf|Guía rápida Grandstream GXP2130 ,GXP2140, GXP2160, GXP2135 y GXP2170]]&lt;br /&gt;
|- &lt;br /&gt;
| Grandstream || DP715 y DP710 ||[[medio:Guia rapida Grandstream DP715_DP710.pdf|Guía rápida Grandstream DP715 y DP710]]&lt;br /&gt;
|- &lt;br /&gt;
| Huawei || 7910 ||[[medio:Guia rapida Huawei 7910.pdf|Guía rápida Huawei 7910]] (En Inglés)&lt;br /&gt;
|- &lt;br /&gt;
| Huawei || 7950 || [[medio:Guia rapida Huawei 7950.pdf|Guía rápida Huawei 7950]] (En Inglés)&lt;br /&gt;
|- &lt;br /&gt;
| Mitel || 6865i ||[[medio:Guia rapida Mitel 6865i.pdf|Guía rápida Mitel 6865i]]&lt;br /&gt;
|- &lt;br /&gt;
| Mitel || 6867i ||[[medio:Guia rapida Mitel 6867i.pdf|Guía rápida Mitel 6867i]]&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| Aastra (Mitel)|| 6730i y 6731i  || [[medio: 6730i_6731i_qrg_symbol_keypad_English_270710.pdf | Guía rápida Aastra Mitel 6730i y 6731i]] (En Inglés)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| Aastra (Mitel)|| 6753i || [[medio:6753i_qrg_symbol_keypad_English_270710.pdf | Guía rápida Aastra Mitel 6753i ]] (En Inglés)&lt;br /&gt;
|- &lt;br /&gt;
| Snom || 710 ||[[medio:Guia rapida Snom 710.pdf|Guía rápida Snom 710]]&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T20P ||[[medio:Guia rapida Yealink T20p.pdf|Guía rápida Yealink T20P]]&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T21P ||[[medio:Guia rapida Yealink T21p.pdf|Guía rápida Yealink T21P]]&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T23G y T23P ||[[medio:Guia rapida Yealink T23P_T23G.pdf|Guía rápida Yealink T23G y T23P]] (En Inglés)&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T26P ||[[medio:Guia rapida Yealink T26p.pdf|Guía rápida Yealink T26P]]&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T27P ||[[medio:Guia rapida Yealink T27P.pdf|Guía rápida Yealink T27P]](En Inglés)&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T28P ||[[medio:Guia rapida Yealink T28p.pdf|Guía rápida Yealink T28P]]&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || VP530 ||[[medio:Guia rapida Yealink VP530.pdf|Guía rápida Yealink VP530]]&lt;br /&gt;
|- &lt;br /&gt;
| Cisco Unified || SIP 3905 ||[[medio:Guia rapida Cisco SIP 3905.pdf|Guía rápida Cisco SIP 3905]]&lt;br /&gt;
|- &lt;br /&gt;
| Cisco Unified || IP 6921 ||[[medio:Guia rapida Cisco IP 6921.pdf.pdf|Guía rápida Cisco IP 6921]]&lt;br /&gt;
|- &lt;br /&gt;
| Cisco Unified || IP 7960G y 7940g||[[medio:7940g_y_7960g REFER RAPIDA.pdf|Guía rápida Cisco IP 7960G y 7940g]]&lt;br /&gt;
|- &lt;br /&gt;
| Cisco Unified || IP 7962G y 7942g||[[medio:cisco_ipphone_7942g.pdf |Guía rápida Cisco IP 7962G y 7942g]]&lt;br /&gt;
|- &lt;br /&gt;
| Zoiper || Business Windows || [[medio:User Guide Zoiper 5 v.1.0.7.pdf| Manual de usuario de Zoiper 5]]&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[#Terminales_telefónicos | Volver arriba]] / [https://vivait-wiki.mdnova.local/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1 Volver al indice]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Facilidades del sistema ==&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Una de las maneras que tiene un usuario para poder realizar operaciones básicas sobre su extensión es mediante el uso de combinaciones de teclas, que le dan acceso a la activación o desactivación de diferentes facilidades en el sistema; la tabla adjunta muestra las facilidades disponibles por defecto.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
! '''Código a marcar '''!! Funcionalidad !! Modo de uso &lt;br /&gt;
|-&lt;br /&gt;
|*21#||Desvío extensión incondicional a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*21*numero||Desvío extensión incondicional||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*211#||Desvío extensión por no contesta a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*211*numero||Desvío extensión por no contesta||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*212#||Desvío extensión por ocupado a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*212*numero||Desvío extensión por ocupado||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*213#||Desvío extensión por fuera de servicio a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*213*numero||Desvío extensión por fuera de servicio||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
&amp;lt;!--|-&lt;br /&gt;
|*223*numero||Desvío usuario por no login||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación--&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|*31#||Desvío usuario incondicional mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*31*numero||Desvío usuario incondicional||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*311#||Desvío usuario por no contesta mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*311*numero||Desvío usuario por no contesta||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*312#||Desvío usuario por ocupado a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*312*numero||Desvío usuario por ocupado||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*313#||Desvío usuario por no login a mensajería||Activación: Pulsar código + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*313*numero||Desvío usuario por no login||Activación: Pulsar código + destino + marcar; locución informa de correcta activación&lt;br /&gt;
Desactivación: Pulsar código + marcar; locución informa de correcta desactivación&lt;br /&gt;
|-&lt;br /&gt;
|*32#||Desvio usuario por calendario. ||Activación: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*33#||Desvio extensión por calendario.||Activación: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*401#||Login movilidad avanzada||Activación: Pulsar código + destino + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*402#||Logout movilidad avanzada||Activación: Pulsar código + destino + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*41*||Capturar extensión||Activación: Pulsar código + destino + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*8||Capturar llamada de grupo de captura||Activación: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*42#||Leer buzón|| Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*43#||Activar retrollamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*44#||Cancelar retrollamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*45#||Login movilidad||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*46#||Logout movilidad||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*47#||Login en grupos corporativos||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*48#||Logout en grupos corporativos||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*491#||Pausa en grupos corporativos||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*492#||Quitar pausa en grupos corporativos||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*50#||Movilidad||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*54#||Intrusión a extensión||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*55#||Intrusión a VDN o Grupo||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*500#||Eco||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*501#|| Tono de prueba||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*60#||Movilidad llamada a llamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*61#||Categoría usuario en llamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*65#||Categoría temporal de teléfono||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*66#||Fin Categoría temporal de teléfono||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|*72#||Movilidad llamada a llamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|70106 ||Cancelar retrollamada||Uso: Pulsar código + marcar&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[#Facilidades_del_sistema | Volver arriba]] / [https://vivait-wiki.mdnova.local/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1 Volver al indice]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Retrollamadas ===&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
El funcionamiento será el siguiente:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*La retrollamada queda programada de extensión física &amp;quot;A&amp;quot; a extensión física &amp;quot;B&amp;quot; (no queda programada a numeraciones de usuarios); esto no quiere decir que no podamos programar una retrollamada cuando hemos llamado a una numeración de usuario, pero queda programada en la extensión física en la que está ese usuario en ese momento.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*El número llamado &amp;quot;B&amp;quot; podrá ser derivado de varias causas:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
::&amp;quot;A&amp;quot; ha llamado a &amp;quot;B&amp;quot; &lt;br /&gt;
::&amp;quot;A&amp;quot; ha llamado a un usuario ubicado en &amp;quot;B&amp;quot; &lt;br /&gt;
::&amp;quot;A&amp;quot; ha llamado a un destino desviado a &amp;quot;B&amp;quot; &lt;br /&gt;
::&amp;quot;A&amp;quot; ha llamado a un destino y por preruta acaba en &amp;quot;B&amp;quot; &lt;br /&gt;
::...&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*Las causas por las que se podrá programar una retrollamada son:&lt;br /&gt;
::&amp;quot;B&amp;quot; está ocupada&lt;br /&gt;
::&amp;quot;B&amp;quot; no contesta&lt;br /&gt;
::&amp;quot;B&amp;quot; está ocupada y no contesta (ha sonado en línea 2--&amp;gt; )&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''Solo podremos programar la retrollamada si el sistema devuelve: extensión ocupada o no contesta'''&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Estas dos últimas casuísticas son iguales a efectos de usuario, pero no a efectos internos...&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Si una llamada va a buzón, salta a un grupo ACD, a una IVR...entonces NO habrá retrollamada (porque se considera contestada)&lt;br /&gt;
 &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*Para programar una retrollamada se pulsa el código de facilidad (*43#) una vez colgada la misma; el sistema recordará la última llamada durante un período de tiempo configurable; aunque entre una llamada en &amp;quot;A&amp;quot;, este podrá programar retrollamada a la última saliente si sigue dentro del período&lt;br /&gt;
*Se podrá abortar una retrollamada ( (*44#), pero esto no borrará la última llamada (podemos arrepentirnos de haber abortado la retrollamada)&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[#Facilidades_del_sistema | Volver arriba]] / [https://vivait-wiki.mdnova.local/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_5.1 Volver al indice]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Portal de usuario ==&lt;br /&gt;
&lt;br /&gt;
El portal de usuario VIVAit Call permite que determinadas funcionalidades del sistema puedan ser accesibles por los usuarios finales desde una interfaz mucho más cómoda y amigable que el telefónico; de esta forma, desde un portal fácilmente accesible los usuarios finales podrán: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Gestionar las principales características del sistema, incluyendo:&lt;br /&gt;
&lt;br /&gt;
•	Principales datos de contacto&lt;br /&gt;
&lt;br /&gt;
•	Gestionar desvíos en telefonía corporativa&lt;br /&gt;
&lt;br /&gt;
•	Gestionar la agenda de contactos&lt;br /&gt;
&lt;br /&gt;
•	Acceder al sistema de mensajería vocal con el objeto de escuchar y administrar los mensajes de voz&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Aspecto general ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El acceso al portal se realiza tras el correspondiente proceso de validación, tal y como se muestra en la imagen siguiente:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall1.png |250px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez se ha accedido al portal, éste se compone de seis pestañas:&lt;br /&gt;
&lt;br /&gt;
•	Contactos&lt;br /&gt;
&lt;br /&gt;
•	Historial&lt;br /&gt;
&lt;br /&gt;
•	Mensaje de voz&lt;br /&gt;
&lt;br /&gt;
•	Desvíos&lt;br /&gt;
&lt;br /&gt;
•	Ajustes&lt;br /&gt;
&lt;br /&gt;
•	Información&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall2-2.png |950px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En la parte superior derecha del portal, se encuentran los siguientes botones:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall3.png |450px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Botón !! Función &lt;br /&gt;
|- &lt;br /&gt;
| [[File:webcall4.png |50px|center]] || Botón para mostrar u ocultar la ventana del teléfono.&lt;br /&gt;
|-&lt;br /&gt;
| [[File:webcall5.png |250px|center]] || Muestra si una extensión está disponible o no dependiendo del color (verde = disponible, rojo = no disponible). Cada usuario puede configurar esta funcionalidad en la pestaña Ajustes\Extensiones\Disponibilidad General [[File:webcall6.png |200px|]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:webcall7.png |50px|center]] || Este botón se muestra cuando hay configurado uno o varios desvíos. Esta funcionalidad se explica en el apartado 4.4&lt;br /&gt;
|-&lt;br /&gt;
| [[File:webcall8.png |50px|center]] || Este botón se muestra cuando hay configurado un desvío incondicional por calendario. Esta funcionalidad se explica en el apartado 4.4 &lt;br /&gt;
|-&lt;br /&gt;
| [[File:webcall9.png |50px|center]] || Botón para salir del portal.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Pestañas en el portal de VIVAit Call ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pestaña Contactos ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La pestaña de contactos muestra al usuario los datos de los contactos añadidos en su agenda. Los datos que se muestran de cada contacto son: Nombre, Apellido, Empresa, Tipo agenda y Teléfono.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:WEBCALL1.png |800px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para añadir un nuevo contacto, hay que seleccionar el botón de la parte superior derecha &amp;quot;Añadir nuevo contacto&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Al darle a &amp;quot;añadir un nuevo contacto&amp;quot;, nos aparecerá una ventana con las siguientes opciones: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall13.png |800px|center]]&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;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre'''&lt;br /&gt;
|  | Nombre del usuario ('''Obligatorio''').&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Apellido 1'''&lt;br /&gt;
|  | Primer apellido del usuario.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Apellido 2'''&lt;br /&gt;
|  | Segundo apellido del usuario. &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre en pantalla'''&lt;br /&gt;
| | Nombre del usuario en pantalla. ('''Obligatorio''')&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Empresa'''&lt;br /&gt;
|  | Nombre de la empresa.&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;
| font-weight: bold;&amp;quot; | '''Código postal'''&lt;br /&gt;
|  | Código postal del usuario.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Localidad'''&lt;br /&gt;
|  | Localidad del usuario .&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Localidad'''&lt;br /&gt;
|  | Provincia del usuario .&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Número de teléfono'''&lt;br /&gt;
|  | Número de teléfono del usuario . ('''Obligatorio''')&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Tipo'''&lt;br /&gt;
|  | Fijo / Móvil&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Pestaña Historial===&lt;br /&gt;
&lt;br /&gt;
La pestaña de Historial muestra al usuario el listado de las llamadas realizadas y recibidas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall22.png |800px|center]]&lt;br /&gt;
&lt;br /&gt;
=== Pestaña Mensaje de voz===&lt;br /&gt;
&lt;br /&gt;
La pestaña de mensajes de voz muestra los mensajes que han llegado a nuestro buzón de voz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:web-call5.png|800px|center]]&lt;br /&gt;
&lt;br /&gt;
=== Pestaña Desvíos ===&lt;br /&gt;
&lt;br /&gt;
La pestaña Desvíos permite al usuario visualizar información de relevancia como usuario de telefonía corporativa, y realizar desvíos de usuario (no a nivel de extensión) en diferentes casuísticas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall16.png |800px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En esta pestaña podremos configurar cinco tipos de desvío: &lt;br /&gt;
&lt;br /&gt;
•	Desvío incondicional: Todas las llamadas se desvían.&lt;br /&gt;
&lt;br /&gt;
•	Desvío por calendario: Desvío de la llamada cuando se configura una fecha en el calendario.&lt;br /&gt;
&lt;br /&gt;
•	Desvío por no conectado: Desvío en caso de que se dirija una llamada al número de un usuario que no está registrado en el teléfono.&lt;br /&gt;
&lt;br /&gt;
•	Desvío por ocupado: Desvío cuando el usuario está ocupado (comunicando).&lt;br /&gt;
&lt;br /&gt;
•	Desvío por no contestado: Desvío de la llamada cuando el usuario no contesta.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Las opciones de la pestaña Desvíos se explican en la siguiente tabla:&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;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #0099ff;border-bottom:0.05pt solid #0099ff;border-left:0.05pt solid #0099ff;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''INCONDICIONAL'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío incondicional a mensajería'''&lt;br /&gt;
|| Desvía todas las llamadas que recibe el usuario 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 al que se desvía la llamada. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío incondicional por calendario'''&lt;br /&gt;
|| Permite al usuario gestionar su desvío por calendario&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por calendario'''&lt;br /&gt;
|| Pestaña para seleccionar fechas para el desvío&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #0099ff;border-bottom:0.05pt solid #0099ff;border-left:0.05pt solid #0099ff;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''NO CONECTADO'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por no conectado a mensajería'''&lt;br /&gt;
|| Desvía la llamada al buzón de voz cuando el usuario no está registrado en el teléfono. &lt;br /&gt;
|| Si / No. &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por no conectado'''&lt;br /&gt;
|| Número al que se desvía la llamada cuando el usuario no está registrado en el teléfono. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #0099ff;border-bottom:0.05pt solid #0099ff;border-left:0.05pt solid #0099ff;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''OCUPADO'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por ocupado a mensajería'''&lt;br /&gt;
|| Desvía la llamada al buzón de voz cuando el usuario está 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 al que se desvía la llamada cuando el usuario está ocupado. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #0099ff;border-bottom:0.05pt solid #0099ff;border-left:0.05pt solid #0099ff;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''NO CONTESTADO'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #0099ff;padding:0cm;color:#0099ff;&amp;quot;  |&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por no contestación a mensajería'''&lt;br /&gt;
|| Desvía la llamada al buzón de voz cuando el usuario no contesta.&lt;br /&gt;
|| Si / No. &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por no contestación'''&lt;br /&gt;
|| Número al que se desvía la llamada cuando el usuario no contesta. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Pestaña Ajustes ===&lt;br /&gt;
&lt;br /&gt;
El área de ajustes del portal nos da acceso a tres pestañas de gestión.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La pestaña de '''Ajustes/Dispositivos''' se muestra en la siguiente imagen: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:webcall17.png |900px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En esta pestaña se configura el dispositivo de entrada y salida de audio, también sirve para establecer un tono de timbre.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La pestaña de '''Ajustes/Usuario''' se muestra en la siguiente imagen:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:WEBCALL2.png |900px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En esta pantalla los campos que se muestran sombreados no serán editables.&lt;br /&gt;
&lt;br /&gt;
Algunos campos son solo informativos por lo que siempre aparecerán sombreados, en otras ocasiones el usuario no dispondrá de permisos para editar los campos, pero los campos siempre aparecerán. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Las opciones de la pestaña de usuario se explican en la siguiente tabla:&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;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre'''&lt;br /&gt;
|  | Nombre del usuario ('''Obligatorio''').&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Apellido 1'''&lt;br /&gt;
|  | Primer apellido del usuario.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Apellido 2'''&lt;br /&gt;
|  | Segundo apellido del usuario. &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;
| font-weight: bold;&amp;quot; | '''Localidad'''&lt;br /&gt;
|  | Código postal del usuario.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Código Postal'''&lt;br /&gt;
| | Localidad del usuario .&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;
| font-weight: bold;&amp;quot; | '''Mensaje de texto'''&lt;br /&gt;
|  | Mensaje de texto a mostrar.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Idioma'''&lt;br /&gt;
| | Idioma del usuario.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Fecha de expiración'''&lt;br /&gt;
|   | Nombre de la cuenta del usuario. (solo lectura)&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Fecha último cambio de clave'''&lt;br /&gt;
|  |Clave de la cuenta (obligatorio). &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La pestaña '''Ajustes/extensiones''' muestra al usuario final las extensiones del sistema que tiene asignadas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:WEBCALL3.png |1000px|center]]&lt;/div&gt;</summary>
		<author><name>Alfredo.rodriguez</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Gu%C3%ADa_r%C3%A1pida_VIVAit_Call_Cellular&amp;diff=16987</id>
		<title>Guía rápida VIVAit Call Cellular</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Gu%C3%ADa_r%C3%A1pida_VIVAit_Call_Cellular&amp;diff=16987"/>
		<updated>2026-03-18T10:17:03Z</updated>

		<summary type="html">&lt;p&gt;Alfredo.rodriguez: /* Pestaña de panel de marcado */&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 Cellular&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;big&amp;gt;&lt;br /&gt;
Versiones anteriores de [[VIVAit Call Cellular versiones| VIVAit Call Cellular]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aplicación móvil VIVAit Call Cellular ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
mdtel ha desarrollado la aplicación de gestión VIVAit Call Cellular (VCC) para smartphone Android e IOS para la plataforma VIVAit Call&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esta aplicación permite a los usuarios gestionar determinadas funcionalidades de usuario de su telefonía VIVAit Call desde su terminal móvil, incluyendo:&lt;br /&gt;
* Agenda integrada VIVAit e interna del móvil&lt;br /&gt;
* Historial de llamadas del usuario en VIVAit Call (entrantes, salientes, perdidas,...)&lt;br /&gt;
* Gestión de disponibilidad de usuario y terminales&lt;br /&gt;
* Además, el uso de VIVAit Call Cellular asociado al terminal externo de VIVAit Call permitirá la realización de llamadas desde la aplicación, usando como red de transporte de voz la telefonía celular convencional (GSM)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Instalación y acceso ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La aplicación está disponible para su descarga e instalación en las tiendas Play store de Google o la App Store de Apple.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::[[File:vcc1.png|300px|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez instalada, al abrir la aplicación el usuario ha de introducir las credenciales de seguridad necesarias, incluyendo:&lt;br /&gt;
* Servidor (dato proporcionado por el administrador de VIVAit Call)&lt;br /&gt;
* Nombre de usuario (de VIVAit Call)&lt;br /&gt;
* terminal externo (opcional); en caso de que el usuario disponga de terminal externo deberá introducirlo en este campo; solo puede ser el número de teléfono registrado como terminal externo por el administrador de VIVAit Call&lt;br /&gt;
* Contraseña&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::[[File:vcc2.png|250px|center]]&lt;br /&gt;
&lt;br /&gt;
== Pestañas ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En la parte inferior de la aplicación, el usuario tendrá acceso a las principales funciones que esta proporciona&lt;br /&gt;
* Panel de marcado (solo si dispone de terminal externo)&lt;br /&gt;
* Contactos&lt;br /&gt;
* Historial de llamadas&lt;br /&gt;
* Gestión de terminales&lt;br /&gt;
&lt;br /&gt;
::[[File:vcc12.PNG|700px|center]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Botón !! Función &lt;br /&gt;
|-&lt;br /&gt;
| Contactos || Pestaña con los contactos añadidos.&lt;br /&gt;
|-&lt;br /&gt;
| Historial || Historial de llamadas.&lt;br /&gt;
|-&lt;br /&gt;
| Configuración || Pestaña para configurar los terminales.&lt;br /&gt;
|-&lt;br /&gt;
| Botón de borrado|| Botón para borrar los números marcados.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pestaña de panel de marcado ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #fef6e7; border: 1px solid #fbd68a; padding: 1em; border-radius: 4px;width: fit-content; margin-left: 0px&amp;quot;&amp;gt;&lt;br /&gt;
⚠️ Esta pestaña solo estará disponible en caso de que el usuario disponga de terminal externo&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La pestaña de panel de marcado se compone de: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:vcc13.PNG|700px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Botón !! Función &lt;br /&gt;
|- &lt;br /&gt;
| LLamar|| Botón para realizar la llamada.&lt;br /&gt;
|-&lt;br /&gt;
| Panel de marcado|| Botón de acceso a pestaña de panel de marcado.&lt;br /&gt;
|-&lt;br /&gt;
| Botón de borrado|| Botón para borrar los números marcados.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Al realizar el marcado, el usuario recibirá una llamada entrante GSM desde VIVAit Call, que tras responder le pondrá en contacto con el destino marcado&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:vcc25.png|800px|center]]&lt;br /&gt;
&lt;br /&gt;
=== Contactos ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La pestaña de contactos permite la búsqueda en cuatro tipos de agendas (todos, personal, móvil y corporativa)&lt;br /&gt;
En función del tipo de agenda y de la configuración de VIVAit Call, la búsqueda podrá ser inmediata o requerir la introducción de un mínimo de caracteres antes de realizarse&lt;br /&gt;
&lt;br /&gt;
::[[File:vcc14.PNG|250px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Al seleccionar un contacto, se abre una pestaña en la que se puede editar o visualizar todos los datos de ese contacto.&lt;br /&gt;
&lt;br /&gt;
Para los contactos de la agenda &amp;quot;personal&amp;quot;, el usuario tendrá la opción de añadir/modificar/eliminar contactos&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[File:vcc15.PNG|250px|center]]&lt;br /&gt;
&lt;br /&gt;
=== Pestaña historial de llamadas ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esta pestaña muestra el historial de llamadas de VIVAit Call para el usuario logado.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si el usuario dispone de terminal externo, dispondrá además de un botón de llamada&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::[[File:vcc16.PNG|250px|center]]&lt;br /&gt;
&lt;br /&gt;
=== Pestaña de terminales ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
En VIVAit Call, un usuario puede tener más de un terminal&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Desde la pestaña de terminales, el usuario podrá gestionar:&lt;br /&gt;
* Su disponibilidad global en la plataforma VIVAit (conmutador &amp;quot;disponible&amp;quot;)&lt;br /&gt;
* La prioridad (menor número mayor prioridad) y activación o desactivación de cada terminal&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
En la imagen inferior, ante la entrada de una llamada al usuario, sonarán simultánemente los dos terminales activados y con prioridad &amp;quot;1&amp;quot;; el terminal desactivado no sonará&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::[[File:vcc26.PNG|700px|center]]&lt;br /&gt;
&lt;br /&gt;
En caso de que el usuario desee que la aplicación vuelva a la pantalla inicial de autenticación, dispone del botón &amp;quot;resetear APP&amp;quot;, que deberá pulsar tres veces para volver a la pantalla de inicio&lt;/div&gt;</summary>
		<author><name>Alfredo.rodriguez</name></author>
		
	</entry>
</feed>