My idea is to combine a couple of different techniques to solve the problem because none of the single existing technique is enough. The telephone company (service provider) detects a spam score for a call, prompts the caller to pay a higher call rate if he/she wants to continue, and passes on a part of the higher rate to the receiver. The telephone company is benefitted and is motivated to use the best spam detecting algorithm. The telemarketer is demotivated to continue the call due to higher cost, whereas a robocall will likely not understand the voice prompt of higher rate and not be able to continue the call. On the other hand, a legitimate caller who got wrongly classified as spammer can continue the call, settle the dispute with the receiver directly. The receiver (user) is motivated to use the new service because it could lower (or zero out) his/her monthly bill if he/she picks up calls from telemarketer and robots. The receiver can unmark any spam call during the last month, and the service provider bills at the end of the monthly cycle. The idea ties in to the economics (instead of law enforcement) and hence can sustain on its own while benefitting all parties.
There could be several side effects. If the telephone provider does not properly filter spam calls, the subscriber (receiver) is motivated to switch the provider, similar to how people switch to the email system with better spam control. If the telephone provider wrongly marks legitimate callers a spammer, the caller could use a different provider. Any entity in the call path could perform the spam detection and prompt the caller. Since billing is variable instead of constant, this could give rise to some legal disputes in billing initially. As the system matures, things will stabilize.
Most of the changes are required in the service provider's equipment. There is no change in the subscriber's equipment except that the user signs up for the this new and free service available from his/her provider. Hence it works for both landline and mobile. If one telephone provider is compromised and assists the robocalls, the next one in the call path may not, and things still work. This is similar to how email spam can be detected by any mail server on the path.
The main technology that detects the spam or robocall does not need to be perfect, because the caller can still go through with higher rate, e.g., instead of regular 1cent/min it could be billed at 2cent/min, or instead of being counted as 1 billing-minute-per-minute, it could be counted as 2 billing-minute-per-minute. When the service provider detects the call to be a spam or robocall it prompts the caller in voice path saying "your call is detected as a potential robocall, and if you like to continue the call at double the call rate please press 6 8 7 otherwise hang up"; where the three digit number could be randomly generated per call attempt.
The detection algorithm could employ a variety of techniques to detect. For example, the first switch can detect that too many calls originated from the same line. Intermediate switch could detect that the call originated from VoIP and/or has suspicious caller ID. Subscriber's switch could detect that the subscriber does not answer calls at this time and/or from these numbers in last several attempts. Each type of detection could add a score to the total spam score, similar to email spam scoring, and the provider or the subscriber can configure that a score higher than 0.5 (out of 1.0) should be marked as spam, for example. This also motivates the service provider to allow the user to create black-list or white-list of callers, and to share such lists with each other and across subscribers. A legal robocall provider will continue will all the calls, but will settle the dispute during the monthly billing cycle.
While this solution does not completely solve the problem, it provides a platform for tying the value of the call to the economics on a per call basis, and allows the caller, provider and subscriber to choose what works best for them. Some robocaller may not mind paying a higher call rate, and some subscriber may not mind receiving such calls if it lowers their monthly bills. The subscriber configuration on the provider web site could further allow what higher rate the subscriber wants for various spam score of the call.
Part of the higher call rate goes to the subscriber. For example, a consultant could get a number, set the higher rate for all calls, and get paid for the calls. The service provider becomes the broker for sending billing-minutes (equivalent to money) from caller to callee, after some commission. This is similar in motivation as the 900 calls in USA, but applies to all numbers, and on a call-by-call basis.
Finally, proper customer education needs to be made - if you hear the higher call rate prompt, you should know what to do as a legitimate caller. If you got billed higher call rate for your regular call, there needs to be a way to resolve the dispute. This needs the provider (both caller's and callee's), to record all calls, the call prompt digits if detected as spam, and the confirmation of digits from the caller if the caller continued.
The techniques that are combined in this solution are as follows. First is to punish the spam caller, but instead of imposing a fine, it is at micro and per-call level. Second is to incorporate a prompt to enter digits similar to CAPTCHA but for telephone. Third is to create algorithm to detect spam or robo calls. Each of these categories of techniques are already proposed, but my unique combination of these ideas has value, I think.