Commit a846e83f220e23200c2188c7596367ccc4befd31
1 parent
aec1110166
Exists in
master
register modem on startup
Showing 3 changed files with 44 additions and 1 deletions Side-by-side Diff
config.sample.json
... | ... | @@ -7,7 +7,8 @@ |
7 | 7 | } |
8 | 8 | }, |
9 | 9 | "report_url": { |
10 | - "incoming_sms": "http://localhost:16481/apikey/PLEASE_CHANGE_ME/on-sms" | |
10 | + "incoming_sms": "http://localhost:16481/apikey/PLEASE_CHANGE_ME/on-sms", | |
11 | + "register_modem": "http://localhost:16481/apikey/PLEASE_CHANGE_ME/modems/set" | |
11 | 12 | }, |
12 | 13 | "http_command_server": { |
13 | 14 | "apikey": "PLEASE_CHANGE_ME", |
lib/modem.js
... | ... | @@ -20,6 +20,7 @@ const sms = require('./sms'); |
20 | 20 | const dbCops = require('./db-cops'); |
21 | 21 | const reportSender = require('./report-sender'); |
22 | 22 | const msisdn = require('./msisdn'); |
23 | +const registerModem = require('./register-modem'); | |
23 | 24 | |
24 | 25 | const modemInfo = { |
25 | 26 | device: config.modem.device, |
... | ... | @@ -344,6 +345,7 @@ function init() { |
344 | 345 | mutex.releaseLockWaitForCommand(); |
345 | 346 | logger.verbose('Init completed'); |
346 | 347 | |
348 | + registerModem(); | |
347 | 349 | registerSignalStrengthBackgroundQuery(); |
348 | 350 | }); |
349 | 351 | } |
lib/register-modem.js
... | ... | @@ -0,0 +1,40 @@ |
1 | +'use strict'; | |
2 | + | |
3 | +const path = require('path'); | |
4 | +const request = require('request'); | |
5 | + | |
6 | +const config = require('komodo-sdk/config'); | |
7 | +const logger = require('komodo-sdk/logger'); | |
8 | + | |
9 | +function reportUrl() { | |
10 | + if (config.report_url.register_modem) { | |
11 | + return config.report_url.register_modem; | |
12 | + } | |
13 | + | |
14 | + const baseUrl = path.dirname(config.report_url.incoming_sms); | |
15 | + return `${baseUrl}/modems/set`; | |
16 | +} | |
17 | + | |
18 | +module.exports = (modemInfo) => { | |
19 | + const requestOptions = { | |
20 | + url: reportUrl(), | |
21 | + qs: { | |
22 | + modem: config.name, | |
23 | + modem_imsi: modemInfo.imsi, | |
24 | + modem_msisdn: modemInfo.msisdn, | |
25 | + modem_device: config.modem.device, | |
26 | + uptime: Math.floor(process.uptime()), | |
27 | + report_port: config.http_command_server.listen_port, | |
28 | + report_apikey: config.http_command_server.apikey, | |
29 | + report_path_sms: '/sms', | |
30 | + }, | |
31 | + }; | |
32 | + | |
33 | + request(requestOptions, (err, res) => { | |
34 | + if (err) { | |
35 | + logger.warn(`Error registering modem. ${err.toString()}`); | |
36 | + } else if (res.statusCode !== 200) { | |
37 | + logger.warn(`SMS center respond with HTTP status code ${res.statusCode}.`); | |
38 | + } | |
39 | + }); | |
40 | +}; |