const express = require('express') const router = express.Router() // The following endpoints are supported. // // /before_receive // /route // /before_route (only for PROTOCOL=ROUTE connectors) // /before_send // /after_send // /before_dlr (gets dlrinfo) // /after_dlr // The req.body contains the following fields. // // ccarg - from PLUGIN=pluginname:ccarg of the current connector // qe - message or delivery report, with field names in uppercase // result - for after_send and after_dlr // dlrinfo - custom options for incoming delivery reports // route - as returned by the previously called plugin // Output is a list of key=value entries, one per line. // The key can be as follows. // // result - for before_receive, where non-zero means the message will be rejected // route - the name of the outgoing connector, used for /route // qe.OPTION_NAME - new value for a message option called "OPTION_NAME" // dlrinfo.OPTION_NAME - for before_dlr, to return HLR lookup results: // - OPTION_NAME can be mnc, mcc, msc, and imsi router.post('/before_receive', (req, res) => { console.log('in before_receive') //, body:', req.body) const qe = req.body.qe let respbuf = '' if (qe.DESTADDR === '911') respbuf = 'result = 8' else respbuf = 'qe.SMPPOPTION=0x1400:414243\nqe.SMPPOPTION=0x1401:61626364' res.send(respbuf) }) router.post('/route', (req, res) => { console.log('in route') //, qe:', req.body.qe) const qe = req.body.qe let respbuf = '' if (qe.DESTADDR === '123') respbuf = Buffer.from('route = out') res.send(respbuf) }) router.use((req, res, next) => { console.log('nothing to do for %s %s', req.method, req.url) res.status(404).end() }) module.exports = router