Here is a detailed technical overview of how the DGV6 SMS-Bridge application functions and communicates with your server. You can provide this description to your vendors or technical partners.
The DGV6 SMS-Bridge is an automated Android utility designed to bridge the gap between physical SIM cards and web-based automation platforms. It listens for incoming SMS messages (specifically EPINs for airtime, data, or utility fulfillment) and instantly forwards them to a pre-configured web endpoint (Webhook).
The application operates as a background service using a BroadcastReceiver architecture.
- SMS Interception: The app registers a system-level listener for the android.provider.Telephony.SMS_RECEIVED intent. This allows the app to "wake up" the moment an SMS arrives, even if the app is closed or the phone's screen is off.
- Data Extraction: Upon receiving an SMS, the app extracts the Sender's Phone Number and the Message Body Content.
- Data Cleaning: To ensure high fulfillment success rates, the app automatically performs "data cleaning," such as removing hyphens (-) from EPIN numbers before transmission.
- Background Processing: The app uses asynchronous threading to ensure that network requests do not freeze the user interface. It also utilizes WorkManager for tasks that require guaranteed execution, such as retrying a forward if the initial network request fails.
The communication between the Android device and the server is handled via a secure HTTP POST request using the JSON data format.
- Method: POST
- Content-Type: application/json; charset=utf-8
- Authentication: A shared Secret Token (configured in both the app and the Super Admin panel) is included in every request to authorize the transmission.
The app sends a structured JSON object to the server with the following fields:
{
"action": "RECEIVE_SMS",
"secret": "ff28521272bfef24ac887ebc75758aba",
"sender": "+2348012345678",
"message": "571371665793"
}
- action: Specifies the intent of the request (e.g., RECEIVE_SMS).
- secret: The private API key used to validate the request on the server.
- sender: The originating phone number of the SMS.
- message: The cleaned content of the SMS (e.g., the EPIN).
The server (typically a PHP endpoint like endpoint.php) receives this POST request and performs the following:
- Validates the Secret: Compares the received token with the one stored in the database.
- Parses the Data: Extracts the sender and the message/EPIN.
- Fulfillment: Triggers the internal logic (e.g., fulfillEPIN()) to fund the user's wallet or process the utility payment.
- Response: Returns a JSON response to the app (e.g., {"status":"success", "msg":"Wallet Funded"}) which the app then displays in its Live Terminal Log.
- Timeout Management: The app is configured with a 15-second connection and read timeout to ensure reliability over mobile data networks.
- SIM Detection: The app automatically detects active SIM card slots and monitors their status to ensure the bridge is active.
- Live Logging: Every step—from SMS arrival to server response—is logged in the app’s "Live Terminal Log" for real-time monitoring and debugging.
Developer Note: For production stability, it is recommended to set the app's battery optimization to "Unrestricted" to prevent the Android system from putting the bridge into "Sleep Mode."