Skip to content

bogkonstantin/android_income_sms_gateway_webhook

Repository files navigation

Incoming SMS to URL forwarder

How to use

Set up App Permissions for you phone after installation. For example, enable "Autostart" if needed and "Display pop-up windows while running in the background" from Xiaomi devices.

Set sender phone number or name and URL. It should match the number or name you see in the SMS messenger app. If you want to send any SMS to URL, use * (asterisk symbol) as a name.

Every incoming SMS will be sent immediately to the provided URL. If the response code is not 2XX or the request ended with a connection error, the app will try to send again up to 10 times (can be changed in parameters). Minimum first retry will be after 10 seconds, later wait time will increase exponentially. If the phone is not connected to the internet, the app will wait for the connection before the next attempt.

If at least one Forwarding config is created and all needed permissions granted - you should see F icon in the status bar, means the app is listening for the SMS.

Press the Test button to make a test request to the server.

Press the Syslog button to view errors stored in the Logcat.

Request info

HTTP method: POST
Content-type: application/json; charset=utf-8

Sample payload:

{
     "from": "%from%",
     "text": "%text%",
     "sentStamp": "%sentStamp%",
     "receivedStamp": "%receivedStamp%",
     "sim": "%sim%"
}

Available placeholders: %from% %text% %sentStamp% %receivedStamp% %sim%

Request example

Use this curl sample request to prepare your backend code

curl -X 'POST' 'https://yourwebsite.com/path' \
     -H 'content-type: application/json; charset=utf-8' \
     -d $'{"from":"1234567890","text":"Test"}'

Send SMS to the Telegram

  1. Create Telegram bot and channel to receive messages. There is short tutorial how to do that.
  2. Add new forwarding configuration in the app using this parameters:
    1. Any sender you need, * - on the screenshot
    2. Webhook URL - https://api.telegram.org/bot<YourBOTToken>/sendMessage?chat_id=<channel_id> - change URL using your token and channel id
    3. Use this payload as a sample {"text":"sms from %from% with text: \"%text%\" sent at %sentStamp%"}
    4. Save configuration

Incoming SMS Webhook Gateway screenshot Telegram example

Process Payload in PHP scripts

Since $_POST is an array from the url-econded payload, you need to get the raw payload. To do so use file_get_contents:

$payload = file_get_contents('php://input');
$decoded = json_decode($payload, true);

Screenshots

Incoming SMS Webhook Gateway screenshot 1 Incoming SMS Webhook Gateway screenshot 2 Incoming SMS Webhook Gateway screenshot 3

Download apk

Download apk from release page

Or download it from F-Droid

Get it on F-Droid

This repository contains a stable app with minimum functionality. It is not archived, but not actively developing. If you need an app with merged PRs - try this fork