Commit a8ec229c02b0ba9774023f12508463a347fdfdda

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