How can I use private APIs to block incoming calls in an iOS application?

Are you sure it does not?
code examples on http://tech.ruimaninfo.com/?p=83 shows how to do such things.
Core Telephony headers in SDK are not complete.
Of course this means no app store
this is my code fragment based on example I linked

if ([str1 isEqualToString:@"kCTCallIdentificationChangeNotification"])
{
    NSDictionary *info = (__bridge NSDictionary *)userInfo;
    CTCall2 *call = (__bridge CTCall *)[info objectForKey:@"kCTCall"];
    NSString *caller = CTCallCopyAddress(NULL, call);
    NSLog(@"Caller %@",caller);
    if ([caller isEqualToString:@"+1555665753"])
    {
       //disconnect this call
       CTCallDisconnect(call);

}

additional definitions needed:

typedef struct __CTCall CTCall;
extern NSString *CTCallCopyAddress(void*, CTCall *);
extern void CTCallDisconnect(CTCall*);

and you need to monitor telephony center’s callback(see linked example)
I tested this fragment on my iOS5 device

Leave a Comment