SMS softswitch — fast. reliable. global.

Every message,
the right route,
every time.

XenonSMS is a production SMPP softswitch for A2P and P2P traffic. Multi-lane vendor binds with automatic lane failover, real-time rating and credit control, and normalized delivery receipts pushed back to every client — running as one connected pipeline, not a chain of scripts bolted together.

Protocol: SMPP 3.4 Core: Django + Celery Load-balanced: HAProxy
route engine — live view active
VENDOR A VENDOR B VENDOR C XENONSMS CARRIER X CARRIER Y CARRIER Z
lane.bind → vendor=CARRIER X · lanes 10/10 online
dlr.correlate → status=DELIVRD · client ack sent
cdr.write → segment=1 · rated ✓
300+ TPSload-tested throughput
10parallel lanes per vendor bind
3SMPP workers behind HAProxy
24/7DLR & CDR reconciliation
How a message moves

One pipeline, five stages, no black boxes.

Every message that enters XenonSMS passes through the same traceable path — from the moment a client bind opens to the moment a rated CDR is written.

01
SMPP ingress
Client binds land on an HAProxy-fronted pool of SMPP workers with per-session and per-client TPS windows, so one noisy connection never starves the rest.
→
02
Routing engine
Each message resolves to a vendor by prefix and MCC/MNC across parallel SMPP lanes per vendor — a route only goes live once every lane reports offline.
→
03
Rating & billing
Vendor and client ratesheets are applied at send time against a real-time credit balance, so cost and margin are known before a message ever leaves the queue.
→
04
DLR correlation
Delivery receipts are normalized across vendor formats, matched back to the originating message, and pushed to the client's SMPP session with delivery tracked to ACK.
→
05
CDR storage
A full, queryable record of every message — route, rate, status, and timing — for reconciliation and dispute resolution.
Built for operators, not just senders

Every failure mode is a known state, not a support ticket.

A softswitch earns trust in the moments things go wrong — a vendor lane drops, a client connection goes idle, a route table has a gap. XenonSMS is built to surface those moments, not hide them.

Ad-hoc SMPP gateways
A dropped vendor lane looks the same as a healthy one until messages start failing
A stuck client session quietly blocks delivery receipts with no alarm
Route gaps surface as a support ticket, not a log line
"Why did this fail" means grepping application logs by hand
XenonSMS
A vendor only shows offline once every parallel lane genuinely fails
Idle client sessions are detected and recycled automatically, so delivery receipts keep flowing
Every rejected message carries a specific, categorized reason — routing, credit, or vendor
One CDR per message, from bind to billed, with delivery status tracked to client ACK
The platform

What runs underneath.

A Django and Celery core built specifically for high-throughput SMPP operations — not a general messaging framework bent into shape.

01

Route management

Define and prioritize routes by prefix, MCC/MNC, or vendor, with test route groups isolated from production traffic before a change goes live.

02

Vendor & client ratesheets

Import and version ratesheets, with real-time balance checks against a live credit limit on every submit — not a nightly batch job.

03

Live traffic monitoring

Watch throughput, vendor lane health, and per-client submit-failure reasons as they happen, broken down by cause — routing, credit, or vendor.

04

DLR normalization

One consistent delivery status model regardless of how each downstream vendor reports it, pushed back to the client's SMPP session and tracked to ACK.

05

CDR & reconciliation

Queryable records built for dispute resolution — every message traceable from submission to settlement.

06

Session & connection health

Idle and stuck client connections are detected and recycled automatically, so one dead session can't quietly block delivery for everyone behind it.

Security & access control

Controls that hold up under real traffic, not just on paper.

Every client connection is authenticated, scoped, and rate-limited individually — access control that's enforced on every bind and every submit, not a policy document.

◆

Per-client SMPP authentication

Every client binds with its own system_id and password — no shared credentials, no ambient trust between accounts.

◆

IP whitelisting per client

Restrict which source IPs are allowed to bind against a given account, enforced at connection time, not after the fact.

◆

Real-time credit enforcement

Client and vendor balances are checked against a live limit on every submit — a message can't be accepted past a credit ceiling and reconciled later.

◆

Per-session & per-client throttling

TPS caps, session windows, and global concurrency limits apply per connection and per client, so one account can't starve the platform for everyone else.

◆

Full message audit trail

Every message is traceable end to end — submit, routing decision, vendor attempt, delivery receipt, and billed CDR — queryable for dispute resolution.

◆

Isolated test routing

Test route groups run on separate routing paths from production traffic, so a route change can be verified before it ever touches live clients.

Questions

What people ask before they connect.

The things that come up in the first onboarding call — answered up front.

What SMPP bind types do you support?

Transmitter, receiver, and transceiver binds over SMPP 3.4. Most clients connect as transceiver so submit and delivery-receipt traffic share one session.

What happens if a vendor route goes down mid-traffic?

Vendor connections run as multiple parallel SMPP lanes. A route only flips to offline once every lane for that vendor has genuinely dropped — a single lane blip doesn't take down the route or interrupt the rest of your traffic.

Is billing real-time, or a nightly batch job?

Real-time. Client and vendor balances are checked and deducted at submit time, against a live credit limit — cost and margin are known before a message leaves the queue, not reconciled after the fact.

How do delivery receipts get back to us?

Vendor DLRs arrive in whatever format each carrier uses; XenonSMS normalizes them to one consistent status model, matches each receipt back to its originating message, and pushes it to your SMPP session — tracked through to your acknowledgment.

What if our own connection goes idle or hangs?

Idle and stuck client sessions are detected and automatically recycled. A dead connection on your end doesn't sit there indefinitely blocking delivery receipts meant for you, and it doesn't affect other clients' sessions.

Can we test a new route before it goes live?

Yes — test route groups are configured on a routing path fully separate from production, so a route or rate change can be verified with real traffic before it's switched on for live clients.

How is access to our account restricted?

Each client binds with its own SMPP credentials, and access can be further scoped to specific source IPs. There's no shared account or credential reused across clients.

Get started

Ready to move your traffic to XenonSMS?

Reach out to plan your integration — SMPP binds, route setup, and rate onboarding, on your timeline.

Talk to us → View documentation
Contact

Send us a message.

We'll get back to you at the email you provide, usually within one business day.

Thanks — your message has been sent. We'll be in touch shortly. Something went wrong sending your message. Please try again, or email us directly at info@xenonsms.com.