better-smpp

Installation

Add better-smpp to your project.

Requirements

  • Node.js 20 or newer
  • Any package manager (examples use pnpm)

All packages ship dual ESM + CJS builds with complete type declarations, so both import and require work out of the box.

Install

For an ESME application (sending/receiving through an SMSC):

pnpm add @better-smpp/client

For an SMSC-side application (accepting ESME connections):

pnpm add @better-smpp/server

@better-smpp/core is installed automatically as a dependency of both. Add it explicitly only when you import core utilities yourself — protocol constants, the PDU codec, message helpers:

pnpm add @better-smpp/core
import { CommandStatus, TON, parseDeliveryReceipt } from "@better-smpp/core";

Declaring the direct dependency matters under pnpm's strict node_modules layout — importing a package you haven't declared fails, even if it is present transitively.

Field-name convention

PDU body fields and TLVs use the camelCase form of the SMPP specification names: sourceAddr, destinationAddr, shortMessage, esmClass, registeredDelivery, receiptedMessageId, and so on. Command names stay in their spec form (submit_sm, bind_transceiver, …) because they are protocol identifiers and event names.

On this page