In Canada, charities and election campaigners are exempt from DNC lists, but have to follow rules about when calls can be made. Also exempt are companies with whom one has done business within the last 2 years, so for example one's bank and its credit card and insurance departments are free to pester with impunity. As are the million worthy charities looking for a buck. It got really tiresome informing them one by one that I've chosen my charities and have no plans to change them.
Solution: We simply don't answer the land line, it serves our machinery. For cell phone, I've put ALL friends and family & busniess contacts into my cellphone contact list. There's a sound setting where I can specify the ringtone to use for numbers not on the contact list, so I set one. It's actually a custom recording of me saying "junk call, don't answer this". :-) If the unidentified call is from someone worth my time, they'll leave a message (corollary: if you haven't left me a message or called from a number you gave me, you aren't worth my time). In my experience, junk callers never leave a message.
I've put all our numbers on Canada's DNC list and contrary to popular belief, it did not result in an increase in junk calls. We do have a few less; I can tell by the time of day: The one who calls at 9:40 nearly every weekday still does as does the 4:20-ish caller and some others; the 10:15 hasn't for a long time now. Those regular rings have become like train whistles: part of the sonic landscape where I live.