Reference16r1:Concept App MQTT Broker
Applies To
- innovaphone System (PBX/AP) from version 16r1 upwards
Requirements
- innovaphone PBX
- innovaphone AppPlatform
- innovaphone myApps
- MQTT-capable client devices or applications
Licensing
This product requires no licensing.
Concept
The MQTT Broker app provides a standards-compliant MQTT-message-broker running as an App Service on the innovaphone App Platform. It allows MQTT-clients such as IoT devices, sensors, or custom applications to exchange messages using the publish/subscribe pattern. Supported MQTT versions include 3.1.1 and 5.0.
How it works
MQTT clients connect to the broker using the standard MQTT protocol over TCP (port 1883) or encrypted via TLS (port 8883). Clients can publish messages to topics and subscribe to topics to receive messages from other clients. The broker routes published messages to all subscribers of the respective topic.
Authentication is handled via username and password credentials configured in the broker settings. Access control lists (ACLs) can be used to restrict which clients are allowed to publish or subscribe to specific topics.
The broker supports persistent sessions and retained messages. Quality of Service (QoS) levels 0, 1, and 2 are supported, allowing clients to choose between fire-and-forget, at-least-once, and exactly-once message delivery semantics.
Connection to third-party MQTT-brokers is also supported via the Bridge functionality, which allows the innovaphone broker to connect as a client.
Apps
App (innovaphone-mqtt)
The app provides the following configuration and monitoring capabilities:
Overview
Real-time monitoring of incoming messages and currently connected MQTT clients.
Security
Authentication via JWT or username/password can be configured. Specific MQTT clients and topics can be restricted or granted access via Access Control List (ACL).
Install
- Install the MQTT Broker via the App Installer Settings plugin.
- Create a new PBX Object for the MQTT Broker with the Settings Plugin of the MQTT Broker app.
- Configure a name and SIPid.
Set up
Configuration
The protocol and port used for MQTT packet transport can be configured here. To connect to an external MQTT broker (innovaphone or 3rd-party), the required connection details can be entered via Add Bridge.
- Websocket
- Connection between the PBX and the App Platform.
- Services
- API which is used to get access to APIs provided by other App Services.
- MQTT Port
- The TCP port the broker listens on for unencrypted MQTT connections (default: 1883).
- MQTT TLS Port
- The TCP port the broker listens on for TLS-encrypted MQTT connections (default: 8883).
Broker Information
The app displays the following runtime information:
- MQTT Broker address (IP address of the App Platform)
- MQTT Port (plain TCP, default: 1883)
- Currently connected MQTT clients (real-time)
- Incoming messages (real-time)
Troubleshooting
If problems occur, please send a log of the app service. Before reproducing the issue, delete the current contents of the log. The following trace flags should be enabled:
- App
- TCP/TLS
- DB
