Implement random smppid generation

This commit is contained in:
2023-11-09 14:50:56 +01:00
parent 6a803b69f4
commit 83750044c5
2 changed files with 16 additions and 3 deletions

View File

@@ -5,6 +5,7 @@ const NanoTimer = require("nanotimer");
const { createBaseLogger, createSessionLogger } = require("./logger");
const { verifyDefaults, verifyExists } = require("./utils");
const { centerOptions } = require("./cliOptions");
const crypto = require("crypto");
const logger = createBaseLogger();
const options = commandLineArgs(centerOptions);
@@ -121,7 +122,13 @@ const server = smpp.createServer(
sessionLogger.info("Generating DR for incoming submit_sm");
let response = pdu.response();
response.message_id = (messageid++).toString(16);
let smppid = messageid++;
if (options.randid) {
smppid = crypto.randomBytes(12).toString("hex");
}
response.message_id = smppid.toString(16);
session.send(response);
let drMessage = "";
@@ -143,8 +150,8 @@ const server = smpp.createServer(
drMessage += "text:";
const DRPdu = {
source_addr: pdu.source_addr,
destination_addr: pdu.destination_addr,
source_addr: pdu.destination_addr,
destination_addr: pdu.source_addr,
short_message: drMessage,
esm_class: 4,
};

View File

@@ -58,6 +58,12 @@ const centerOptions = [
{ name: "systemid", alias: "s", type: String, description: "SMPP related login info." },
{ name: "password", alias: "w", type: String, description: "SMPP related login info." },
{ name: "dr", type: Boolean, description: "Whether or not to send Delivery Reports.", defaultOption: false },
{
name: "randid",
type: Boolean,
description: "SMPP ID generation is entirely random instead of sequential.",
defaultOption: false,
},
{
name: "sessions",
type: Number,