If you are already using Tasker you can make your phone check for the availability of the incoming call number in contact list. If not available, it can be made to play a special ring tone.
This is explained here. The content of the same is reproduced here as well:
Different Ringtone for Unknown Callers: I missed my old Windows phone
feature where I had a special ringtone for anyone NOT in my contact
list, so I recreated it. Unfortunately my Galaxy S2 seems to have a
lot of quirks about the way it handles the ring of incoming calls, so
this pair of profiles is more complex than they otherwise would have
to be. Also, on my phone I actually hear both my default ringtone and
the "unknown caller" ringtone simultaneously (despite setting the
ringer volume to 0 in the Task, it keeps ringing loudly).
Anyway, to use this you will have to modify the "Unknown ringtone"
task so that the "file" in the second action points to a valid file on
your phone (mine points to an mp3 of cicada).
The "unknown caller start" profile specifies that when an incoming
call is not in your contact list, to start playing a special ringtone
audio file, and to stop playing it (by calling the "unknown ringtone
stop" task) after you ignore or pick up the call. Since on my phone
the sound kept playing if I picked up (it successfully stopped playing
if I ignored the call) I added a second profile "unknown caller stop"
which actually stops the ringtone playing when you're in a call (after
you pick up).
You could easily modify it to play a special ringtone under different
circumstances by altering the context of the "unknown caller start"
profile. Currently it has caller equal to "!C:ANY" (not equal to any
contact), but you could use a pattern like "077*/Geoff*" to activate
this profile if either the caller's number starts with 077 or is a
contact whose names starts with Geoff.