diff --git a/config.sample.json b/config.sample.json
index 156a455..1ba9097 100644
--- a/config.sample.json
+++ b/config.sample.json
@@ -7,7 +7,8 @@
         }
     },
     "report_url": {
-        "incoming_sms": "http://localhost:16481/apikey/PLEASE_CHANGE_ME/on-sms"
+        "incoming_sms": "http://localhost:16481/apikey/PLEASE_CHANGE_ME/on-sms",
+        "register_modem": "http://localhost:16481/apikey/PLEASE_CHANGE_ME/modems/set"
     },
     "http_command_server": {
         "apikey": "PLEASE_CHANGE_ME",
diff --git a/lib/modem.js b/lib/modem.js
index 47a2a06..e77f035 100644
--- a/lib/modem.js
+++ b/lib/modem.js
@@ -20,6 +20,7 @@ const sms = require('./sms');
 const dbCops = require('./db-cops');
 const reportSender = require('./report-sender');
 const msisdn = require('./msisdn');
+const registerModem = require('./register-modem');
 
 const modemInfo = {
     device: config.modem.device,
@@ -344,6 +345,7 @@ function init() {
         mutex.releaseLockWaitForCommand();
         logger.verbose('Init completed');
 
+        registerModem();
         registerSignalStrengthBackgroundQuery();
     });
 }
diff --git a/lib/register-modem.js b/lib/register-modem.js
new file mode 100644
index 0000000..fb3eea9
--- /dev/null
+++ b/lib/register-modem.js
@@ -0,0 +1,40 @@
+'use strict';
+
+const path = require('path');
+const request = require('request');
+
+const config = require('komodo-sdk/config');
+const logger = require('komodo-sdk/logger');
+
+function reportUrl() {
+    if (config.report_url.register_modem) {
+        return config.report_url.register_modem;
+    }
+
+    const baseUrl = path.dirname(config.report_url.incoming_sms);
+    return `${baseUrl}/modems/set`;
+}
+
+module.exports = (modemInfo) => {
+    const requestOptions = {
+        url: reportUrl(),
+        qs: {
+            modem: config.name,
+            modem_imsi: modemInfo.imsi,
+            modem_msisdn: modemInfo.msisdn,
+            modem_device: config.modem.device,
+            uptime: Math.floor(process.uptime()),
+            report_port: config.http_command_server.listen_port,
+            report_apikey: config.http_command_server.apikey,
+            report_path_sms: '/sms',
+        },
+    };
+
+    request(requestOptions, (err, res) => {
+        if (err) {
+            logger.warn(`Error registering modem. ${err.toString()}`);
+        } else if (res.statusCode !== 200) {
+            logger.warn(`SMS center respond with HTTP status code ${res.statusCode}.`);
+        }
+    });
+};