Opción 43
Un reproductor BrightSign puede descargar su script autorun y otros recursos de presentación desde un valor URL almacenado en su registro. Esta función puede utilizarse para aprovisionar un reproductor en campo. También permite que un reproductor se recupere automáticamente de errores de tiempo de ejecución o de carga asociados con el script autorun.
El valor URL en el registro puede sobrescribirse mediante DHCP Option 43, lo que significa que, con una infraestructura de red configurada correctamente, los reproductores pueden configurarse por sí mismos y comenzar a reproducir contenido sin configuración manual en el sitio.
Esta página describe cómo configurar un sistema de aprovisionamiento que utiliza DHCP Option 43.
El dispositivo B-Deploy Appliance también puede utilizar DHCP Option 43. La solución descrita en esta página utiliza un servidor de aprovisionamiento de terceros (es decir, uno que usted mismo configura) en lugar del B-Deploy Appliance.
Descripción general
Recuperación / Bootstraping
Cuando un reproductor BrightSign arranca (y a intervalos periódicos mientras está en ejecución), dirigirá una solicitud HTTP GET a la URL de aprovisionamiento/recuperación almacenada en el registro del reproductor, que está vacía de forma predeterminada de fábrica. El encabezado de la solicitud HTTP GET incluye los siguientes parámetros:
Parámetro | Valor de ejemplo | Descripción |
|---|---|---|
Cuenta | bsaccount | El valor de registro a |
Usuario | bsuser | El valor de registro u |
Grupo | bsgroup | El valor de registro g |
Contraseña | bspassword | El valor de registro p |
DeviceModel | XD1230 | La designación del modelo del reproductor BrightSign |
DeviceFamily | guepardo | La designación de la familia del reproductor BrightSign |
DeviceId | X2F2CU0000065 | El número de serie del reproductor |
Versión de firmware del dispositivo | 4.7.146 | La versión del firmware actualmente instalado en el reproductor |
DeviceUpTime* | 240 | La cantidad de tiempo (en segundos) desde que el reproductor se inició |
Modo de recuperación* | Anular | El modo de la solicitud URL actual: - Anular: La solicitud HTTP GET inicial de un reproductor con un script autorun válido - periódico: Solicitudes HTTP GET posteriores de un reproductor con un script autorun válido - último recurso: La solicitud HTTP GET de un reproductor sin un script autorun válido |
CrashDump* | sí | Una marca que indica que el arranque actual fue iniciado por un reinicio forzado debido a un fallo (este encabezado solo está presente si es verdadero) |
Estado de almacenamiento | usb1=none;sd=autorun; sd2=storage;ssd=none; | El estado actual de autorun y del sistema de archivos de cada dispositivo de almacenamiento. |
Si la solicitud HTTP GET se realiza correctamente, el reproductor intentará utilizar cualquier contenido descargado como un script de ejecución automática. Tenga en cuenta que el reproductor no realiza ninguna comprobación para determinar si el contenido es realmente un archivo autorun .brs antes de intentar ejecutarlo.
Descripción general de la configuración de aprovisionamiento
La siguiente infraestructura es necesaria para aprovisionar reproductores mediante DHCP Option 43:
- Servidor DHCP: Ubicado en la red local y configurado para la comunicación de Option 43
- URL del script de aprovisionamiento: Una URL que devuelve el script de aprovisionamiento .brs
- URL del paquete de aprovisionamiento: Una URL que devuelve el paquete de aprovisionamiento .zip
- URL de actualización de firmware: (opcional) Una URL que devuelve un archivo de actualización de firmware si es necesario
Configuración del servidor DHCP
Formatos de cadena de solicitud/respuesta
Cuando un reproductor BrightSign solicita información de un servidor DHCP, la consulta incluirá una cadena Option 60 que contiene la identidad del proveedor del reproductor: [BS_OEM_ID] + “ “ + [BS_OEM_MODEL] (por ejemplo, “BrightSign XD1230”). El servidor DHCP puede utilizar esta cadena para hacer coincidir la respuesta Option 43 correcta para el proveedor y el número de modelo del dispositivo. Como alternativa, la respuesta correcta puede determinarse utilizando otra información disponible para un servidor DHCP, incluido el ID del suscriptor cuando se utiliza asignación de IP basada en puerto.
La respuesta debe ser una cadena Option 43 compuesta por datos codificados TLV (type-length-value), y la URL de aprovisionamiento/recuperación debe definirse utilizando Tag 85 (0x55 o ASCII “U”). La etiqueta y la longitud tienen 1 byte cada una. La longitud también debe codificarse utilizando hexadecimal o ASCII.
Aunque el valor de respuesta formateado puede establecerse fácilmente en un servidor Linux, la configuración de servidores Microsoft requiere pasos adicionales.
Configuración del reproductor
Cuando el reproductor recibe la respuesta Option 43, sobrescribirá la URL predeterminada en el registro con el valor de la cadena de respuesta. El valor proporcionado por el servidor DHCP no se guarda en el almacenamiento persistente; la sobrescritura del registro permanece activa únicamente mientras el arrendamiento DHCP siga activo. Si es necesario, el script de recuperación/aprovisionamiento puede cambiar permanentemente el valor del registro utilizando funciones BrightScript.
El reproductor puede almacenar una URL diferente para cada interfaz de red. Cuando se reciben múltiples respuestas DHCP desde diferentes interfaces de red, el reproductor elegirá recuperarse o iniciar mediante bootstrap utilizando el primer valor de URL no vacío en el siguiente orden de interfaces:
- Ethernet
- WiFi
- 3G
Verificar la configuración de Option 43
Para verificar que el reproductor responde correctamente al servidor DHCP, acceda al shell de BrightSign mediante el puerto serie (consulte la página Consola de depuración de BrightScript para obtener más detalles). En el prompt de BrightSign, escriba "ifconfig": Si la acción de Option 43 se ha realizado correctamente, se devolverá la nueva URL de aprovisionamiento/recuperación; si la acción no se realizó correctamente, se devolverá la URL predeterminada de BrightSign Network.
Para verificar que el reproductor realmente envía solicitudes de aprovisionamiento/recuperación a la URL, puede revisar los registros del servidor web que entrega el script de recuperación. También puede usar tcpdump o Wireshark en la red local para ver la solicitud HTTP GET del reproductor.
Ejemplo de codificador
El siguiente script simple de página web puede utilizarse para convertir una URL al formato hexadecimal adecuado para usarlo con cadenas Option 43:
<html>
<head>
<title>BrightSign Option 43 Recovery URL encoding</title>
<script>
function convertUrl()
{
url = document.getElementById("url").value;
out = document.getElementById("out");
// First construct the required TLV as a byte array
data = [];
data.push(0x55); // Tag
data.push(url.length);
// Length
// Value
for(var i = 0; i < url.length; i++)
{
data.push(url.charCodeAt(i));
// ASCII only, please.
}
// Now convert to a hex string.
// (Other formats could also be produced)
hex = ""
for(var i = 0; i < data.length; i++)
{
b = (data[i] + 256).toString(16).substr(-2).toUpperCase();
hex = hex.concat(b)
}
out.value = "option 43 hex " + hex;
return false; // Prevent submit/reload
}
</script>
</head>
<body>
<h1>BrightSign Option 43 Recovery URL encoding</h1>
<p>Enter the required Recovery URL below:
<form onsubmit="return convertUrl()">
<input type="text" size="100" id="url">
<input type="submit" value="Convert">
</form>
<textarea id="out" rows=4 cols=120 readOnly="true"></textarea>
</body>
</html>Configuración del servidor de aprovisionamiento
Script de aprovisionamiento
Una vez que el reproductor recibe la respuesta Option 43, realizará una solicitud HTTP GET a la URL contenida en la respuesta. El servidor de aprovisionamiento debe examinar el encabezado StorageStatus de la solicitud. Si "autorun" está presente en la cadena, debe devolver el código 204; de lo contrario, debe devolver el código 200 con el script de aprovisionamiento .brs en el cuerpo de la respuesta.
El script de aprovisionamiento debe, a su vez, sobrescribir la URL de recuperación en el registro y descargar el paquete de aprovisionamiento desde una URL separada.
De forma predeterminada, los servidores IIS no permiten archivos .brs porque no son un tipo MIME registrado. Si está utilizando un servidor IIS para distribuir el script de aprovisionamiento .brs , asegúrese de registrar .brs como un tipo MIME "text/plain".
El provisingScript.brs de BrightSign en GitHub proporciona una plantilla para descargar un paquete de presentación y/o un archivo de firmware. Para usar este script, deberá reemplazar los siguientes valores en el script con valores específicos de su aplicación:
- ##fileName1##: El nombre del archivo después de descargarse al almacenamiento local (por ejemplo, "autorun.zip")
- ##fileType1##: El tipo de archivo, que puede ser "presentation" o "firmware"
- ##url1##: La URL de descarga del archivo
- ##addBsHeaders1##: Un indicador que especifica si se deben agregar encabezados a la solicitud HTTP, incluidos valores del dispositivo como el número de serie y la versión del firmware. Este valor puede ser true o false.
- ##optionalHeaders##: Un conjunto de uno o más encabezados opcionales para agregar a la solicitud HTTP. Estos encabezados solo se agregan si ##addBsHeaders1## se reemplaza por verdadero. El siguiente ejemplo muestra cómo dar formato a un encabezado opcional en el script:
"xfer.AddHeader(\"Authorization\", \"Bearer " + authToken + "\")"Hay un segundo conjunto de valores en el script (##fileName2##, ##fileType2##, etc.). Si desea descargar tanto un paquete de presentación como un archivo de firmware, reemplácelos con los valores apropiados. Si desea que el script descargue solo un único archivo, establezca los valores de cadena como invalid y el valor Boolean como false.
El script también contiene un campo ##recoveryUrl## , que es la nueva URL de recuperación que se escribirá en el registro del reproductor. Es probable que este valor sea el mismo que la URL especificada en la respuesta de Option 43, que de otro modo volverá al valor predeterminado cuando expire el arrendamiento DHCP.
Paquete de aprovisionamiento
El script de aprovisionamiento debe llamar a URL adicionales para descargar el paquete de presentación y/o los archivos de actualización de firmware. El paquete de presentación debe ser un archivo .zip que contenga los archivos necesarios.
Si el aprovisionamiento se realiza con el script incluido provisioningScript.brs , el reproductor desempaquetará automáticamente un archivo descargado .zip sin requerir ningún script adicional ni convenciones de nombres. Si está utilizando su propio script de aprovisionamiento (o como precaución adicional), asigne al paquete de presentación el nombre autorun.zip e incluya el script autozip.brs , que también se incluye con este documento.