Architecture overviewΒΆ

Jasmin is composed of several components with scoped responsibilities:

HLD Architecture

Jasmin SMS Gateway high level design

  1. jCli: Telnet management console, refer to Management CLI overview for more details,
  2. SMPP Client Manager PB: A PerspectBroker providing facilities to manage (add, remove, list, start, stop ...) SMPP client connectors,
  3. Router: A PerspectBroker providing facilities to manage message routes, groups, users, http connectors and filters,
  4. DLR Thrower: A service for delivering acknowledgement receipts back to third party applications through HTTP, refer to HTTP API for more details,
  5. DeliverSM Thrower: A service for delivering MO SMS (Mobile originated) to third party applications through HTTP, refer to HTTP API for more details,
  6. Restful API: A Restful API to be used by third party application to send MT SMS (Mobile Terminated) and launch batches, refer to RESTful API for more details.
  7. HTTP API: A HTTP Server to be used by third party application to send MT SMS (Mobile Terminated), refer to HTTP API for more details.
  8. SMPP Server API: A SMPP Server to be used by third party application to send and receive SMS through a stateful tcp protocol, refer to SMPP Server API for more details.

Jasmin core and its external connectors (used for AMQP, Redis, SMPP, HTTP, Telnet ...) are written in Python and are mainly based on Twisted matrix, a event-driven networking engine.