const axios = require('axios'); const moment = require('moment'); const config = require('komodo-sdk/config'); const logger = require('komodo-sdk/logger'); const messagingClient = require('komodo-center-messaging-client-lib'); const modems = require('./modems'); exports.send = async (partner, msg) => { if (typeof partner !== 'string' || !partner.trim()) return; if (typeof msg !== 'string' || !msg.trim()) return; const modem = modems.randomModem(); if (!modem) { logger.warn('TRANSPORT: Not sending message to EVO-CP because of no available modem', { partner, msg, }); return; } logger.info('TRANSPORT: Sending message to EVO-CP', { partner, msg, modem: modem.name, }); try { await axios.get(config.sender.url, { params: { to: partner, password: config.sender.password, ts: moment().format('YYYY-MM-DD HH:mm:ss'), text: msg.trim(), modem: modem.name, username: config.sender.username, }, }); } catch (e) { logger.warn('TRANSPORT: Exception on sending message to EVO-CP', { partner, msg, e: e.message, }); } messagingClient.onIncomingMessage({ me: modem.imsi || modem.name, partner, partner_raw: partner, msg: msg.trim(), origin_label: modem.imsi || modem.name, origin_transport: 'SMS', origin_partner: partner, do_not_forward_to_core: true, is_outgoing: true, }); };