Skip to content

Mobile Control Enhancements #1454

Description

@andrew-welker

As time has gone on, some of the conditions in which Mobile Control Direct was initially created and used it's own web server on a separate port no longer exist.

2 of these conditions, requiring users to authenticate to load any pages from the processor's web server (HTML folder in FTP) and using HTTPS (port 443) only no longer apply. The USERPAGEAUTH command can be used to turn off the authentication requirement to load pages from the processor's web server, and the standard HTTP port, port 80, is still open and can load pages under certain conditions from the processor's web server.

In addition, there are now multiple use cases that have some differing requirements that make running MC on a separate port less desirable:

  • Loading an MC React application in the Crestron App for Zoom Rooms requires an HTTPS connection, along with some custom cross-iframe messaging
  • Linking to an MC application from Portal
  • Giving a user a simple URL that they can then use to load the xPanel application

There are workarounds for many of these things, but unifying with Crestron's recommended approach for some of them make sense.

  1. Start packaging MC applications as CH5Z applications and serving them from the processor's HTML folder
  • Doing this allows us to use HTTPS out of the box, because the processor has it enabled
  • With recent updates to the React App Core library, this allows us to run an MC application in the Crestron App For Zoom Rooms context, along with allowing us to possibly load an MC CH5Z directly to a Crestron Panel
  1. Move all non-app serving related HTTP calls to the CWS API in Essentials
  • Same as above, we get HTTPS for free here, without having to do anything
  1. Keep the Websocket server on a separate port, but enable it to use either an Essentials-generated self-signed cert, a CA cert, or stay as non-secure

  2. Update the MC Touchpanel device to send the config.local.json data over serial joins, either as multiple values on multiple joins, or as a JSON message on a single join.

Any input or questions are appreciated.

@ngenovese11 @ndorin @aknous

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions