This project is to create a "Gateway" Server for mobile user interface (MUI) device connectivity to a Crestron control system. The Crestron control system manages the AV and environmental controls for each room on the for an ongoing internal project.
Crestron TCP servers only accept one client per module, however the system may require multiple MUI devices controlling a room simultaneously. Having multiple target addresses and ports across multiple devices makes management and upkeep of the system more complicated. The solution is an intermediary gateway server, which can handle multiple clients to one consolidated location. The gateway server will also perform the task of a router or switch by directing message traffic from MUI to Crestron, and vice-versa.
The system consists of three major components: one or more MUIs, typically an iOS device, an intermediary gateway server, and a set of TCP servers on multiple Crestron controllers. The communication between each of these components shall take place over Ethernet, both LAN and WAN. The communication between the MUIs and the Gateway Server shall be secured using standard security protocols such as TLS or SSL.
The role of the gateway server is to authenticate incoming user interface connections, serve configuration data and route messages. The external MUI will connect to the gateway server, authenticate, announce which room it will control, and then begin issuing commands. The gateway server will, upon authentication and room declaration, forward commands between the MUI-facing server and the TCP/IP client facing the Crestron controller.
Client MUIs have two states: locked and unlocked. Locked devices can only control one room until they are unlocked. Unlocked devices may freely change their target room at any time. In the context of the house, almost all devices will be locked to the room they sit in and serve as the general-use remote control for that space.