SMPP-HTTP [DLR, MO]:
opMLSMPPHTTP_1aa87f9
We are pleased to make available this first public build of the SMPP-HTTP application: opMLSMPPHTTP_1aa87f9. This binary is suitable for Debian-based platforms and includes high performance relaying of DLRs (and MO messages) to webhook endpoints.
Key Features
- Supports multiple SMPP accounts and multi-host connectivity .
- Configurable HTTP worker pool for DLR processing that auto-scales between a defined minimum and maximum depending on queue load.
- HTTP requests are performed non-persistently—one HTTP session per DLR.
- Fully compatible with existing cloud and on-prem SSG deployments using SMPP-HTTP for webhook delivery. Compatible with SMS platforms from other vendors.
How It Works
On receiving a DeliverSM from the SSG or other vendor’s SMS platform, an HTTP POST containing DLR fields is sent to the configured webhook. A DeliverSMResp is only returned to the SSG / SMS platform once the HTTP request completes. This ensures reliable delivery semantics. The diagram below illustrates the flow:
Running SMPP-HTTP
./opMLSMPPHTTP_1aa87f9 --config smpphttp.conf
Example smpphttp.conf:
{
"base": {
"_product": "SMPPHTTP"
},
"config": {
"dlrWorkersMin": 2,
"dlrWorkersMax": 16,
"dlrWorkersInitial": 4,
"dlrQueueThreshold": 10,
"dlrScalingIntervalMs": 10000
},
"hosts": [
"eu-uk.mlsmpp.net", "eu-de.mlsmpp.net", "ap-sg.mlsmpp.net",
"ap-au.mlsmpp.net", "na-us.mlsmpp.net", "sa-br.mlsmpp.net"
],
"accounts": [
{
"systemId": "ABC2iFipiqOQDEF",
"password": "DEF5eABC",
"bindQuantityRxMin": 4,
"webhookMo": {
"url": "http://127.0.0.1:8780/mo",
"sourceAddress": "src",
"destinationAddr": "dst",
"shortMessage": "msg",
"headers": [{ "Authorization": "Bearer abc123" }]
},
"webhookDlr": {
"url": "http://127.0.0.1:8780/dlr",
"sourceAddress": "src",
"destinationAddr": "dst",
"completionTs": "done",
"msgId": "id",
"statusNum": "status",
"statusTxt": "status_text",
"errorNum": "error",
"headers": [{ "Authorization": "Bearer xyz456" }]
}
}
]
}
DLR webhook configuration is as described in the SSG’s documentation at SMPP accounts - DLR webhook (JSON).
Performance Considerations
DLR throughput to your webhook is governed by:
- HTTP latency per request
- Number of worker threads
- Number of SMPP RX binds
- DeliverSM window size per SMPP account
For example, 16 workers handling requests in 0.2s each = 80 DLRs/sec. Reducing processing time to 0.1s doubles that throughput to 160 DLRs/sec.
Licensing
The binary includes bundled licence files valid until 1st September 2025.
Download
https://melroselabs.com/repo/smpphttp/opMLSMPPHTTP_1aa87f9.tar.gz
Deployment Notes
Although this version is not yet used in the live SSG stack, you are encouraged to evaluate it for improving DLR delivery performance to webhooks whether you use the SSG or other platforms.
We recommend you conduct testing in your environment before production deployment.
Questions or Feedback?
Please reach out if you have any questions, encounter issues, or would like to share feedback. We’re here to help.
