Android: Sanity is a free utility for Android that can suppress unwanted phone calls and SMS messages, announce the names of callers when you get a call or message, and allow urgent calls through even if your phone is set to silent.
Sanity's features boost your phone's privacy and make sure that every time your phone rings or you get a SMS, it's from someone you want to hear from. The app will automatically refuse calls and SMS messages from people on a block list, or from any unknown or anonymous numbers. You can also tell the app to auto-answer callers on a white list, or automatically allow callers on an emergency list to get through to you even if they call during silent hours or when your phone is set to silent mode.
The app can automatically announce a caller's name before it answers, and can record phone calls from specified callers as soon as you pick up (though remember that you'll still need to ask for their permission). The basic app is free at Google Play; there's also a $4.05 "Donate" version which allows you to record phone calls longer than two minutes and unlocks more settings in the app options.