Skip to content
master
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
fcm
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ui
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Ratatxt

Enable SMS API on android devices.

Overview

Simple service that enables android devices to be use as SMS API to send and receive SMS. Uses MQTT(Message Queuing Telemetry Transport) to send command to devices and keeps connection from the server.

DO NOT USE IN PRODUCTION. MQTT broker is insecure and android client is unstable but you can use it for fun.

Features

  • Send and receive SMS
  • Deployable on local and cloud server

Requirements

  • Local or cloud server with Docker
  • Android device (Nougat 7.1 and below)

Setup

1. Run and install server using docker

docker run -p 8080:8080 -p 7100:7100 -p 1883:1883 kudarap/ratatxt

If you are running the server on cloud, open up the ports on public network.

2. Download and install android app

Warning: Only tested the app on Android Nougat 7.1

  • Download debug APK from https://github.com/kudarap/ratatxt-app and install to device.
  • Login your credentials on the app.
  • Select a device available.
  • Start receiver service to receive messages.
  • Start sender service to send messages.

Usage

Authentication

# sample authenticated request, replace the token with your own.
curl http://localhost:7100/devices -u 'ak_2ee7d151d5eb6c7bcbd35ec7f47a3bb8c1b61fc9:' 

Send message

curl http://localhost:7100/outbox \
    -u 'ak_2ee7d151d5eb6c7bcbd35ec7f47a3bb8c1b61fc9:' \
    -X POST -d '{
        "device_id": "c2g185v0eqtq26rmcnj0",
        "address": "09123456789",
        "text": "hello world"
    }'

Receive message

Go to console http://localhost:8080/webhooks and create a webhook. This will receive a POST request with the message payload.

Sample webhook payload:

{
  "webhook_id": "c2jtmu2h30sl6f6f83c0",
  "payload_url": "https://yourserver.com/webhooks-test",
  "secret": "mysecret123",
  "message": {
    "id": "c2mik6ih30sjldehe1p0",
    "user_id": "c2en1nv0eqtopabpvcrg",
    "device_id": "c2fslnn0eqtq26rmcn2g",
    "kind": 10,
    "status": 110,
    "address": "09123456789",
    "text": "hello world",
    "timestamp": 1621091609,
    "retry_count": 0,
    "created_at": "2021-05-26T00:47:22.067722715+08:00",
    "updated_at": "2021-05-26T00:47:22.067722715+08:00",
    "device": {
      "id": "c2fslnn0eqtq26rmcn2g",
      "user_id": "c2en1nv0eqtopabpvcrg",
      "name": "My device",
      "address": "09000000001",
      "status": 20,
      "last_active": null,
      "created_at": "2021-05-15T13:21:34.051937862Z",
      "updated_at": "2021-05-15T13:21:34.051937862Z"
    }
  }
}

Send pin code

This sample application that generates code with expiration and send to destination address.

# request
curl http://localhost:7100/smsguard \
    -u 'ak_2ee7d151d5eb6c7bcbd35ec7f47a3bb8c1b61fc9:' \
    -X POST -d '{
        "device_id": "c2g185v0eqtq26rmcnj0",
        "address": "09123456789",
        "duration_min": 5
    }'

# response
{
    "code": "XJE1K",
    "expiration": "2021-05-26T01:17:16.22595439+08:00"
}

To check the validity of the code.

# request
curl http://localhost:7100/smsguard/XJE1K \
  -u 'ak_2ee7d151d5eb6c7bcbd35ec7f47a3bb8c1b61fc9:' 
  
# response
{
    "is_valid": true
}

About

Enable SMS API on android devices.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published