CallKits phone directory extension can be used to block standard phone calls.
But how does a VoIP call block work on iOS 13?
When there is a VoIP call, your app receives a VoIP push, but now with iOS 13 Apple points out that when you receive the push, the app must
CXProvider.reportNewIncomingCall () .
But when reportNewIncomingCall () is called, the OS displays an incoming call screen (which is not the same as for a regular incoming call). It is apparently not possible for this call screen to be suppressed, and even though reportNewIncomminCall () is invoked with a parameter which is a number registered as blocked by the CallKit extension, the call screens are still displayed.
So It seems impossible for a program to offer the ability to block a VoIP phone call (unless the app sends the list of blocked numbers to the server, and the server does not send push for a particular handset for blocked numbers. If the app is installed in hundreds of thousands or millions of phones, it is a large enterprise on the server side to implement).