In my opinion, the only way to stop the robocalls is for the phone service providers to go back to the old, old system of charging a significant amount per call, say $10/call, except to only charge if they exceed a certain number per day, say 100. Normal users would not ever be charged but the robocallers wouldn't to be in business if they had to pay for all calls over 100. They make their money by finding those .1 percent that get taken and that requires making 1,000s and 1,000s of calls per day. even telemarketers would go out of business. And this should apply to charities and politicians as well who are currently exempt from the do not call list.
Realistically I don't expect that to ever happen but it would stop the problem.