I found a way to find out if DND is enabled, but it can only be used in certain circumstances ... CallKit will return a specific error code when DND is enabled, for example:
CXCallUpdate *update = [[CXCallUpdate alloc] init]; update.remoteHandle = [[CXHandle alloc] initWithType:CXHandleTypeGeneric value:handle]; [(CXProvider *)self.provider reportNewIncomingCallWithUUID:uuid update:update completion:^(NSError *error) { if (error) { NSLog(@"error when reporting imconing: %@", [error localizedDescription]);
source share