Jasmin and Kannel are the two best-known open-source SMS gateways. Jasmin is written in Python on the Twisted framework, speaks SMPP and HTTP on both sides, and includes routing, billing and a management CLI and REST API. Kannel is an older C gateway for SMS and WAP that connects to SMS centres over SMPP 3.4, UCP/EMI and CIMD, and to GSM modems. Jasmin is closer to what a modern A2P business needs out of the box; Kannel is lean and proven but needs more work around it.
What is Jasmin SMS gateway?
Jasmin is an open-source SMS gateway released under the Apache License 2.0. Its documentation describes:
- Protocols: SMPP client and server, HTTP client and server.
- Routing: static, round-robin, failover and least-cost routing, with filters by user, connector and custom Python logic, changeable at runtime.
- Interceptors: hooks to change or block messages in flight.
- Billing: per-user balances and quotas.
- Management: jCli (a command-line console) and a REST API; the web backend is sold under a commercial licence.
- Architecture: store-and-forward through an AMQP message broker, with Redis used for delivery receipts.
- Deployment: packages for Ubuntu and RHEL/CentOS, PyPI, Docker and Kubernetes.
What is Kannel SMS gateway?
Kannel describes itself as a compact open-source WAP and SMS gateway. It is released under a BSD-style licence, is written in C, and runs as separate processes: bearerbox holds the connections to SMS centres, smsbox handles SMS services and the HTTP sending interface, and wapbox handles WAP. According to the project status page it supports CIMD 1.3 and 2.0, SMPP 3.4 and UCP/EMI 4.0, can use GSM phones and modems as a pseudo SMS centre, handles 7-bit, 8-bit and Unicode data with delivery reports, and can work as an aggregator. The latest stable release listed on the project site is 1.4.5, from 2018. To accept SMPP connections from your own customers, Kannel is usually paired with an add-on such as OpenSMPPBox.
Jasmin vs Kannel: which is better?
| Jasmin | Kannel | |
|---|---|---|
| Language | Python (Twisted) | C |
| Licence | Apache 2.0 (web backend commercial) | BSD-style |
| Supplier side | SMPP, HTTP | SMPP 3.4, UCP/EMI, CIMD, GSM modems, HTTP |
| Customer side | SMPP server and HTTP API built in | HTTP built in; SMPP server through an add-on |
| Routing and billing | Built in (LCR, failover, quotas) | Basic routing; billing built separately |
| Management | jCli, REST API | Configuration files, HTTP status and admin commands |
| Dependencies | AMQP broker, Redis | Few; optional database for DLR storage |
| Best fit | Reseller or aggregator platform with many customer accounts | Lean connector to operators or modems, behind your own application |
If you are building a reseller or aggregator platform, Jasmin gives you customer accounts, an SMPP server and routing without extra code. If you only need a reliable link between your application and a few SMS centres, or you need UCP/EMI or CIMD, Kannel is lighter.
Is an open-source SMPP gateway enough for a business?
The software is the smaller part of the job. A production SMS business also needs monitoring of delivery rates per route, mapping of supplier error codes, rate management, sender ID registration workflows, fraud controls and someone on call. Open-source gateways do not include routes: you still need suppliers to connect to. Before you choose, read SMPP vs HTTP for SMS and SMPP binds and TPS, and keep the SMPP error codes and DLR status codes lists at hand while you configure.
How to connect a gateway to SMS routes
- Get SMPP credentials from each supplier: host, port, system ID, password, bind type and allowed TPS.
- Give suppliers your fixed public IPs for allowlisting.
- Configure one connector per supplier and a failover route per destination.
- Send test messages to real handsets and compare with the DLRs (see how to test an SMS route).
The business side of running a platform is covered in how to start a bulk SMS business.
Routes for your gateway
VoIPMatcher sources wholesale A2P SMS routes over SMPP or HTTP from its carriers and manages them for you. Request an SMS route with your destinations and volume.
Frequently asked questions
Is Jasmin SMS gateway free?
The Jasmin core is open source under the Apache License 2.0, so you can use and modify it without a licence fee. The project's web backend is offered under a commercial licence. You still pay for servers, maintenance and the SMS routes you connect to.
Does Jasmin have a web interface?
The open-source core is managed through jCli, a command-line console, and a REST API. A web backend exists but is offered under a commercial licence. Some third-party panels also connect to Jasmin through its API. Check licensing and security updates before exposing any panel to the internet.
Is Kannel still maintained?
Kannel's site lists stable release 1.4.5 from 2018 and an older development branch, and Linux distributions still package it. It remains in use as an SMSC connector, but release activity is slow, so check the mailing lists and repository before relying on it for new features.
Can Kannel connect to a GSM modem?
Yes. Kannel can use GSM phones and GSM modems as a pseudo SMS centre, as well as connecting to operator SMS centres over SMPP, UCP/EMI and CIMD. Modems are suited to low volumes and testing; business traffic should use registered A2P routes.
What are other open-source SMS gateways?
Besides Jasmin and Kannel, there are open-source SMPP libraries and simulators for Java, Python and other languages, and smaller gateway projects. Most are toolkits rather than complete platforms, so compare how much routing, billing and customer management you would need to build yourself.
Need a route?
Send the destination, route type and target rate. We reply with what we can deliver.