Implement pduprocessors

This commit is contained in:
David Majdandžić
2023-03-28 20:22:29 +02:00
parent 9c0de4ef3c
commit c4d5a62a46
5 changed files with 61 additions and 10 deletions

View File

@@ -0,0 +1,3 @@
export interface CenterPDUProcessor {
processPdu(session: any, pdu: any): Promise<any>;
}

View File

@@ -0,0 +1,16 @@
import Logger from "../../Logger";
import {CenterPDUProcessor} from "./CenterPDUProcessor";
export class DebugProcessor implements CenterPDUProcessor {
private logger: Logger;
constructor() {
this.logger = new Logger('DebugProcessor');
}
processPdu(session: any, pdu: any): Promise<any> {
return new Promise<any>((resolve, reject) => {
session.send(pdu.response()).then((replyPdu: any) => resolve(replyPdu), (error: any) => reject(error));
});
}
}

View File

@@ -0,0 +1,30 @@
import Logger from "../../Logger";
import {CenterPDUProcessor} from "./CenterPDUProcessor";
const smpp = require("smpp");
export class DebugProcessor implements CenterPDUProcessor {
private logger: Logger;
constructor() {
this.logger = new Logger('DebugProcessor');
}
processPdu(session: any, pdu: any): Promise<any> {
return new Promise<any>((resolve, reject) => {
let promises = [];
let replyPromise = session.send(pdu.response());
let sendPromise = session.send(new smpp.PDU('enquire_link', {
source_addr: pdu.destination_addr,
destination_addr: pdu.source_addr,
short_message: pdu.short_message
}));
promises.push(replyPromise);
promises.push(sendPromise);
Promise.all(promises).then((replyPdus: any) => {
resolve(replyPdus);
}).catch((error: any) => {
reject(error);
});
});
}
}