Compare View

switch
from
...
to
 
Commits (4)

Changes

Showing 5 changed files Side-by-side Diff

lib/apiserver/index.js
... ... @@ -39,7 +39,7 @@ function onIncomingSms(req, res) {
39 39  
40 40 const numberWithSuffix = req.query.number.replace(/^\+/, '') + (config.number_suffix || '');
41 41  
42   - partnerLastSeen.set(req.query.number, req.query.modem);
  42 + partnerLastSeen.set(req.query.number, req.query.modem_imsi);
43 43  
44 44 history.push({
45 45 ts: req.query.ts || moment().format('YYYY-MM-DD HH:mm:ss'),
lib/partner-last-seen.js
... ... @@ -3,14 +3,10 @@
3 3 const REDIS_TTL_SECS = 3600 * 24 * 31;
4 4  
5 5 const config = require('komodo-sdk/config');
6   -// const logger = require('komodo-sdk/logger');
7 6  
8 7 const redis = require('redis');
9 8 const redisClient = redis.createClient(config.redis || { host: '127.0.0.1' });
10 9  
11   -const _caches = {};
12   -
13   -
14 10 function _composeKeyword(partner) {
15 11 return `POCHINKI_PARTNER_LAST_SEEN_${ partner }`;
16 12 }
... ... @@ -23,12 +19,8 @@ function get(partnerNumber) {
23 19 if (!partnerNumber) {
24 20 resolve(null);
25 21 }
26   - else if (_caches[partnerNumber]) {
27   - resolve(_caches[partnerNumber]);
28   - }
29 22 else {
30 23 const keyword = _composeKeyword(partnerNumber);
31   - // logger.verbose(`REDIS-DEBUG: GET`, {keyword});
32 24  
33 25 redisClient.get(keyword, function(err, reply) {
34 26 if (err) {
... ... @@ -36,7 +28,6 @@ function get(partnerNumber) {
36 28 }
37 29 else if (reply) {
38 30 resolve(Number(reply));
39   - _caches[partnerNumber] = Number(reply);
40 31 }
41 32 else {
42 33 resolve(null);
... ... @@ -46,18 +37,15 @@ function get(partnerNumber) {
46 37 })
47 38 }
48 39  
49   -function set(partnerNumber, modemName) {
  40 +function set(partnerNumber, value) {
50 41 partnerNumber = (partnerNumber || '').replace(/^\+/, '');
51 42  
52   - if (!partnerNumber || !modemName) {
  43 + if (!partnerNumber || !value) {
53 44 return;
54 45 }
55 46  
56   - _caches[partnerNumber] = modemName;
57   -
58 47 const keyword = _composeKeyword(partnerNumber);
59   - // logger.verbose('REDIS-DEBUG: SET', { keyword })
60   - redisClient.set(keyword, modemName, 'EX', REDIS_TTL_SECS);
  48 + redisClient.set(keyword, value, 'EX', REDIS_TTL_SECS);
61 49 }
62 50  
63 51 exports.get = get;
... ... @@ -13,23 +13,25 @@ const modems = require('./modems2');
13 13 const partnerLastSeen = require('./partner-last-seen');
14 14 const history = require('./history');
15 15  
16   -function _send(destinationNumber, msg, handlerName) {
  16 +function _send(destinationNumber, msg, handlerIMSI) {
17 17  
18 18 if (msg.length > 160) {
  19 + logger.info('Splitting message');
  20 +
19 21 const newMsg = msg.slice(0, 160);
20 22 const remainingMsg = msg.slice(160);
21 23  
22   - _send(destinationNumber, newMsg, handlerName);
  24 + _send(destinationNumber, newMsg, handlerIMSI);
23 25 setTimeout(() => {
24   - _send(destinationNumber, remainingMsg, handlerName);
25   - }, 2000);
  26 + _send(destinationNumber, remainingMsg, handlerIMSI);
  27 + }, 1000);
26 28  
27 29 return;
28 30 }
29 31  
30   - const modem = modems.get('name', handlerName);
  32 + const modem = modems.get('imsi', handlerIMSI);
31 33 if (!modem) {
32   - logger.warn('Not knowing modem to use. Ignoring message', { destination_number: destinationNumber, msg: msg, handler_name: handlerName });
  34 + logger.warn('Not knowing modem to use. Ignoring message', { destination_number: destinationNumber, msg: msg, modem_imsi: handlerIMSI });
33 35 return;
34 36 }
35 37  
... ... @@ -43,7 +45,9 @@ function _send(destinationNumber, msg, handlerName) {
43 45 history.push({
44 46 ts: moment().format('YYYY-MM-DD HH:mm:ss'),
45 47 modem: {
46   - name: handlerName,
  48 + name: modem.name,
  49 + imsi: modem.imsi,
  50 + msisdn: modem.msisdn,
47 51 },
48 52 direction: 'OUTGOING',
49 53 partner: destinationNumber,
... ... @@ -65,17 +69,17 @@ function _send(destinationNumber, msg, handlerName) {
65 69 }
66 70 }
67 71  
68   - logger.info('Sending message to modem handler', { req_id: reqId, destination_number: destinationNumber, msg: msg, msg_length: msg.length, handler_name: handlerName });
  72 + logger.info('Sending message to modem handler', { req_id: reqId, destination_number: destinationNumber, msg: msg, msg_length: msg.length, modem_name: modem.name, modem_imsi: modem.imsi });
69 73 request(requestOptions, function(err, res, body) {
70 74 if (err) {
71   - logger.warn('Error requesting to modem handler. ' + err.toString(), { req_id: reqId, handler_name: handlerName });
  75 + logger.warn('Error requesting to modem handler. ' + err.toString(), { req_id: reqId, modem_name: modem.name, modem_imsi: modem.imsi });
72 76  
73 77 }
74 78 else if (res.statusCode != 200) {
75   - logger.warn('Modem handler not responding with HTTP status code 200.', { http_status_code: res.statusCode, req_id: reqId, handler_name: handlerName });
  79 + logger.warn('Modem handler not responding with HTTP status code 200.', { http_status_code: res.statusCode, req_id: reqId, modem_name: modem.name, modem_imsi: modem.imsi });
76 80 }
77 81 else {
78   - logger.verbose('Message sent to handler', { req_id: reqId, handler_name: handlerName, response_body: body });
  82 + logger.verbose('Message sent to handler', { req_id: reqId, modem_name: modem.name, modem_imsi: modem.imsi, response_body: body });
79 83 }
80 84 })
81 85  
... ... @@ -95,14 +99,14 @@ async function send(partner, msg) {
95 99 const destinationNumber = modemSelect.removeSuffixFromNumber(partner, config);
96 100  
97 101 // logger.verbose('Choosing handler name', { partner, destinationNumber, msg, origin });
98   - let handlerName = await partnerLastSeen.get(destinationNumber) ;
  102 + const handlerIMSI = await partnerLastSeen.get(destinationNumber) ;
99 103  
100   - if (!handlerName) {
  104 + if (!handlerIMSI) {
101 105 logger.warn(`Unknown handler for sending message to partner`, { partner, destinationNumber });
102 106 return;
103 107 }
104 108  
105   - _send(destinationNumber, msg, handlerName);
  109 + _send(destinationNumber, msg, handlerIMSI);
106 110 }
107 111  
108 112 exports.send = send;
109 113 \ No newline at end of file
1 1 {
2 2 "name": "komodo-center-sms",
3   - "version": "0.9.17",
  3 + "version": "0.9.18",
4 4 "lockfileVersion": 1,
5 5 "requires": true,
6 6 "dependencies": {
1 1 {
2 2 "name": "komodo-center-sms",
3   - "version": "0.9.17",
  3 + "version": "0.9.18",
4 4 "description": "SMS center for Komodo",
5 5 "main": "index.js",
6 6 "scripts": {