Apéndice A. Protocolo matriz AMX

En el siguiente apartado explicaremos como funciona el protocolo de la matriz de vídeo/audio AMX, el cual fue obtenido mediante ingeniería inversa.

Los últimos apartados corresponden a los mensajes estudiados, han sido ligeramente modificados introduciendo retornos de carro para que sea mas fácil su comprensión.

A.1. Funcionamiento básico

El protocolo corre sobre una conexión TCP/IP entre la matriz y el cliente, por medio de mensajes XML mandados como texto en claro. La matriz espera conexiones en el puerto 10500 y permite el acceso de un sólo cliente al mismo tiempo.

La matriz gestiona las entradas y salidas de la matriz, la selección de cámaras así como sus movimientos y el volumen de las entradas de audio. Para todo ello se vale de un protocolo en el que cada acción estará marcada por el comienzo y fin de un evento.

La petición de comienzo de un evento se marca con el identificador del evento identificado por la marca canal <Channel> y por la marca comando con el siguiente valor: <msgCmd>InputChannelOn</msgCmd>

El fin de ese evento contendrá el mismo identificador de evento pero ahora siendo la etiqueta que contiene el comando así: <msgCmd>InputChannelOff</msgCmd> Para ambos mensajes lanzados por el cliente, la matriz responderá como veremos en el siguiente apartado.

Estos son los identificadores de los eventos mas significativos. En los mensajes XML, podemos encontrar el evento contenido dentro de la marca <Channel>:

En el protocolo también encontramos mensajes conteniendo un determinado valor discreto (<Value>). Estos mensajes son los LevelValueSet y para distinguir entre los distintos periféricos a los que éste valor puede pertenecer, se usa la etiqueta <Level> :