Files
smpp-tester/jstester/smppCenter.js
PhatPhuckDave cd8322cc5a Initial commit
2024-07-22 19:58:07 +02:00

65 lines
1.7 KiB
JavaScript

const smpp = require("smpp");
const PORT = 2775;
let messageIdIterator = Math.floor(Math.random() * 1_000_000);
console.log(`Using iterator: ${messageIdIterator}`);
const server = smpp.createServer(
{
debug: false,
},
function (session) {
session.on("error", function (err) {
console.error(err);
});
session.on("bind_transceiver", function (pdu) {
console.log("Client connected");
session.send(pdu.response());
});
session.on("enquire_link", function (pdu) {
session.send(pdu.response());
});
session.on("submit_sm", async function (pdu) {
console.log(new Date().toISOString() + " Incoming submit_sm");
console.log(pdu);
let response = pdu.response();
response.message_id = (messageIdIterator++).toString(16);
session.send(response);
let drMessage = "";
let date = new Date()
.toISOString()
.replace(/T/, "")
.replace(/\..+/, "")
.replace(/-/g, "")
.replace(/:/g, "")
.substring(2, 12);
drMessage += "id:" + response.message_id + " ";
drMessage += "sub:001 ";
drMessage += "dlvrd:001 ";
drMessage += "submit date:" + date + " ";
drMessage += "done date:" + date + " ";
drMessage += "stat:DELIVRD ";
drMessage += "err:000 ";
drMessage += "text:";
setTimeout(() => {
console.log(new Date().toISOString() + " Sending DR");
const DRPdu = {
source_addr: pdu.source_addr,
destination_addr: pdu.destination_addr,
short_message: drMessage,
esm_class: 4,
};
console.log(DRPdu);
session.deliver_sm(DRPdu);
}, 2 * 60 * 1000);
});
}
);
server.listen(PORT);
console.log("Server started");