Commit a95cb2490ba5998d6e733066aec4be445e78ef2b
1 parent
c8f86004fa
Exists in
master
Add message age in on received logs
Showing 1 changed file with 4 additions and 3 deletions Inline Diff
lib/apiserver/handler/on-received.js
1 | const DEFAULT_MAX_MESSAGE_AGE_IN_SECS = 300; | 1 | const DEFAULT_MAX_MESSAGE_AGE_IN_SECS = 300; |
2 | 2 | ||
3 | const moment = require('moment'); | 3 | const moment = require('moment'); |
4 | const config = require('komodo-sdk/config'); | 4 | const config = require('komodo-sdk/config'); |
5 | const logger = require('komodo-sdk/logger'); | 5 | const logger = require('komodo-sdk/logger'); |
6 | 6 | ||
7 | const messagingCenter = require('komodo-center-messaging-client-lib'); | 7 | const messagingCenter = require('komodo-center-messaging-client-lib'); |
8 | const modems = require('../../modems'); | 8 | const modems = require('../../modems'); |
9 | 9 | ||
10 | const blacklistMsgPatterns = [ | 10 | const blacklistMsgPatterns = [ |
11 | /^TRANSAKSI KE NOMOR/, | 11 | /^TRANSAKSI KE NOMOR/, |
12 | /^Kesalahan autentikasi/, | 12 | /^Kesalahan autentikasi/, |
13 | /^Saldo anda/, | 13 | /^Saldo anda/, |
14 | /^Perintah salah/, | 14 | /^Perintah salah/, |
15 | ]; | 15 | ]; |
16 | 16 | ||
17 | const maxMessageAgeInSeconds = config.max_message_age_in_secs | ||
18 | || DEFAULT_MAX_MESSAGE_AGE_IN_SECS; | ||
19 | |||
17 | module.exports = (req, res) => { | 20 | module.exports = (req, res) => { |
18 | res.end('OK'); | 21 | res.end('OK'); |
19 | 22 | ||
20 | const { | 23 | const { |
21 | msg, msisdn, smsc, ts, | 24 | msg, msisdn, smsc, ts, |
22 | } = req.query; | 25 | } = req.query; |
23 | 26 | ||
24 | if (!(msg || '').trim()) { | 27 | if (!(msg || '').trim()) { |
25 | logger.verbose('ON-RECEIVED B09186E3: Skip empty message', { | 28 | logger.verbose('ON-RECEIVED B09186E3: Skip empty message', { |
26 | qs: req.query, | 29 | qs: req.query, |
27 | }); | 30 | }); |
28 | 31 | ||
29 | return; | 32 | return; |
30 | } | 33 | } |
31 | 34 | ||
32 | const msgUpperCased = (msg || '').trim().toUpperCase(); | 35 | const msgUpperCased = (msg || '').trim().toUpperCase(); |
33 | if ( | 36 | if ( |
34 | (msisdn.search(/\+*62/) === 0) | 37 | (msisdn.search(/\+*62/) === 0) |
35 | && blacklistMsgPatterns.find((pattern) => msgUpperCased.search(pattern) >= 0) | 38 | && blacklistMsgPatterns.find((pattern) => msgUpperCased.search(pattern) >= 0) |
36 | ) { | 39 | ) { |
37 | logger.verbose('ON-RECEIVED 5486D373: Skip invalid message', { | 40 | logger.verbose('ON-RECEIVED 5486D373: Skip invalid message', { |
38 | msg, | 41 | msg, |
39 | msisdn, | 42 | msisdn, |
40 | qs: req.query, | 43 | qs: req.query, |
41 | }); | 44 | }); |
42 | 45 | ||
43 | return; | 46 | return; |
44 | } | 47 | } |
45 | 48 | ||
46 | const sentTime = moment(ts, 'YYYY-MM-DD HH:mm:ss'); | 49 | const sentTime = moment(ts, 'YYYY-MM-DD HH:mm:ss'); |
47 | const messageAgeInSeconds = Math.round(Number(new Date() - sentTime) / 1000); | 50 | const messageAgeInSeconds = Math.round(Number(new Date() - sentTime) / 1000); |
48 | 51 | ||
49 | const maxMessageAgeInSeconds = config.max_message_age_in_secs | ||
50 | || DEFAULT_MAX_MESSAGE_AGE_IN_SECS; | ||
51 | |||
52 | if (messageAgeInSeconds > maxMessageAgeInSeconds) { | 52 | if (messageAgeInSeconds > maxMessageAgeInSeconds) { |
53 | logger.warn('ON-RECEIVED 2247F406: Got expired message from EVO-CP', { | 53 | logger.warn('ON-RECEIVED 2247F406: Got expired message from EVO-CP', { |
54 | qs: req.query, | 54 | qs: req.query, |
55 | messageAgeInSeconds, | 55 | messageAgeInSeconds, |
56 | maxMessageAgeInSeconds, | 56 | maxMessageAgeInSeconds, |
57 | }); | 57 | }); |
58 | 58 | ||
59 | return; | 59 | return; |
60 | } | 60 | } |
61 | 61 | ||
62 | logger.info('ON-RECEIVED D3747E3C: Got message from EVO-CP', { | 62 | logger.info('ON-RECEIVED D3747E3C: Got message from EVO-CP', { |
63 | messageAgeInSeconds, | ||
63 | qs: req.query, | 64 | qs: req.query, |
64 | }); | 65 | }); |
65 | 66 | ||
66 | const modem = modems.modemsDictionary[smsc] || {}; | 67 | const modem = modems.modemsDictionary[smsc] || {}; |
67 | 68 | ||
68 | const doNotForwardToCore = (msisdn.search(/(\+)*62/) !== 0) || (msisdn.length <= 8); | 69 | const doNotForwardToCore = (msisdn.search(/(\+)*62/) !== 0) || (msisdn.length <= 8); |
69 | 70 | ||
70 | messagingCenter.onIncomingMessage({ | 71 | messagingCenter.onIncomingMessage({ |
71 | me: modem.imsi || smsc, | 72 | me: modem.imsi || smsc, |
72 | partner: `${msisdn}${config.number_suffix || ''}`, | 73 | partner: `${msisdn}${config.number_suffix || ''}`, |
73 | partner_raw: msisdn, | 74 | partner_raw: msisdn, |
74 | msg, | 75 | msg, |
75 | origin_label: modem.imsi || smsc, | 76 | origin_label: modem.imsi || smsc, |
76 | origin_transport: 'SMS', | 77 | origin_transport: 'SMS', |
77 | origin_partner: msisdn, | 78 | origin_partner: msisdn, |
78 | do_not_forward_to_core: doNotForwardToCore, | 79 | do_not_forward_to_core: doNotForwardToCore, |