This app sends dropped call (aka missed call) notifications to any remote server. A user can configure the URL of remote service to which notifications need to be sent. Various other settings can also be configured.
It works as follows:
On receiving a phone call, it captures caller's phone number if available and sends to the configured remote server the following data as JSON string:
This JSON string is encrypted using 256-bit AES algorithm using PKCS #5's PBKDF2. The resulting encrypted value is then Base64 encoded and sent to the remote server over HTTP POST as a parameter named "data".
If enabled in settings then the incoming calls are immediately rejected after capturing caller details.
Learn more about how to use this app for building a dropped call based authentication system:
ABOUT PERMISSIONS REQUIRED BY THIS APP
We need the requested permissions so that we can:
1. Connect to specified remote server via available network. Thus we require android.permission.INTERNET
2. In order to detect an incoming call we need android.permission.READ_PHONE_STATE permission for monitoring phone's state.
3. In order to reject incoming call we need android.permission.CALL_PHONE permission.
4. In order to keep the SIM active sometime the carrier requires certain minimum usage. This app can automatically send SMS to a configured number. For this we need android.permission.SEND_SMS