Go to primary content
Oracle® Communications Diameter Signaling Router Service Capability Exposure Function User's Guide
Release 8.4
F12301-02
Go To Table Of Contents
Contents

Previous
Previous
Next
Next

MQTT Broker

MQTT Broker (MB) acts as cross proxy converting the MQTT messages to HTTP messages and vice versa to enable IP device communication between IoT devices and SCS/AS. The MQTT Broker enables IoT device communication for this use case.

MQTT Broker complies with MQTT 3.1.1 specification and supports the following features:

  1. MQTT Subscriber messages from the application to a specific topic and device
  2. Subscribe message from the application to a specific topic
  3. Publish message from the application to a specific topic and device
  4. MQTT Subscribe messages from device to a specific topic
  5. Publish message from device to a specific topic
  6. High availability
  7. Provide a rest interface to provision MQTT details into system
  8. Integration with AAA server to get MQTT device IP details
  9. Integration with AAA server to update the device IP details in MQTT broker
  10. Route T8 messages to DSR and MQTT Broker depending on the device details provisioned in the system
  11. Perform Access control checks based on configured MSISDN range and domain IDs of external identifier for MO and MT messages per application
  12. Perform configured APN rate control per MQTT CONNECT, SUBSCRIBE, PUBLISH to and from devices
  13. Cross-routing functionality in OCSG cluster to handle T8 requests if the devices are connected to different AppServer

MQTT Broker provides a unified T8 interface for IP device communication enabling NIDD Downlink Data Delivery (POST) and monitoring event (POST & DELETE) call flows. For more details on the required configuration, see section MQTT Configuration.

T8-MQTT-Message Mapping

This section describes the mandatory parameters requires in T8 messages and their mapping to MQTT parameters.

Table 2-9 NIDD Downlink Data Delivery (POST)

Parameter Name Type Mandatory/Optional MQTT mapping
SCSASID in Request URI Input Mandatory N/A
ConfigID in request URI Defaulted to 'IPDD' Mandatory N/A
ExternalId in Json Body Input Optional Mapped to corresponding MQTT Device ID, this field is optional if MSISDN is present or for Broadcast messages
MSISDN in Json Body Input Optional Mapped to corresponding MQTT Device ID, this field is optional if ExternalID is present or for Broadcast messages
Self in Json Body Input Optional Stored for DLD buffered data delivery status notifications in case of MT buffering
Data in json body Input Mandatory MQTT PUBLISH Data
Custom Header "Xscef-message-type: MQTT" Input Mandatory (in case of broadcast) N/A
Custom Header "Xscef-mqtt-topic-name:<topic>" Input Mandatory MQTT PUBLISH topic name

Table 2-10 NIDD Buffered Message Delivery Status Notification

Parameter Name Type Mandatory/Optional MQTT Mapping
niddDownlinkDataTransfer Input Mandatory Publishing topic name
deliveryStatus Input Mandatory N/A

Table 2-11 Monitoring Event subscription (POST)

Parameter Name Type Mandatory/Optional MQTT Mapping
Custom Header "Xscef-message-type: MQTT" Input Mandatory (in case device id not present)
SCSASID in Request URI Input Mandatory N/A
ExternalId in Json Body Input Optional Mapped to corresponding MQTT Device ID, this field is optional if MSISDN is present or subscriptions without device id.
MSISDN in Json Body Input Optional Mapped to corresponding MQTT Device ID, this field is optional if External ID is present or subscriptions without device id.
Notification Destination in Json Body Input Mandatory N/A
Monitoring type in Json body Input Mandatory MQTT topic name
subscriptionId Output Mandatory N/A

Table 2-12 Monitoring Event subscription (DELETE)

Parameter Name Type Mandatory/Optional MQTT Mapping
Custom Header "Xscef-message-type: MQTT" Input Mandatory
SCSASID in Request URI Input Mandatory N/A
subscriptionId in request Parameter Input Mandatory N/A

Table 2-13 Monitoring Event subscription Notification

Parameter Name Type Mandatory/Optional MQTT Mapping
Custom Header "Xscef-mqtt-mo-data:<payload>" Input Mandatory Data in PUBLISH message from device
Subscription in Json Body (Subscription Id) Input Mandatory N/A