I'm looking for a estimated quote for an Android app that performs the following high-level functionality:
1. When a call is received the app checks the caller ID.
2. If [A] the caller ID does not contain a valid number, such as "Blocked", "Private", "Anonymous", [B] starts with a 0, 1 or 9, or [C] matches the area code and prefix of the users phone number (such as "415-555" and the users phone number is "415-555-1234"), it is marked as spam.
3. If the caller ID does not match a phone number in the contact list, the call is marked as spam.
4. If the caller ID matches a contact, the phone handles the call as expected - it rings etc.
5. If the call is marked as spam, the call is forwarded to a phone number of the users choice. The user can enter this target phone number in the settings of the app. I would prefer if this forwarding can be done in a way that is unobtrusive to the user, such as not waking the phone up, not vibrating, etc.
NOTE: If there is a way to have this app work in conjunction with the provider (Verizon, AT&T, etc) and their native *71, *72, and *73 Call Forwarding & No Answer Transfer features, eliminating/avoiding per-minute call charges, that would be ideal.
6. If a number attempts a second call within 60-120 seconds, which is user settable, the call is marked as legitimate, saved in a whitelist, and allowed to ring through as normal.
7. There are a number of settings allowing the user to manage calls, whitelists/blacklists, contacts, contact groups, scheduled enabling/disabling, connecting to multiple Google accounts, saving/exporting settings, and so forth.
I will provide more detailed requirements that cover interface UI/UX, pages and workflow, required settings and features, etc.