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.
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>:
de la Entrada 1 a la Entrada 8 → 17,18 .. 24
de la Salida 1 a la Salida 8 → 25,26 .. 32
Audio → 15
Vídeo → 16
cámara lab. redes lateral → 9
cámara lab. redes fondo → 1
cámara sótano → 3
cámara lab. operativos → 11
movimiento hacia arriba → 5
movimiento hacia abajo → 7
movimiento hacia la derecha → 10
movimiento hacia la izquierda → 2
movimiento diagonal arriba izquierda → 100
movimiento diagonal arriba derecha → 101
movimiento diagonal abajo derecha → 102
movimiento diagonal abajo izquierda → 103
movimiento automático → 6
posicion 1 → 33
posición 2 → 34
posición 3 → 35
posición 4 → 36
cambio de velocidad → 4
aumentar zoom → 12
disminuir zoom → 8
aumentar volumen micrófono de mano → 85
disminuir volumen micrófono de mano → 86
aumentar volumen micrófono de petaca → 87
disminuir volumen micrófono de petaca → 88
aumentar volumen micrófono de diadema → 89
disminuir volumen micrófono de diadema → 90
aumentar volumen aux in → 91
disminuir volumen aux in → 92
aumentar volumen salida 4 → 93
disminuir volumen salida 4 → 94
aumentar volumen master → 95
disminuir volumen master → 96
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> :
velocidad → 1
volumen micrófono de mano →2
volumen micrófono de petaca →3
volumen micrófono de diadema →4
volumen aux in →5
volumen salida 4 →6
volumen principal o master →7