A new call currently has only two attributes: that it is happening at a certain time and the Caller ID data, delivered just before the call. Caller ID data is supplied by the outgoing call control system, either the telco local office for a POTS line or the terminal, VOIP, or PBX system for all-digital calls. Frequently Caller ID is blocked, misleading, or invalid (e.g. too short or long or invalid country/region codes). We will only assume that it would be difficult for an illegal / antisocial robocaller to reliably guess a private white-listed phone number and that certain numbers could be reserved for legitimate government and telco sources. Good examples of the latter would be reverse 911 (perhaps with multiple levels, 411 or 912, 913,...) or 202-USG-* and equivalents. These could potentially be blocked from ingressing into a local telco, and large penalties could be attached to spoofing 911, for instance.

Mobile phones and land lines can generally be assumed to have an Internet connection, even if it is a minimal connection allowing only certain carrier-special traffic. This can be used to receive a pre-call Purpose Packet, sent by the phone user's subscribed Call Coordinator. The Purpose Packet indicates the purpose for the call, both at an abstract level and with one or more fields specific to the request. It also would include ratings and an evaluation of likelihood of validity vs. scam vs. spam along with other warnings, such as being from an area with currently known high fraud.

The Call Coordinator is a service, centralized or run by a third party or run by the phone service provider, that provides an initial call filter and routes probably-legitimate Purpose Packets to the phone's Purpose Monitor service. The Purpose Monitor can do both automatic filtering and it can ask the user, through the phone app perhaps, whether the user is interested in the call. The user can make a variety of standard response types along with a small number of parameters. A standard set of response types would be defined with major category and subcategories. These categories would have a starting set, but would be extended by a crowd-sourced “write-in” set that would become standard if popular.

The Call Coordinator that holds the records for a particular set of outgoing numbers could automatically provide Purpose Packets upon request by the callee Purpose Monitor based on Caller ID or it could be triggered with any interface, such as a web page, that indicates that the calling entity is about to make a call to a number. This allows the system to work immediately for enabled callee end points with little (at worst a web browser) or no (relying on caller ID) integration with the caller's systems. Relying only on caller ID would work in many cases, but if the caller ID was spoofed by illegal callers and attained a poor reputation, the legitimate calls from that number would be blocked until an authenticated Purpose Packet is created. A calling entity could overcome reputation problems by a certification and auditing process. For instance, if a legitimate and legal political poll organization was reported as a bad actor by too many users who were mischievous, they might have to overcome this by auditing.

Responses provide feedback to the caller as to whether the user is not interested at all, interested at a later time – given as a specific delay or time period or blocks such as “evening PST” or just a non-specific “try again later”. The response could also direct the caller to send email instead, providing a direct or blind email address. These responses could be completely silent and automatic in some cases while being chosen by the user in others, before, during, or some time after the call.

A call marked as “unsolicited spam” or other illegal or inappropriate category, is also reported to the Call Coordinator for factoring into ratings, automatic blocking, and reporting to authorities. Conversely, successfully accepted and acted upon legitimate calls would raise the ratings of the caller. This can be sensed both automatically, such as by length of call, and by user rating of the call after termination.

Share this project: