I've advocated (including to my senator, Warner (D) of Virginia, a former telecom executive) that the FCC should require changes to make CallerID Verified. By this I mean that the Telco/switch has to verify the CallerID (e.g. using payment data?), and mark the CallerID information as either verified or suspect. This would not solve the problem, but would, I believe, help both consumers and Law Enforcement.
As long as spammers can forge CallerID, we won't be able to depend on CallerID to screen calls, and DoNotCall registry violations will be much harder to enforce. "Brigitte from Credit Card Services" calls usually have a City/State CallerID value, rather than the name of an individual or organization. But I get some legitimate calls (e.g. my dog's oncologist) that also show up as City/State. (I know to answer calls from Vienna, VA - at least until the Spammers start forging local CallerID values...) My former employer removed its telephone number from the CallerID information, I know if I get a call from "732" (New Jersey area code) that it's most likely one of my former co-workers.
But recently I've been getting Spam calls on my cell, usually (but not always) the CallerID says "unknown". Until this month, such calls were limited to the Land Line (and this is the single strongest argument for ditching the land line.)