Gateway Management
Every page of the panel manages one kind of Jasmin object through the jcli console, the same way an administrator would
with telnet localhost 8990. Changes are persisted immediately, so they survive a Jasmin restart. When Jasmin refuses a
change, the panel shows Jasmin's own message.
The usual order to set up a gateway is: groups → users → connectors → filters → routes.
Groups and users
Every Jasmin user belongs to a group. Disabling a group disables all of its users.
| Field | Rule |
|---|---|
Group id (gid), user id (uid) |
1–16 letters, digits, _ or - |
| Username | 1–15 letters, digits, _ or -; this is the login for the HTTP API and the SMPP system_id |
| Password | 1–16 characters |
When editing a user:
uidandusernamecannot be changed (Jasmin does not allow renaming); delete and recreate the user instead.- The password field is always empty: leave it empty to keep the current password.
- Quotas left empty (or set to
ND) are unlimited. - Only the values you change are sent to Jasmin. A balance or SMS count consumed while the form was open is not overwritten.
- Unchecking an authorization revokes it (for example HTTP Send to stop a user from sending through the HTTP API).
The service menu enables or disables a user, and can unbind (or unbind and ban) a user from the SMPP server.
Duplicates
jcli silently replaces an object when you add one with an existing id, which would reset a user's quotas and authorizations. The panel refuses duplicates instead: "User u1 already exists".
Connectors
SMPP client connectors (smppccm) connect Jasmin to your SMSC providers and carry MT messages. Connector ids are 3–25
letters, digits, _ or -. The list shows whether each connector is started and its session state (BOUND_TRX, …).
Editing a connector only sends the fields you changed: changing host, port, username, password or systype
makes Jasmin restart the connector.
HTTP client connectors (httpccm) are URLs Jasmin calls to deliver MO messages to your application.
Filters
Filters decide which messages a route matches. Not every filter works on both route directions:
| Type | Parameter | MO routes | MT routes |
|---|---|---|---|
| TransparentFilter | — (matches everything) | ✓ | ✓ |
| ConnectorFilter | cid of the source connector |
✓ | |
| UserFilter | uid of the sending user |
✓ | |
| GroupFilter | gid of the sending user |
✓ | |
| SourceAddrFilter | regex on the source address | ✓ | ✓ |
| DestinationAddrFilter | regex on the destination address | ✓ | ✓ |
| ShortMessageFilter | regex on the content | ✓ | ✓ |
| DateIntervalFilter | 2024-01-01;2024-12-31 |
✓ | ✓ |
| TimeIntervalFilter | 08:00:00;18:00:00 |
✓ | ✓ |
| TagFilter | numeric tag | ✓ | ✓ |
| EvalPyFilter | path to a Python script | ✓ | ✓ |
The router pages only offer the filters that fit the route direction.
Routes
Routes are evaluated from the highest order down to 0; the first route whose filters all match is used. A
DefaultRoute takes no filter and always has order 0, so it catches whatever no other route matched.
| Type | Connectors | Filters |
|---|---|---|
| DefaultRoute | exactly one | none |
| Static route | exactly one | required |
| RandomRoundrobin route | two or more, one picked at random | required |
| Failover route | two or more, the first available one is used | required |
MT routes (outgoing) deliver through SMPP client connectors and can carry a rate used for billing.
MO routes (incoming) deliver to HTTP connectors, or to users bound to Jasmin's SMPP server. The SMPP Users list
shows Jasmin users by username: the message is delivered as smpps(username) to whichever session that user has bound.
A Failover MO route cannot mix HTTP connectors and SMPP users.
When the gateway is unreachable
If the panel cannot reach jcli, each page says so instead of showing an empty table, for example "Could not connect to Jasmin jcli at 127.0.0.1:8990. Is the gateway running and reachable?", with a Retry button. See Troubleshooting.