The correct solution is just giving people the option to charge people for phoning them.
Say minimum wage is 12euro/hour, and declining a call takes about a minute of your attention, so this is worth at least 20cent.
Instead of just "Answer" and "Hang-Up", there should be a gov't enforced "charge caller 20cent" option.
This would have no impact on 'real' calls, nobody would charge their Mother and if someone is tacky enough to charge their GP or mechanic they could just be billed for it, and it would hardly be worth someone's trouble to try to steal a phone to call themselves to collect 20c, but it would totally ruin the economics of these spam calls.
The same should exist for emails.