I have no idea what the solution is, unless there's a technology break-thru that allows caller ID to tell the difference.
Actually, I think I get fewer calls now because I started answering the phone and saying "Hello? Hello?" in a doddering retiree voice. If I get a live person, I just talk slow and go along, just to see how long I can keep them on. Five minutes is about all they can take, and then they just hang up on me.
One time I was talking to some guy in India or Pakistan, and I wailed in a helpless voice, "But the man at the bank told me there would be bad people calling me about getting a new credit card, and that I should get on this Do Not Call thing so nobody will ask me to get a credit card. Do you know what he was talking about, that registry?" The guy chuckled and said in a lilt, "Oh, sir, that does not apply to us."