It will be difficult and the result will be far from perfect.
You can add a static intent filter that intercepts the android.intent.action.PHONE_STATE intent. You need to add and request at runtime: android.permission.READ_PHONE_STATE
You can extract the incoming phone number and play a sound. It will not stop the default phone app.