Commit 73a2b033246229e104e18a42eb0f69f3e9324b5d
1 parent
ffdb4e07cc
Exists in
master
MOre human log
Showing 2 changed files with 6 additions and 6 deletions Inline Diff
lib/smstools-handler/received.js
1 | const fs = require('fs'); | 1 | const fs = require('fs'); |
2 | const moment = require('moment'); | 2 | const moment = require('moment'); |
3 | const logger = require('komodo-sdk/logger'); | 3 | const logger = require('komodo-sdk/logger'); |
4 | 4 | ||
5 | const config = require('komodo-sdk/config'); | 5 | const config = require('komodo-sdk/config'); |
6 | const messagingClient = require('komodo-center-messaging-client-lib'); | 6 | const messagingClient = require('komodo-center-messaging-client-lib'); |
7 | const transport = require('../transport'); | 7 | const transport = require('../transport'); |
8 | 8 | ||
9 | messagingClient.setTransport(transport); | 9 | messagingClient.setTransport(transport); |
10 | 10 | ||
11 | const mailparser = require('../mailparser-wrapper'); | 11 | const mailparser = require('../mailparser-wrapper'); |
12 | 12 | ||
13 | const eventType = 'RECEIVED'; | 13 | const eventType = 'RECEIVED'; |
14 | 14 | ||
15 | module.exports = async (msgFilename) => { | 15 | module.exports = async (msgFilename) => { |
16 | const msg = await fs.promises.readFile(msgFilename); | 16 | const msg = await fs.promises.readFile(msgFilename); |
17 | 17 | ||
18 | if (!msg) { | 18 | if (!msg) { |
19 | logger.warn('Can not read message file', { eventType, msgFile: msgFilename }); | 19 | logger.warn('Message received but we can not read the file', { eventType, msgFile: msgFilename }); |
20 | return; | 20 | return; |
21 | } | 21 | } |
22 | 22 | ||
23 | const parsedMsg = await mailparser(msg); | 23 | const parsedMsg = await mailparser(msg); |
24 | 24 | ||
25 | if (!parsedMsg || !parsedMsg.headers) { | 25 | if (!parsedMsg || !parsedMsg.headers) { |
26 | logger.warn('Invalid message', { eventType, msgFile: msgFilename, msgFileContent: msg }); | 26 | logger.warn('Message received but web can not parse the file', { eventType, msgFile: msgFilename, msgFileContent: msg }); |
27 | return; | 27 | return; |
28 | } | 28 | } |
29 | 29 | ||
30 | const from = parsedMsg.headers.get('from').text; | 30 | const from = parsedMsg.headers.get('from').text; |
31 | const imsi = parsedMsg.headers.get('imsi'); | 31 | const imsi = parsedMsg.headers.get('imsi'); |
32 | const { text } = parsedMsg; | 32 | const { text } = parsedMsg; |
33 | 33 | ||
34 | const sentRaw = parsedMsg.headers.get('sent'); | 34 | const sentRaw = parsedMsg.headers.get('sent'); |
35 | const sent = sentRaw && moment(sentRaw, 'YY-MM-DD HH:mm:ss'); | 35 | const sent = sentRaw && moment(sentRaw, 'YY-MM-DD HH:mm:ss'); |
36 | 36 | ||
37 | logger.info('Message parsed', { | 37 | logger.info('Message received', { |
38 | eventType, | 38 | eventType, |
39 | msgFile: msgFilename, | 39 | msgFile: msgFilename, |
40 | from, | 40 | from, |
41 | imsi, | 41 | imsi, |
42 | text, | 42 | text, |
43 | sent, | 43 | sent, |
44 | }); | 44 | }); |
45 | 45 | ||
46 | if (!from || !imsi || !text) { | 46 | if (!from || !imsi || !text) { |
47 | return; | 47 | return; |
48 | } | 48 | } |
49 | 49 | ||
50 | if (sent) { | 50 | if (sent) { |
51 | const messageAgeMs = new Date() - sent; | 51 | const messageAgeMs = new Date() - sent; |
52 | if (messageAgeMs > 5 * 60 * 1000) { | 52 | if (messageAgeMs > 5 * 60 * 1000) { |
53 | logger.info('Ignore expired message', { | 53 | logger.info('Ignore expired message', { |
54 | eventType, | 54 | eventType, |
55 | msgFile: msgFilename, | 55 | msgFile: msgFilename, |
56 | imsi, | 56 | imsi, |
57 | from, | 57 | from, |
58 | text, | 58 | text, |
59 | sent, | 59 | sent, |
60 | messageAgeMs, | 60 | messageAgeMs, |
61 | }); | 61 | }); |
62 | return; | 62 | return; |
63 | } | 63 | } |
64 | } | 64 | } |
65 | 65 | ||
66 | const doNotForwardToCore = (from.search(/(\+)*62/) !== 0) || (from.length <= 8); | 66 | const doNotForwardToCore = (from.search(/(\+)*62/) !== 0) || (from.length <= 8); |
67 | 67 | ||
68 | messagingClient.onIncomingMessage({ | 68 | messagingClient.onIncomingMessage({ |
69 | me: imsi, | 69 | me: imsi, |
70 | partner: `${from}${config.number_suffix || ''}`, | 70 | partner: `${from}${config.number_suffix || ''}`, |
71 | partner_raw: from, | 71 | partner_raw: from, |
72 | msg: text, | 72 | msg: text, |
73 | origin_label: imsi || 'UNKNOWN', | 73 | origin_label: imsi || 'UNKNOWN', |
74 | origin_transport: 'SMS', | 74 | origin_transport: 'SMS', |
75 | origin_partner: from, | 75 | origin_partner: from, |
76 | do_not_forward_to_core: doNotForwardToCore, | 76 | do_not_forward_to_core: doNotForwardToCore, |
77 | }); | 77 | }); |
78 | }; | 78 | }; |
79 | 79 |
lib/smstools-handler/sent.js
1 | const fs = require('fs'); | 1 | const fs = require('fs'); |
2 | const logger = require('komodo-sdk/logger'); | 2 | const logger = require('komodo-sdk/logger'); |
3 | 3 | ||
4 | const config = require('komodo-sdk/config'); | 4 | const config = require('komodo-sdk/config'); |
5 | const messagingClient = require('komodo-center-messaging-client-lib'); | 5 | const messagingClient = require('komodo-center-messaging-client-lib'); |
6 | const transport = require('../transport'); | 6 | const transport = require('../transport'); |
7 | const mailparser = require('../mailparser-wrapper'); | 7 | const mailparser = require('../mailparser-wrapper'); |
8 | 8 | ||
9 | messagingClient.setTransport(transport); | 9 | messagingClient.setTransport(transport); |
10 | 10 | ||
11 | const eventType = 'SENT'; | 11 | const eventType = 'SENT'; |
12 | 12 | ||
13 | 13 | ||
14 | module.exports = async (msgFilename) => { | 14 | module.exports = async (msgFilename) => { |
15 | const msg = await fs.promises.readFile(msgFilename); | 15 | const msg = await fs.promises.readFile(msgFilename); |
16 | 16 | ||
17 | if (!msg) { | 17 | if (!msg) { |
18 | logger.warn('Can not read message file', { eventType, msgFile: msgFilename }); | 18 | logger.warn('Message sent but we can not read message file', { eventType, msgFile: msgFilename }); |
19 | return; | 19 | return; |
20 | } | 20 | } |
21 | 21 | ||
22 | const parsedMsg = await mailparser(msg); | 22 | const parsedMsg = await mailparser(msg); |
23 | 23 | ||
24 | if (!parsedMsg || !parsedMsg.headers) { | 24 | if (!parsedMsg || !parsedMsg.headers) { |
25 | logger.warn('Invalid message', { eventType, msgFile: msgFilename }); | 25 | logger.warn('Message sent but we can not parse the file', { eventType, msgFile: msgFilename }); |
26 | return; | 26 | return; |
27 | } | 27 | } |
28 | 28 | ||
29 | const to = parsedMsg.headers.get('to').text; | 29 | const to = parsedMsg.headers.get('to').text; |
30 | const imsi = parsedMsg.headers.get('imsi'); | 30 | const imsi = parsedMsg.headers.get('imsi'); |
31 | const { text } = parsedMsg; | 31 | const { text } = parsedMsg; |
32 | 32 | ||
33 | logger.info('Message parsed', { | 33 | logger.info('Message sent', { |
34 | eventType, | 34 | eventType, |
35 | msgFile: msgFilename, | 35 | msgFile: msgFilename, |
36 | to, | 36 | to, |
37 | imsi, | 37 | imsi, |
38 | text, | 38 | text, |
39 | }); | 39 | }); |
40 | 40 | ||
41 | if (!to || !imsi || !text) { | 41 | if (!to || !imsi || !text) { |
42 | return; | 42 | return; |
43 | } | 43 | } |
44 | 44 | ||
45 | messagingClient.onIncomingMessage({ | 45 | messagingClient.onIncomingMessage({ |
46 | me: imsi, | 46 | me: imsi, |
47 | partner: `${to}${config.number_suffix || ''}`, | 47 | partner: `${to}${config.number_suffix || ''}`, |
48 | partner_raw: to, | 48 | partner_raw: to, |
49 | msg: text, | 49 | msg: text, |
50 | origin_label: imsi || 'UNKNOWN', | 50 | origin_label: imsi || 'UNKNOWN', |
51 | origin_transport: 'SMS', | 51 | origin_transport: 'SMS', |
52 | origin_partner: to, | 52 | origin_partner: to, |
53 | do_not_forward_to_core: true, | 53 | do_not_forward_to_core: true, |
54 | is_outgoing: true, | 54 | is_outgoing: true, |
55 | }); | 55 | }); |
56 | }; | 56 | }; |
57 | 57 |