1. I have a "clean" phone number I only share with friends/family. Certain prefixes and phone number actually receive next to zero spam calls. This number has received 2 calls in the years I've had it.
2. I have a phone number I share with companies / loyalty programs / etc.
3. I have a legacy phone number I've had for 10 years that receives multiple spam calls daily. For this number I've set up an incoming handler that uses Google Cloud to ask the caller a simple question (What is five plus two?), parses with the Speech Recognition API, and forwards calls with the correct answer. The rest go to voicemail. It's better to use the speech recognition API than it is to ask the caller to press a DTMF tone, in case they are in a car or are calling from a device without a telephone keypad. If I every need to, I'll add this protection to use numbers 1) and 2).
4. I have a number that rings straight to voicemail.
All numbers use the Whitepages and Nomorobo APIs from Twilio. These score the "spamminess" of calls. Calls with sufficiently high values are forwarded to voicemail.
For incoming calls, I set the caller ID for the calls to my SIP clients to indicate which number is being called, and include the spam score.