A BT line is needed for this - but it allows you to block all unwanted calls, even when they spoof/change their numbers, FREE OF CHARGE. You choose the numbers, or types of numbers, you want to block.
BT Call Protect helps to prevent unwanted nuisance calls. By managing your settings, you can decide which calls you want to send to a junk voicemail.
Customers with this service can send calls to their junk voicemail by setting the preferences below:
BT Blacklist - We've identified a list of nuisance callers. Calls from these numbers will be sent to your junk voicemail. Our blacklist will significantly cut the amount of unwanted calls you get. We’ll turn it on by default when you get BT Call Protect
Personal Blacklist - You can add the last call you answered from your home phone, or any other phone number at bt.com/btcallprotect > to your own blacklist. This means that any future calls from those numbers also go to your junk voicemail. This feature will also be automatically switched on, but won’t have any numbers until you add some
Individual Call Types - You can choose to send all calls from certain categories to your junk voicemail. The three call types are:
✓ International numbers
✓ Withheld numbers
✓ Unrecognised numbers (shown as 'unavailable' on caller display or on 1471)
If you don't already have BT Call Protect you can order it online at: https://www.bt.com/products/manage-phone/#change-your-calling-features
Once you've got it, you can manage all your settings online via http://www.bt.com/BTCallProtect
> or from your home phone by dialling 1572, which is free.
Worth mentioning anyone with an iPhone and the latest iOS version can install an app like "Hiya" or "Truecaller" which integrates with the OS and warns you of a spam or dodgy phone number when it's ringing. I only learnt about this the other day and it's fantastic - never again will you have to put up with cold calling or dodgy companies/"offshore" call centres.