There are PAID apps that can try to do EXACTLY what you want, but most don't work well enough to work every single time an UNKNOWN or PRIVATE number calls, even if it's the SAME number that calls Monday and calls again Tuesday, most won't work 100%, and even then you have to have connection to the internet for them to log into the public database that they use to pull up the numbers.
Actually what you need is an app that will BLOCK the Private and UNKNOWN callers and leave them a message to UNLOCK their numbers if they wish to have their calls answered by the person they are calling.
I do this with a custom message using Google Voice as my voice mail. Any friends or family that call my number already know to do this, and any telemarketers just hang up and don't call back. Otherwise just don't answer these calls and let them go to your carrier voice mail and let them leave a message. If it's important enough, the person calling will leave a message.
What most people don't seem to be able to do, is allow the tools (the voice mail, text or email), work like it is suppose to, and allow you to respond when you have the time to do so. I answer calls, text and email on my terms, if people refuse to leave me a message, then they really can't expect me to respond if I don't pick up when they call with a UNKNOWN or PRIVATE number.
Again even the paid apps/services to do this do not work 100%, and as far as I know there are no FREE apps on any cell phone platform that does what you want.
Sorry but there is no app where you can unblock someone number because its on their end that it is blocked...but what you could do is block blocked calls...so anyone whos trying to block their number wont bbe able to call you, They will have to unblock their number inorder to get the call to go through. It should be under your settings in your phone.