This documentation is for WSO2 IoT Server 3.1.0. View the documentation for the latest release.
Adding a Push Notification Provider - IoT Server 3.1.0 - WSO2 Documentation
Skip to end of metadata
Go to start of metadata

By default WSO2 IoT Server has implemented push notification providers for MQTT, XMPP, FCM, and APNS. This document will guide you on how to create a new push notification provider for your device type.

Follow the steps given below:

  1. Implement the PushNotificationProvider interface by importing org.wso2.carbon.device.mgt.common.push.notification.PushNotificationProvider.

    Make sure to export the dependency given below in your pom.xml file.


    For example, see the sample implementation done for FCM notification provider.

    package org.wso2.carbon.device.mgt.extensions.push.notification.provider.fcm;
    import org.wso2.carbon.device.mgt.common.push.notification.NotificationStrategy;
    import org.wso2.carbon.device.mgt.common.push.notification.PushNotificationConfig;
    import org.wso2.carbon.device.mgt.common.push.notification.PushNotificationProvider;
    public class FCMBasedPushNotificationProvider implements PushNotificationProvider {
     private static final String PS_PROVIDER_FCM = "FCM";
     public String getType() {
      return PS_PROVIDER_FCM;
     public NotificationStrategy getNotificationStrategy(PushNotificationConfig config) {
      return new FCMNotificationStrategy(config);
  2. Configure the <IoT_HOME>/conf/cdm-config.xml file by adding the reference to your notification provider, under the PushNotificationProviders property.

    For example, see the configuration done for the FCM notification provider.

  3. Configure your device type XML file to call the push notification provider when the server needs to communicate with the device. 
    For example, see how it was implemented for the notification provider of RaspberryPi.

    <PushNotificationProvider type="MQTT">

What's next?

For more information on how the notification provider is used, see Server Communicating with the Device.

  • No labels