Commit 3915d32894c5e1b28f422a5b55b4260a8c60b45c
1 parent
19788e2dc0
Exists in
master
Tambahan data registrasi modem
Showing 2 changed files with 7 additions and 1 deletions Inline Diff
lib/register-modem.js
1 | 'use strict'; | 1 | 'use strict'; |
2 | 2 | ||
3 | const path = require('path'); | 3 | const path = require('path'); |
4 | const request = require('request'); | 4 | const request = require('request'); |
5 | 5 | ||
6 | const config = require('komodo-sdk/config'); | 6 | const config = require('komodo-sdk/config'); |
7 | const logger = require('komodo-sdk/logger'); | 7 | const logger = require('komodo-sdk/logger'); |
8 | 8 | ||
9 | function reportUrl() { | 9 | function reportUrl() { |
10 | if (config.report_url.register_modem) { | 10 | if (config.report_url.register_modem) { |
11 | return config.report_url.register_modem; | 11 | return config.report_url.register_modem; |
12 | } | 12 | } |
13 | 13 | ||
14 | const baseUrl = path.dirname(config.report_url.incoming_sms); | 14 | const baseUrl = path.dirname(config.report_url.incoming_sms); |
15 | return `${baseUrl}/modems/set`; | 15 | return `${baseUrl}/modems/set`; |
16 | } | 16 | } |
17 | 17 | ||
18 | module.exports = (modemInfo) => { | 18 | module.exports = (modemInfo) => { |
19 | const requestOptions = { | 19 | const requestOptions = { |
20 | url: reportUrl(), | 20 | url: reportUrl(), |
21 | qs: { | 21 | qs: { |
22 | modem: config.name, | 22 | modem: config.name, |
23 | modem_device: config.modem.device, | ||
23 | modem_imsi: modemInfo.imsi, | 24 | modem_imsi: modemInfo.imsi, |
24 | modem_msisdn: modemInfo.msisdn, | 25 | modem_msisdn: modemInfo.msisdn, |
25 | modem_device: config.modem.device, | 26 | modem_network_id: modemInfo.networkId, |
27 | modem_network_name: modemInfo.networkName, | ||
28 | modem_signal_strength: modemInfo.signalStrength, | ||
26 | uptime: Math.floor(process.uptime()), | 29 | uptime: Math.floor(process.uptime()), |
27 | report_port: config.http_command_server.listen_port, | 30 | report_port: config.http_command_server.listen_port, |
28 | report_apikey: config.http_command_server.apikey, | 31 | report_apikey: config.http_command_server.apikey, |
29 | report_path_sms: '/sms', | 32 | report_path_sms: '/sms', |
30 | }, | 33 | }, |
31 | }; | 34 | }; |
32 | 35 | ||
33 | logger.info('Sending modem registration to center'); | 36 | logger.info('Sending modem registration to center'); |
34 | request(requestOptions, (err, res) => { | 37 | request(requestOptions, (err, res) => { |
35 | if (err) { | 38 | if (err) { |
36 | logger.warn(`Error registering modem. ${err.toString()}`); | 39 | logger.warn(`Error registering modem. ${err.toString()}`); |
37 | } else if (res.statusCode !== 200) { | 40 | } else if (res.statusCode !== 200) { |
38 | logger.warn(`SMS center respond with HTTP status code ${res.statusCode}.`); | 41 | logger.warn(`SMS center respond with HTTP status code ${res.statusCode}.`); |
39 | } | 42 | } |
40 | }); | 43 | }); |
41 | }; | 44 | }; |
42 | 45 |
lib/report-sender.js
1 | 'use strict'; | 1 | 'use strict'; |
2 | 2 | ||
3 | const request = require('request'); | 3 | const request = require('request'); |
4 | 4 | ||
5 | const config = require('komodo-sdk/config'); | 5 | const config = require('komodo-sdk/config'); |
6 | const logger = require('komodo-sdk/logger'); | 6 | const logger = require('komodo-sdk/logger'); |
7 | 7 | ||
8 | function incomingSMS(message, modemInfo) { | 8 | function incomingSMS(message, modemInfo) { |
9 | if (!message || !config || !config.report_url || !config.report_url.incoming_sms) return; | 9 | if (!message || !config || !config.report_url || !config.report_url.incoming_sms) return; |
10 | 10 | ||
11 | if (!message.metadata) { | 11 | if (!message.metadata) { |
12 | const e = new Error('Missing metadata on incoming sms'); | 12 | const e = new Error('Missing metadata on incoming sms'); |
13 | e.smsObj = message; | 13 | e.smsObj = message; |
14 | throw e; | 14 | throw e; |
15 | } | 15 | } |
16 | 16 | ||
17 | if (!message.metadata.from) { | 17 | if (!message.metadata.from) { |
18 | const e = new Error('Missing metadata.from on incoming sms'); | 18 | const e = new Error('Missing metadata.from on incoming sms'); |
19 | e.smsObj = message; | 19 | e.smsObj = message; |
20 | throw e; | 20 | throw e; |
21 | } | 21 | } |
22 | 22 | ||
23 | if (!message.message) { | 23 | if (!message.message) { |
24 | const e = new Error('Missing message on incoming sms'); | 24 | const e = new Error('Missing message on incoming sms'); |
25 | e.smsObj = message; | 25 | e.smsObj = message; |
26 | throw e; | 26 | throw e; |
27 | } | 27 | } |
28 | 28 | ||
29 | const requestOptions = { | 29 | const requestOptions = { |
30 | url: config.report_url.incoming_sms, | 30 | url: config.report_url.incoming_sms, |
31 | qs: { | 31 | qs: { |
32 | ts: message.metadata.ts, | 32 | ts: message.metadata.ts, |
33 | status: message.metadata.status, | 33 | status: message.metadata.status, |
34 | number: message.metadata.from, | 34 | number: message.metadata.from, |
35 | msg: message.message, | 35 | msg: message.message, |
36 | modem: config.name, | 36 | modem: config.name, |
37 | modem_imsi: modemInfo.imsi, | 37 | modem_imsi: modemInfo.imsi, |
38 | modem_msisdn: modemInfo.msisdn, | 38 | modem_msisdn: modemInfo.msisdn, |
39 | modem_device: config.modem.device, | 39 | modem_device: config.modem.device, |
40 | modem_network_id: modemInfo.networkId, | ||
41 | modem_network_name: modemInfo.networkName, | ||
42 | modem_signal_strength: modemInfo.signalStrength, | ||
40 | uptime: Math.floor(process.uptime()), | 43 | uptime: Math.floor(process.uptime()), |
41 | report_port: config.http_command_server.listen_port, | 44 | report_port: config.http_command_server.listen_port, |
42 | report_apikey: config.http_command_server.apikey, | 45 | report_apikey: config.http_command_server.apikey, |
43 | report_path_sms: '/sms', | 46 | report_path_sms: '/sms', |
44 | }, | 47 | }, |
45 | }; | 48 | }; |
46 | 49 | ||
47 | logger.info('Sending report via HTTP', requestOptions); | 50 | logger.info('Sending report via HTTP', requestOptions); |
48 | request(requestOptions, (err, res, body) => { | 51 | request(requestOptions, (err, res, body) => { |
49 | if (err) { | 52 | if (err) { |
50 | logger.warn(`Error sending report via HTTP. ${err.toString()}`); | 53 | logger.warn(`Error sending report via HTTP. ${err.toString()}`); |
51 | return; | 54 | return; |
52 | } | 55 | } |
53 | 56 | ||
54 | if (res.statusCode !== 200) { | 57 | if (res.statusCode !== 200) { |
55 | logger.warn(`Error sending report via HTTP. Server respond with HTTP status code ${res.statusCode}`, { http_status_code: res.statusCode, body }); | 58 | logger.warn(`Error sending report via HTTP. Server respond with HTTP status code ${res.statusCode}`, { http_status_code: res.statusCode, body }); |
56 | } | 59 | } |
57 | }); | 60 | }); |
58 | } | 61 | } |
59 | 62 | ||
60 | exports.incomingSMS = incomingSMS; | 63 | exports.incomingSMS = incomingSMS; |
61 | 64 |