For Android:
There are apps like Extreme Call Blocker (https://play.google.com/store/apps/details?id=com.greythinke...) which you can set up to send everything not in your contact list straight to voicemail.
Also you could use something like Should I Answer (https://play.google.com/store/apps/details?id=org.mistergrou...) which will show you if a caller is spammy based on a huge database of crowd-sourced ratings.