Introduction to SMPP Router

The Melrose Labs SMPP Router is a high-performance Short Message Peer-to-Peer (SMPP) message routing engine, purpose-built for telecom operators, messaging aggregators, and enterprises that require fine-grained control and scalability in their SMS infrastructure. It is capable of intelligent routing and efficient delivery of SMS traffic—both Mobile Terminated (MT) and Mobile Originated (MO).

This article introduces the SMPP Router’s core capabilities and architecture. It sets the foundation for a series of technical tutorials that guide deployment, integration, and operational use in production environments.

Platform Overview and Design Philosophy

SMPP Router is engineered for precision and operational clarity rather than visual complexity. It is a backend-focused platform designed for scriptable configuration and deep integration into messaging stacks. No GUI is provided; instead, control and monitoring are achieved via API endpoints and metrics export.

Its design philosophy emphasises:

  • Performance: lightweight runtime and parallel routing logic
  • Observability: native Prometheus integration and CDR generation
  • Determinism: routing based on rules, network data, and message contents
  • Operator control: scriptable setup and low-level protocol access

Authorisation and Rate Limiting

Customer access to the router is managed via SMPP ESME definitions. Each customer (or ESME) can be optionally authorised using credentials and permitted only specified routing. The router supports SMPP connection limiting and submission rate control to ensure fair usage, ensure customers stay within agreed limits, and protect infrastructure from abusive or misconfigured clients.

See content credentials

SMPP Router connections for MT and MO SMS

Routing and Load Balancing of MT (Outbound) SMS

When a customer ESME submits a message (SubmitSM or DataSM), the router evaluates routing rules to determine the target SMSC or SMSC set:

  • Target Sets: SMSCs are grouped into sets, each of which may have one or more active binds.
  • Weighted Routing: Each SMSC bind within a set can be assigned a weight. Messages are routed proportionally to these weights, allowing for prioritised distribution across available SMPP sessions.
  • Network-Based Steering: Routing decisions can incorporate a destination network lookup using country/NDC or MNC data, steering traffic to carriers or SMSCs based on commercial agreements, geographic policy, or technical preferences.
  • Field Inspection: Messages can be routed based on inspection of SMPP fields including destination address, source address, service type, and user-defined TLVs.

These capabilities enable complex routing strategies such as prioritising direct-to-carrier delivery, fallback routing, or isolating premium-rate destinations.

Routing and Load Balancing of MO (Inbound) SMS

MO messages received via DeliverSM from an upstream SMSC can be routed to customer ESMEs based on:

  • Destination Address Matching: The destination address (typically the short code or long number) is compared against routing rules.
  • Exact or Regex Matching: Routing can be based on exact string match or regular expression pattern, allowing for flexible allocation of numbers to ESMEs, including wildcard ranges or prefix-based segmentation.
  • Load Distribution: Where multiple ESME SMPP binds are valid targets for an MO route, and round-robin distribution can be used to balance load.

This facilitates use cases such as the dynamic allocation of numbers to campaign systems or multiplexing MO traffic across redundant consumer platforms.

Message Rejection and Modification

The router supports inline modification of message contents or protocol fields. This allows message adaptation (e.g. prepending country codes, removing unsupported characters) and conditional rewriting before delivery. Modification rules are scriptable and can be applied pre- or post-routing.

Message can be rejected by the router based on message content, protocol fields, do-not-disturb (DND) or a schedule.

Monitoring, Metrics and CDRs

Operational visibility is native to the SMPP Router:

  • Prometheus: Metrics are exported in Prometheus format, enabling comprehensive monitoring via Grafana or other platforms. This includes bind counts, submission rates, routing decisions, failure rates and system health.
  • Call Detail Records (CDRs): Message-level logging is available to record complete details of routed messages, including timestamps, source/destination, outcome, and any routing annotations or decisions made.

These features provide operators with both real-time visibility and post-event traceability for compliance, debugging, billing and analytics.

Deployment Scenarios (Installation)

SMPP Router can be deployed in two primary ways:

  • Self-installation on-premises: Provided as a tarball including binary and configuration templates, suitable for deployment on Debian-based servers. Other installation options will be made available.
  • Managed EC2: Pre-installed in an AWS EC2 instance, provisioned by Melrose Labs. Operators access it via API endpoints for control and monitoring—SSH access is not required or granted.

Each SMPP Router instance can support thousands of ESME and SMSC binds.


:compass: In the next article, we will walk through installation and configuration of SMPP Router on a Debian server, covering basic setup, definition of ESMEs and SMSC targets, and testing message flow using test tools or simulated environments.