iPhone answering machine - iphone

Is it possible to create an iPhone application to answer incoming voice calls and play audio files back to the caller? If yes, before answering the call, is it possible to determine the caller id?
Thanks!

This is not possible using the SDK. You can most likely do it with a jailbroken app.

iPhone applications (non-jailbreak apps, at least) cannot intercept phone calls. When a phone call is initiated, your app is paused and cannot execute any commands.
Essentially, count on never being able to prevent basic functionality of the iPhone. You can't override texting behaviour, Mail.app behaviour, Safari behavior, etc. because Apple wants the user experience to be consistent (not to mention security issues in allowing an app to answer calls on someone's behalf).

Related

Is there a way/framework to track the SMS (Number/day) and Call data (Minutes/day) on a normal iPhone (Not Jailbroken)

I am a beginner iOS developer and I am trying to build an app which tracks the users SMS (Number) and Call data (Minutes/day) only but have no clue which framework to use. CoreTelephony is of no use as per my knowledge. Any help would be appreciated!
Call Statistics and SMS Statistics are handled by the cell carrier, but are also recorded by the phone and are visible in the settings application. However, there is no way for your app to access this information (as far as i know). It would be a privacy concern and probably won't ever be available. Im sure there is a way to do it on a jailbroken device, but it sounds like thats not what you want. What exactly does your app do?

How to block incoming phone calls, text messages and email in Objective C

Is there any way to block incoming phone calls, text messages and email. Will appstore allows these kind of applications on appstore. Please help me if this is possible or not.
It is now possible from iOS 10 to block the unwanted calls
Checkout the CallKit framework
CallKit 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.
Update: Never say never :) iOS 10 introduced this possiblity, see other answers.
Original:
NO, this is not possible with public API (and non-jailbroken devices)
And NO, Apple would never allow any app that disrupts the expected standard system behavior
Apple will never allow any third party application to do any illegal things without user's knowledge. This is the policy I think apple has applied to ensure his user's that their data are safe in their iphone. U can consider mails, calls, sms to be under those categories. There may be others which I might have missed.
Please refer this link for your knowledge
Only Apple can do that and unfortunately for you they plan to do otherwise.. :/
Even if it is called "smart", all in all your target device is a "phone" so the basic phone functionalities should not be ever blocked, and the phone manufacturers do not allow this for third party applications.
Rajan is correct you can block the incoming phone calls from iOS 10.
Create a Call Directory Extension , use the addBlockingEntry(withNextSequentialPhoneNumber:) method to pass the blocked numbers to the system.
Now it's end of 2018 and actually you can really do something with Apple's latest API.
As #Rajan stated, with CallKit API (iOS 10+) you can achieve call blocking and identification (i.e. show additional info on the incoming call screen for the caller's phone number).
You can also do SMS and Call Reporting (iOS 11+) as well, where you have access to the SMS content if the number is not in your Contacts.

Can we play prerecorded message in a call through iPhone app?

I want to create an iPhone app with following features:
User should be able to make a call to number.
App will play the prerecorded message when call get connected.
After playing the message, line will be connected and user will be able to communicate with the person to whom he made the call.
I heard that Apple doesn't allow the developers to interact with the calling functionality of iPhone but is there any way to achieve this. Please suggest!
Thanks-
You have heard correctly, According to Apple Developer Library, it is not possible to intercept the calling functionality.
Simple Apple does not allow such stuff with current sdk.
Not so sure but, May be possible for jailbroken iPhone app.

Incoming call wakes iOS background App?

is it possible to wake an App in the background up, when a call comes in, and access CoreTelephony to send some infos over the web?
I'm practically a n00b in iOS development right now, but got asked a question if iOS is capable to do this. I searched in the iOS reference too, but with no luck.
It would be great if someone with more experience could answer it. Thanks a lot!
Steno
Please, have a look at the document about executing code in the background.
If you go to section "Implementing a VoIP Application", you will see that it is actually possible for your app to be awaken periodically so that it can check if it has anything to do (in your case, if I understand you correctly you would use CTCall to check for calling state).
So, basically, when awaken, your app could check for any incoming call and then use Core Telephony, as you say.
The only trouble about this is that if your app cannot be considered to a a VOIP app, Apple will not let it into the App Store.
It is not possible to have your code run when a call is received.

Phone development: interact with the call?

Today, the focus of a cell phone's capabilities is drifting away from plain making a phone call.
And somehow, this shows in the API's too. Therefor I'm wondering: if I want to write an app that e.g. pitches up, records, scrambles... an incoming call - you know, the voice on the other side -, what aspect of the API should I use?
I looked into Android, into Windows Phone, iPhone... (briefly), but had no luck. Is this just unintended usage?
This is also not possible with Windows Phone 7. There were, however, API methods for interacting with incoming and outgoing calls and texts in Windows Mobile.
The reason this is not possible in Windows Phone 7 comes down to a deliberate decision around data security and the aim that apps on the phone shouldn't be able to do something without the user specifically knowing about it. This prevents, amongst other things, malicious apps having information about or access to potentially sensitive data.
This is not possible in Android, except maybe via firmware modifications.
There’s no way to do that with the iPhone SDK. It may be possible through jailbreaking, but I’m not familiar enough with it to speak on it.
Given the limited accessibility of in-call audio but ready access to microphone/speaker and data on current smartphones, would probably be easiest to do this as part of a VOIP calling application.