The simple solution would be for the network providers to validate the caller ID numbers for its subscribers, but that requires changes to punish the ones that don't do it.
I've worked with telephony for 15 years and I know the big providers do this for most common telecom protocols, but VoIP providers tend to be more lax. But that's where they shouldn't, and the ones that break this shouldn't be allowed on the network.