MQTT General Guidelines
General
OCSG Appserver startup time may be extended due to screening of all existing subscriptions from DB.
CustomSLA
- Topic prefix mandatory in CustomSLA for mqtt feature, without topic prefix in CustomSLA mqtt feature will not function as expected.
- When mqtt Topic prefix is removed from CustomSLA then corresponding subscriptions will be removed.
- Subscriptions and PUBLISH data from SCS/AS or Device will be rejected if the topic name does not contain any valid topic prefix.
NIDD/ME for IPDD
- Subscriptions without device details are treated as topic level subscription. Such that all publish messages from allowed devices for SCS/AS that match to the subscribed topic will be notified to the application.
- NIDD DLD without device details are treated as broadcast messages. MT messages will be send to devices subscribed to the publishing topic.
- Custom Header
"Xscef-message-type: MQTT"
is mandatory in case of broadcast MT messages and subscriptions without device details. - In the NIDD downlink data
deliveries on the request url, config id needs to be provided with value
ipdd
. Refer to Request Mapping section. If the application wants to receive notifications on buffered data delivery, self element needs to be populated with notification url in request body. - For NIDD Buffered data delivery status notification, topic name will be provided in the link to indicate topic for which the buffered message is delivered.
- Buffered messages for devices are deleted after configurable period. Refer to DB Auditor section.
Application Retain Messages
- NIDD DLD broadcast messages will be persisted in broker.
- Only latest DLD message is retained at broker per topic.
- Upon receiving new subscription from device, matching retained messages are delivered to device.
- To clear retain message,
SCS/AS should send DLD broadcast with empty data.
{ "data": "", "self": "http://192.168.102.5:10001/scs/resources/t8" }
APN Rate Control
APN rate control check is performed for MQTT CONNECT, SUBSCRIBE, and PUBLISH (to/from) from Devices.
MQTT Protocol Specific
- MQTT client ID in CONNECT is mandatory.
There are no specific restrictions, but the size of Client ID cannot be more than 256 characters. Also, it is expected that Client ID is unique for each device.
- Retain message from device not supported.
- Qos only between Device and Broker is not applicable to T8 traffic.
- Topic name should not
start with
/
. - MQTT PUBLISH message does not support Binary format data.
- As per the specification, connection to the device drops upon unexpected error in message processing at Broker.
- It is expected not to give
subscription topic same as the mqtt topic prefix. Wildcard is added at the end
to receive all messages published for the topic prefix. For example, if mqtt
topic prefix is "
/oracle/bangalore/valence/
" then subscription topic should be similar to "/oracle/bangalore/valence/#
".
MQTT PSK
- PSK for devices can be configured using MQTT MBean operation. Refer to MQTT configuration section for more details.
- PSK is encrypted and persisted in SCEF database.
Will message
Device will messages are not persisted at MQTT Broker. Once the device is disconnected from the Broker, will message is removed and notified to all subscribed applications.
CDR
CDR's are created for all T8 Traffic.
AAA Device Provisioning
- Diameter server supports only TCP transport channel.
- AAA Diameter Stack starts in server mode.
- External load balancer required between AAA Server and APIGateway (OCSG ).