iOS SDK can you mute or cancel incoming calls - ios

I found various threads here about how muting or canceling incoming calls (or messages) with the iOS SDK is not possible, due to the fact that Apple doesn't want an app to access system level settings. Well in fact not possible with the official tools, which means that if you somehow manage to do it, your app will not be accepted in the iTunes store.
Well I have been asked to assess the possibility of such an app that could do just that. Namely my client has seen these two apps
https://itunes.apple.com/us/app/lifesaver-distracted-driving/id874231222?mt=8
https://itunes.apple.com/us/app/at-t-drivemode/id907208943?mt=8
And they are sure that an app, basically exactly like these (based on the functionality) can be made.
So here I am, asking, how did these two apps succeed at the impossible and also how did they manage to get those apps uploaded to the iTunes store, if muting your phone is not an Apple approved option? I am not really asking for source code, although I am certainly not rejecting examples, but moreso I am asking for pointers of what class or book or documentation do I have to look up to figure out if this is possible? Apples CTCall and CT* classes did not seem to help me much.
K

Apple added the CallKit framework in iOS 10 to allow app developers to do this sort of thing, among others. For docs, see:
https://developer.apple.com/reference/callkit

It is now possible to detect and block unwanted phone calls from iOS 10 and above.
See the CallKit framework
The CallKit framework (CallKit.framework) lets VoIP apps integrate
with the iPhone UI and give users a great experience. Use this
framework to let users view and answer incoming VoIP calls on the lock
screen and manage contacts from VoIP calls in the Phone app’s
Favorites and Recents views.
CallKit also introduces app extensions that enable call blocking and
caller identification. You can create an app extension that can
associate a phone number with a name or tell the system when a number
should be blocked.

Related

Autoanswer iOS Funtionality

I need clarification on the development part.
I was been told to develop an app with an auto answer (call) facility – it’s a critical care app where an ailing father, mother or any other family member can be monitored through auto answer facility (phone call). On the worst case would it be possible through app to app, I mean the auto answering facility. We want this facility to be enabled for our app (for specific numbers) and not for other phone or whatsapp calls.
I’ve tried my research through other forums and connecting with the developers but unable find a solution.
Thanks in advance.
There is no way to have an app answer an GSM call.
However you can answer a VoIP call yourself when using the VoIP Push from PushKit.
In conjunction with CallKit, your app could auto answer this call after a timer fires.

iPhone app with call features

I'm trying to get into a new project, by creating an iOS application. But before I start I would like to understand some points:
is it possible to let an application make a phone call? So what I mean is, assumed we have a phone number and would like to call it. Would it be possible to use an (my) application to call this number?
is it possible to let an application speak during a phone call? So after the application started the call, would it be possible that some predefined statements are said in the call?
is it possible that this application hears, registers and analyses what the other person on the phone line is saying? (Leaving apart the privacy issue, assuming that the other person is willing to do that).
Could you please help me? If my question aren't clear, please tell me, I will try to explain it in another way.
Many Thanks
F.P.
iOS is very restricted in terms of the system behaviors third party applications can influence.
To answer your question bluntly, a third party application could prompt the user to initiate a phone / FaceTime call. Once the call is initiated however, your app would enter a background state and relinquish control to the system. The app would not be able to contribute or read any data related to the system phone / FaceTime call.
iOS 10 introduces a VoIP extension, CallKit, which allows third party apps to use the built in calling UI with a custom protocol. You could implement your own protocol (and host servers for handling the exchange of information) and build an extension to make it feel like a system call. You'd be responsible for all aspects of the custom call protocol and thus reading voices, contributing audio, etc. would all be possible (and up to your implementation).
Outside of iOS 10, you would have to built your own VoIP system and interface entirely from scratch.
For more info on CallKit:
WWDC Enhancing VoIP Apps with CallKit
CallKit Enabled Sample App

Automatically send SMS on iOS 6 jailbreak

Having spent a couple of months on the internet and stackoverflow, I cannot find a way to send an SMS from an iPhone with iOS 6 (6.1 to be precise) when an event occurs or with a tweak. I've read that apple has changed the way SMS messages are being processed since iOS 5 and to be specific
The main difficulty comes from the fact that Apple introduces an IPC
mechanism in iOS 6 that resembles the "Share" functionality in
Android. Unlike before where sending an SMS is a direct call in
SpringBoard process, now Apple uses what is internally called as
RemoteViewController's to implement such functionality.
RemoteViewController's run in separate processes and expose NO
interface as in iOS 4/5 for sending SMS's so it will be useless to
just hook SpringBoard process. This design is applied to SMS, e-mail,
Twitter, Facebook, Sina Weibo, etc. sharing interface.
Quoted from https://github.com/mrzzheng/GVExtensions/wiki/GV-Extensions-on-iOS-6.
Please do not post answers having to do with MFMessageComposeViewController it is not what I am looking for! What I am looking for, is the private headers that can be used to perform the task (have read somewhere that it may be able to accomplish it using the ChatKit and the IMCore frameworks).
Lastly, before saying that it cannot be done, take a look at the iRealSMS and HandcentSMS apps available for free on Cydia, doing exactly what I am talking about.
Thank you in advance!

iOS: read sms while app is active, like Drivesafe.ly does

Can you point me to a method which allow an app read sms messages while the app is active.
I know many people say it's not possible, but Drivesafe.ly does it and I know some bank apps do that. The only condition for that to work is that the app is currently active (shown on the screen).
Many thanks!
Iam afraid its still not possible on iPhone. If you check the iTunes page for Drivesafe.ly app, there is a notice about that.
It says:
...the application does not read native text messages out loud that come directly from your wireless carrier. Unfortunately, this is not technically possible on iOS devices today...

Does Apple provide an API for SIRI?

Is it possible that Apple does or will provide an API for Siri? It would be great if I can be sipping my coffee and say,
User: Hey Siri, could you please open Angry
Birds; Level 4 and throw a first bird for me. Make sure you at least hit one green pig or it's coming out of your paycheck.
Siri: Yes sure, I will do that for you.
Is this possible? And would you think Apple will provide this to us?
THIS IS NO LONGER ACCURATE:
There is no API and there is no indication of it changing anytime soon. There are private headers that you can look at by decompiling the SDK. This is a great synopsis:
Quora
You can be clever like RTM though, this is as close as it gets:
http://www.rememberthemilk.com/services/siri/
In iOS 10, Apple has announced an API for Siri called SiriKit. However, you can only do it as an app extension and only if your app implements one of the following types of services:
Audio or video calling
Messaging
Payments
Searching photos
Workouts
Ride booking
Climate and radio
SiriKit is a way for you to make your content available through Siri.
It also lets you add support for your services to the Maps app. To
support SiriKit, you use the Intents framework and Intents UI
framework to implement one or more extensions that you then include
inside your iOS app. When the user requests specific types of services
through Siri or Maps, the system uses your extensions to provide those
services.
This means SiriKit cannot be used for the scenario mentioned in the question and in ways that many of us would like.
Source: Apple Docs for SiriKit
When the iPhone was first released, there was absolutely no public talk from Apple about custom app development. The delayed release of the SDK gave them plenty of time to get public feedback on the iPhone user experience and make the SDK ready for public use.
It seems likely that they're taking a similar approach with Siri.
Not yet. If you want it, file a feature request at bugreport.apple.com, and briefly describe what you want it for. The more people ask for it, the more likely it is to happen.

Resources