Commit 4a81b13bb0289ca5c389c33ff0bdbe9e32719f09

Authored by Adhidarma Hadiwinoto
1 parent f2d51eef9e
Exists in master

Modem chooser optimizer

Showing 1 changed file with 12 additions and 8 deletions Side-by-side Diff

lib/modem-chooser.js
... ... @@ -22,27 +22,31 @@ function filterOutCandidates(candidates) {
22 22 exports.chooser = async function chooser(destination, config) {
23 23 const logger = global.KOMODO_LOGGER;
24 24  
25   - const prefixName = await prefixes.lookup(destination);
26   - if (logger) logger.verbose('Choosing suitable senders', { destination, prefixName });
  25 + let prefixName = await prefixes.lookup(destination);
  26 + if (typeof prefixName === 'string') {
  27 + prefixName = prefixName.toUpperCase();
  28 + }
  29 +
  30 + if (logger) logger.verbose('MODEM-CHOOSER: Choosing suitable senders', { destination, prefixName });
27 31  
28 32 let imsiSenders = [];
29   - if (config.imsi_senders && config.imsi_senders.prefix_names && config.imsi_senders.prefix_names[prefixName]) {
  33 + if (config.imsi_senders && prefixName && config.imsi_senders.prefix_names && config.imsi_senders.prefix_names[prefixName]) {
30 34 imsiSenders = filterOutCandidates(config.imsi_senders.prefix_names[prefixName]);
31   - if (logger) logger.verbose('Suitable senders by prefix name', { destination, prefixName, imsiSenders });
  35 + if (logger) logger.verbose('MODEM-CHOOSER: Try to use imsi senders by prefix name', { destination, prefixName, imsiSenders });
32 36 }
33 37  
34 38 if (!imsiSenders.length && config.imsi_senders.default && Array.isArray(config.imsi_senders.default) && config.imsi_senders.default.length) {
35 39 imsiSenders = filterOutCandidates(config.imsi_senders.default);
36   - if (logger) logger.verbose('Suitable default senders', { destination, prefixName, imsiSenders });
  40 + if (logger) logger.verbose('MODEM-CHOOSER: Try to use default senders', { destination, prefixName, imsiSenders });
37 41 }
38 42  
39 43 if (!imsiSenders.length) {
40 44 imsiSenders = filterOutCandidates([ await partnerLastSeen.get(destination) ]);
41   - if (logger) logger.verbose('Suitable senders by last seen', { destination, prefixName, imsiSenders });
  45 + if (logger) logger.verbose('MODEM-CHOOSER: Try to use sender by last seen', { destination, prefixName, imsiSenders });
42 46 }
43 47  
44 48 if (!imsiSenders.length) {
45   - if (logger) logger.verbose('No suitable sender found', { destination, prefixName });
  49 + if (logger) logger.warn('MODEM-CHOOSER: No suitable sender found', { destination, prefixName });
46 50 return;
47 51 }
48 52  
... ... @@ -50,7 +54,7 @@ exports.chooser = async function chooser(destination, config) {
50 54 const idx = Math.round(Math.random() * (count - 1));
51 55 const imsiChoosed = imsiSenders[idx];
52 56  
53   - if (logger) logger.verbose(`Choose modem with IMSI ${imsiChoosed}`, { destination, prefixName, imsiSenders });
  57 + if (logger) logger.verbose(`MODEM-CHOOSER: gonna use modem with IMSI ${imsiChoosed}`, { destination, prefixName, imsiSenders });
54 58  
55 59 return imsiChoosed;
56 60 }
57 61 \ No newline at end of file