Reenvío de alertas a terceros

Desde la configuración de alertas podrás reenviar, en tiempo real, las alertas emitidas por la plataforma a otros terceros. Estos terceros pueden ser un sistema propio de la empresa u otra plataforma.

Configuración de reenvío de alertas "Asignar servidor destino"

La opción para configurar el reenvío de alertas se encuentra en el módulo de alertas, en las opciones de arriba a la derecha y se llama "Asignar servidor destino".

image-1667840748177.pngLuego de acceder al módulo, debemos definir el servidor destino a dónde queremos que se reenvíen las alertas y además debemos seleccionar que alertas queremos que se envíen al host.
IMPORTANTE: Esta opción de "Asignar servidor destino" solo se encuentra disponible para el distribuidor y para cuando se realiza en login as en un cliente. El cliente final no tendrá acceso a esta opción.

image-1667840868465.png

En la opción de "Historial de envíos" podrás revisar un histórico de todos los envíos realizados de cada alerta y el resultado del mismo.

Forma de recibir los datos de las alertas

La plataforma envía cada alerta por medio de una petición HTTP que se realiza al servidor destino.
La información y datos de la alerta, se envían por medio de datos POST dentro de la petición HTTP. 
Las llaves que recibirán dentro de la petición POST serán las siguientes.

idalert
device
date
time
description
latitude
longitude
speed
address
vehicle
patent

Un ejemplo en lenguaje PHP de la forma de recibir estos datos sería el siguiente

<?php
echo 'idAlert ' .	$_POST["idalert"];
echo 'device ' .	$_POST["device"];
echo 'date ' .		$_POST["date"];
echo 'time ' .		$_POST["time"];
echo 'description '.$_POST["description"];
echo 'position ' .	$_POST["latitude"].','.$_POST["longitude"];
echo 'speed ' .		$_POST["speed"];
echo 'address ' .	$_POST["address"];
echo 'vehicle ' .	$_POST["vehicle"];
echo 'patent ' .	$_POST["patent"];
?>

El código anterior es el que debes colocar en tu servidor destino que recibirá las alertas, ejemplo: https://miservidor.com/receive_alerts.php
Con el ejemplo anterior debes poder recibir los datos y ya queda de parte de ustedes definir qué acción realizar con la información recibida, como por ejemplo guardarla en una base de datos.

Ejemplo de como recibir los datos utilizando lenguaje C#

using System;
using System.Collections.Generic;
using System.IO;
using System.Net;
using System.Text;

namespace DumpHttpRequests
{
    internal class Program
    {
        private static void Main(string[] args)
        {
            if (!HttpListener.IsSupported)
            {
                Console.WriteLine("Windows XP SP2 or Server 2003 is required to use the HttpListener class.");
                return;
            }
            // URI prefixes are required,
            var prefixes = new List<string>() { "http://*:8000/" };

            // Create a listener.
            HttpListener listener = new HttpListener();
            // Add the prefixes.
            foreach (string s in prefixes)
            {
                listener.Prefixes.Add(s);
            }
            listener.Start();
            Console.WriteLine("Listening...");
            while (true)
            {
                // Note: The GetContext method blocks while waiting for a request.
                HttpListenerContext context = listener.GetContext();

                HttpListenerRequest request = context.Request;

                string documentContents;
                using (Stream receiveStream = request.InputStream)
                {
                    using (StreamReader readStream = new StreamReader(receiveStream, Encoding.UTF8))
                    {
                        documentContents = readStream.ReadToEnd();
                    }
                }
                Console.WriteLine($"Recived request for {request.Url}");
                Console.WriteLine(documentContents);

                // Obtain a response object.
                HttpListenerResponse response = context.Response;
                // Construct a response.
                string responseString = "Respuesta  a la peticion";
                byte[] buffer = System.Text.Encoding.UTF8.GetBytes(responseString);
                // Get a response stream and write the response to it.
                response.ContentLength64 = buffer.Length;
                System.IO.Stream output = response.OutputStream;
                output.Write(buffer, 0, buffer.Length);
                // You must close the output stream.
                output.Close();
            }
            listener.Stop();
        }
    }
}