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