Don’t give out your phone number to anyone other than trusted contacts that you wish to actually call you. That has always worked for me, I get very little unwanted or spam calls, most of the time. However, I understand this is often not a viable option for most folks.
The built in Spam call blocker by Google on my Pixel phone, along with Republics blocker, seem to work well for me, though I have no way to actually see what it has blocked. If call comes in that i don’t recognize, i ignore it…I don’t care if they leave a Voicemail, and they very very rarely do. (Unless its State Farm Insurance…that company has been calling me and sending me insurance advert letters non stop for 20 yrs! despite my multiple attempts by phone, mail, and in person to have the stop)
A trick my boss informed me of that has helped him, for known spam calls, answer the call, but say nothing, or better yet, immediately mute your microphone, and leave the line open for at least 15 sec or until it auto hangs up. It will cause dead air and the roto dialer or spam caller will most likely think it is a bad or invalid number and move on. Several folks I have suggested this to, and who have taken the time to do so, have reported success in reducing the amount of spam calls. It take time, a month or 2 at least.