Port SMPP definitions: constants, errors, encodings and wire types
This commit is contained in:
@@ -0,0 +1,88 @@
|
||||
// Ordered by code, mirroring the SMPP 5.0 command_status table, so gaps stay visible.
|
||||
export const errors = {
|
||||
ESME_ROK: 0x0000,
|
||||
ESME_RINVMSGLEN: 0x0001,
|
||||
ESME_RINVCMDLEN: 0x0002,
|
||||
ESME_RINVCMDID: 0x0003,
|
||||
ESME_RINVBNDSTS: 0x0004,
|
||||
ESME_RALYBND: 0x0005,
|
||||
ESME_RINVPRTFLG: 0x0006,
|
||||
ESME_RINVREGDLVFLG: 0x0007,
|
||||
ESME_RSYSERR: 0x0008,
|
||||
ESME_RINVSRCADR: 0x000A,
|
||||
ESME_RINVDSTADR: 0x000B,
|
||||
ESME_RINVMSGID: 0x000C,
|
||||
ESME_RBINDFAIL: 0x000D,
|
||||
ESME_RINVPASWD: 0x000E,
|
||||
ESME_RINVSYSID: 0x000F,
|
||||
ESME_RCANCELFAIL: 0x0011,
|
||||
ESME_RREPLACEFAIL: 0x0013,
|
||||
ESME_RMSGQFUL: 0x0014,
|
||||
ESME_RINVSERTYP: 0x0015,
|
||||
ESME_RINVNUMDESTS: 0x0033,
|
||||
ESME_RINVDLNAME: 0x0034,
|
||||
ESME_RINVDESTFLAG: 0x0040,
|
||||
ESME_RINVSUBREP: 0x0042,
|
||||
ESME_RINVESMCLASS: 0x0043,
|
||||
ESME_RCNTSUBDL: 0x0044,
|
||||
ESME_RSUBMITFAIL: 0x0045,
|
||||
ESME_RINVSRCTON: 0x0048,
|
||||
ESME_RINVSRCNPI: 0x0049,
|
||||
ESME_RINVDSTTON: 0x0050,
|
||||
ESME_RINVDSTNPI: 0x0051,
|
||||
ESME_RINVSYSTYP: 0x0053,
|
||||
ESME_RINVREPFLAG: 0x0054,
|
||||
ESME_RINVNUMMSGS: 0x0055,
|
||||
ESME_RTHROTTLED: 0x0058,
|
||||
ESME_RINVSCHED: 0x0061,
|
||||
ESME_RINVEXPIRY: 0x0062,
|
||||
ESME_RINVDFTMSGID: 0x0063,
|
||||
ESME_RX_T_APPN: 0x0064,
|
||||
ESME_RX_P_APPN: 0x0065,
|
||||
ESME_RX_R_APPN: 0x0066,
|
||||
ESME_RQUERYFAIL: 0x0067,
|
||||
ESME_RINVTLVSTREAM: 0x00C0,
|
||||
ESME_RTLVNOTALLWD: 0x00C1,
|
||||
ESME_RINVTLVLEN: 0x00C2,
|
||||
ESME_RMISSINGTLV: 0x00C3,
|
||||
ESME_RINVTLVVAL: 0x00C4,
|
||||
ESME_RDELIVERYFAILURE: 0x00FE,
|
||||
ESME_RUNKNOWNERR: 0x00FF,
|
||||
ESME_RSERTYPUNAUTH: 0x0100,
|
||||
ESME_RPROHIBITED: 0x0101,
|
||||
ESME_RSERTYPUNAVAIL: 0x0102,
|
||||
ESME_RSERTYPDENIED: 0x0103,
|
||||
ESME_RINVDCS: 0x0104,
|
||||
ESME_RINVSRCADDRSUBUNIT: 0x0105,
|
||||
ESME_RINVDSTADDRSUBUNIT: 0x0106,
|
||||
ESME_RINVBCASTFREQINT: 0x0107,
|
||||
ESME_RINVBCASTALIAS_NAME: 0x0108,
|
||||
ESME_RINVBCASTAREAFMT: 0x0109,
|
||||
ESME_RINVNUMBCAST_AREAS: 0x010A,
|
||||
ESME_RINVBCASTCNTTYPE: 0x010B,
|
||||
ESME_RINVBCASTMSGCLASS: 0x010C,
|
||||
ESME_RBCASTFAIL: 0x010D,
|
||||
ESME_RBCASTQUERYFAIL: 0x010E,
|
||||
ESME_RBCASTCANCELFAIL: 0x010F,
|
||||
ESME_RINVBCAST_REP: 0x0110,
|
||||
ESME_RINVBCASTSRVGRP: 0x0111,
|
||||
ESME_RINVBCASTCHANIND: 0x0112,
|
||||
} as const;
|
||||
|
||||
export type ErrorName = keyof typeof errors;
|
||||
|
||||
export const errorsById: Record<number, string> = {};
|
||||
|
||||
for (const [name, code] of Object.entries(errors)) {
|
||||
errorsById[code] = name;
|
||||
}
|
||||
|
||||
export function isErrorName(value: unknown): value is ErrorName {
|
||||
return typeof value === 'string' && Object.hasOwn(errors, value);
|
||||
}
|
||||
|
||||
export function errorNameById(id: number): ErrorName | undefined {
|
||||
const name = errorsById[id];
|
||||
|
||||
return isErrorName(name) ? name : undefined;
|
||||
}
|
||||
Reference in New Issue
Block a user