Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/juancresc/SMSHub
Android SMS Gateway application for sending and receiving SMS via HTTP API in Kotlin
https://github.com/juancresc/SMSHub
android gateway kotlin sms sms-api sms-messages smsgateway
Last synced: 3 months ago
JSON representation
Android SMS Gateway application for sending and receiving SMS via HTTP API in Kotlin
- Host: GitHub
- URL: https://github.com/juancresc/SMSHub
- Owner: juancresc
- Created: 2019-04-23T01:26:09.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2021-10-14T03:55:42.000Z (about 3 years ago)
- Last Synced: 2024-06-17T11:33:38.785Z (5 months ago)
- Topics: android, gateway, kotlin, sms, sms-api, sms-messages, smsgateway
- Language: Kotlin
- Homepage:
- Size: 181 KB
- Stars: 241
- Watchers: 21
- Forks: 96
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# SMSHub
## Update
I'n not currently giving support or updating this app. However I'm using it in a production environment with no issues
## what?
SMSHub is an SMS Gateway application for Android phones (Android Studio project developed in Kotlin) you can use to add SMS functionality to your software.
It connects to a webpage to retrieve messages to be sent (in JSON format) at regular intervals. It also notifies about delivery status and incoming messages.## why?
Commercial SMS APIs are (for most cases) prohibitively expensive.
Instead you can use your own phone line to send SMS with an Android phone as a gateway.There are other SMS gateways projects but as far as I could check when this project started, none of them can be use to send and receive SMS via HTTP API easily and freely (with no commercial dependencies).
## how?
You can download a compiled .apk file from the beta release [here](https://github.com/juancrescente/SMSHub/releases/download/0.1/app-release.apk)
### settings
you can customize the next settings directly in the application
#### Send SMS:
+ *Enable sending*: whether the app should read from the API and send messages
+ *send URL*: messages will be parsed from this URL, you return a JSON containing *message*, *number* and *id*
+ *interval*: the app will check whether there is an incoming message for sending each specific interval in minutes
+ *status URL*: once a message is sent, status will be reported to this URL via GET parameters, *id* and *status* (SENT, FAILED, DELIVERED)#### Receive SMS:
+ *receive URL*: Message received will be posted here. If nothing is specified it will skip this action.### How sending SMSs works
1- The application connects at regular intervals to a URL
```
POST https://yourcustomurl.com/send_api
deviceId: 1
action: SEND
```2- It should read a JSON containing *message*, *number* and *id*, or an empty response if there is nothing to send
```
{ "message": "hola mundo!", "number": "3472664455", "messageId": "1" }
```3- The app will send the SMS *message* to *number*
4- Once sent (or failed) the app will notify the status to the status URL
```
POST https://yourcustomurl.com/status_api
deviceId: 1
messageId: 1
status: SENT
action: STATUS
```5- Once delivered the app will notify the status to the status URL
```
POST https://yourcustomurl.com/status_api
deviceId: 1
messageId: 1
status: DELIVERED
action: STATUS
```Possible _status_ values are: SENT, FAILED, DELIVERED (notice that it is unlikely but possible to get the DELIVERED update before the SENT update due to requests delay).
### How receiving SMSs works
1- Each time a SMS is received the app will notify the received URL
```
POST https://yourcustomurl.com/received_api
deviceId: 1
number: 3472556699
message: Hello man!
action: RECEIVED
```