Commit 3915d32894c5e1b28f422a5b55b4260a8c60b45c

Authored by Adhidarma Hadiwinoto
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