Jasmin: MT Route to http api - sms

We have an SMS Gateway works only in HTTP API with Telecom companies
Clients request SMPP Connection because their system accepts SMPP only.
Installed Jasmin SMS Gateway on DigitalOcean droplet, but Jasmin required All the MT Routes to be via SMPP Connectors only.
How can I intercept all MT Messages to be sent via HTTP API with fully status smpp response?
https://jasmin.readthedocs.io/en/latest/management/jcli/
The documentation doesn't mention anyways, I guess I can make it by Python but I didn't understand.
jcli : mtrouter -a
Adding a new MT Route: (ok: save, ko: exit)
type DefaultRoute
arguments:
connector, rate
connector http(HTTP-01)
Invalid syntax for connector id, must be smppc(some_id).

Related

How to establish a websocket connection from a Twilio webhook?

I am trying to create a chat messaging application, which has text functionality. Right now, when a user sends an SMS message from their phone to a Twilio service number, there is a Twilio webhook which redirects to an endpoint in my backend server: sending HTTP POST request.
However, since it is a chat messaging application, I need the Twilio webhook to establish a Websocket connection (upgrading over HTTP) to my backend server, so that it can send websocket events back to my client.
Is there a way to establish a websocket connection using Twilio webhooks, or even Twilio functions? I can't find any resources online to solve this issue.
I tried Twilio Webhooks, and Twilio Functions, it hasn't worked so far.
WebSockets won't help you in this situation, as the webhook timeout limit is 15 seconds. This means you either need to return a TwiML response within 15 seconds or the request will fail.
It sounds like you want to build a stateful WebSocket connection instead of the stateless API callback. To achieve a stateful session, you either need to handle the state management over multiple incoming messages on your own, or you can use a Studio Flow which comes with state management baked in.

JasminSMS configuration

I successfully installed JasminSMS on Ubuntu, added SMS provider informations such as hostname, port, user and password, but failed to receive test SMS using HTTP API:
http://127.0.0.1:1401/send?username=foo&password=bar&to=*********&content=hello
I'm writing my own number, but I don't receive it. What other configuration do I need to do?
In this scenario (you want to terminate an SMS message by using Jasmin's HTTP API) you need:
Jasmin SMS Gateway installed
An HTTP user configured in Jasmin SMS (this can be done in the included CLI)
An SMPP connector configured in Jasmin SMS to connect to an SMS service provider. The credentials will be supplied by your SMS vendor of choice.
A routing rule in Jasmin SMS Gateway to decide which SMPP connector to use
This is all well-documented here https://docs.jasminsms.com/en/latest/installation/index.html#sending-your-first-sms
If your HTTP API call is successful you'll receive an HTTP success code (200) and a GUID. Jasmin SMS then tries to deliver the SMS message via the SMPP connector (according to the routing rule configured). If your SMS message was not received you need to look into the used SMPP-connector to troubleshoot further. If the message has been accepted by the SMPP connector of choice you'll have to contact your SMPP vendor and ask them to look into the possible delivery issues.
An SMS vendor is basically a company with agreements to various operators & aggregators around the world specializing in delivering SMS messages globally (or locally of course depending on their focus) for a price.
make sure u enter the smsc creditntials on the smpp connector and mae sure it is started(smppccm -1 cid) and check its sessision if it is bound smppccm -l

what is the difference between SMPP and SMS

Please I'll like to know the difference between SMS and SMPP or at the very least get pointed to a good resource that breaks down this difference in layman terms. I'm currently on a project where the product vendor says the product only supports SMPP for inbound messages so it cannot be integrated to an SMS gateway. I've tried researching the fundamental peculiarities of SMPP that makes the integration with an SMS gateway for inbound messages impossible for this product but my research has yielded nothing material so far.
I'll really appreciate your feedback as the project is basically at an impasse due to the insistence of the vendor on SMPP.
SMPP is the protocol used to send SMS. Currently there are 2 ways to send a SMS. Either by SMPP (beneath the TCP protocol) or by SS7 (which requires hardware and is costly).
Usually SMS gateways are SMPP which is weird that you are not able to integrate it with it.
In brief, the SMPP protocol does the below:
Client binds to the server (Bind Request) / Server Accept or Reject
bind (Bind Response)
Client Sends SMS (Submit-SM) / Server accepts or Rejects SMS (Submit
Resp) server also includes the message Id
Server sends the DLR with the same message Id in the submit
response(Deliver-SM) / Client acknowledge the DLR (Deliver Resp)
Theres also an Enquire Link sent from the client and its response from the server to keep the connection from timing out usually 30 seconds.
Here's a link describing the SMPP Protocol in details:
http://opensmpp.org/specs/smppv34_gsmumts_ig_v10.pdf

Reverse pusher - secret needed to receive, not send

Pusher service works as illustrated here:
Does it make sense to use it in reverse direction (and switched data channels)? My use case is as follows:
end users (actually mobile, not browser) send messages to Pusher via HTTP-based REST API
my firewalled machine is connected to Pusher via WebSockets API, subscribes channel and receives messages in realtime
This way I can work with Sandbox plan (only 1 persistent connection is used) but mobile app must contain Puser app key.
From what I understand, anyone can use this key to register subscribe same message stream via websockets. Is there a reverse mode, where receiving messages requires knowing the secret? Maybe other service would suit better?
A more secure solution would be for the mobile clients to use client events. Client events can only be triggered on private channels where the subscription to the channel has to be authenticated.The authentication requests should got to an HTTP endpoint that you control so that you can validate the subscription request.
You firewalled machine can either then have a WebSocket connection and receive the client events over that connection. Or it could receive the client events via client event WebHooks if it exposes an HTTP endpoint.

SMPP receive DLR logic for external api

I send SUBMIT_SM command with all required data and successfully get SMS to my mobile phone.
I see on my SMPP server log that DELIVER_SM_RESP is received from SMSC but I can't see logic how to request from my api (that i'm building) to get this DLR.
Do I run:
DELIVER_SM = 0x00000005
or
QUERY_SM = 0x00000003
I tried with both but for DELIVER_SM got error, and can't see nothing in QUERY_SM.
Please advise, thanks in advance.
Vedran
A delivery receipt will be sent back to your SMPP server via a DELIVER_SM message if you have the registered_delivery field set correctly in your message (make sure). Are you using Kannel or some other SMPP server or did you write your own?
Your SMPP stack software is the one responsible of handling any received DELIVER_SM containing valid message-receipt-acknowledgement content and pushing it to your API through SMPP, HTTP or whatever enabled protocol, what's your SMPP stack ?

Resources