Here’s what I do to avoid this. I’m on call pretty much all the time, so I can’t just turn off the ringer on my iPhone. So when I would get a call with some Pakistani saying a bu daba or something like that at 3am it would really piss me off.
What I do is record ten seconds of silence then add it to my iTunes library. You can then convert this to AAC in iTunes (There are a bunch of articles on how to do this for different platforms, or you can just buy a silent ringtone for 99cents). You then set this silent ringtone as your default ringtone and set all your contacts with non-default ringtones. Your phone will never again ring unless it’s from somebody you know. If it’s important enough, they can still leave a message. I hate to say it, but I even have a family member on the silent ringtone since they forget they are in a different time zone and sometimes call at 7am on a Saturday.
The only issue is that any time you update your iPhone, it removes the silent ringtone for some reason, but it’s pretty easy to set up again.