Track duration of voice calls [duplicate] - iphone

Can I fetch details of the incoming call phone number in my iPhone application?

No, you can't and for good reason Apple does not enable applications to snoop on the phone calls the user makes.

Related

Record the conversation of phone - ios [duplicate]

This question already has answers here:
Closed 10 years ago.
Possible Duplicate:
Is an iPhone Call Recorder theoretically possible?
I am an iPhone devleoper.
I want to record the conversation during phone call.
I don't know apple is allowing to do this or not.
If yes, than can anybody guide me how can i do this?
Basically In my app ,I am recording 1 audio .
Now when i call someone from my contact ,I want to play that audio as well as record the conversation.
Both play and record thing I want.
I am confused whether it is possible or not.
There is no public API for recording the calls made (or received) by the built-in Phone app.
You will have to implement your own phone calling mechanism. You'll probably want to use VoIP. (That is what Google Voice uses, for example.) You'll need to run your own server on the Internet, or contract with an existing VoIP service. You'll want to use in-app purchase to let the user buy minutes, because it costs money to run your own server or use a third-party service.
There is no public API for this. No app headed for the App Store can record phone calls made with the standard Phone app.

Does Apple approve the usage of setKeepAliveTimeout:handler methode for updating GPS location to server?

I'm writing an application that needs once in a while to update the server about the user's location while the application is running in the background. I know I can do this by using the setKeepAliveTimeout:handler: method. I know that this method is specially for VoIP application but I was wondering if Apple will allow this usage for location update to server?
The documentation says that your handler only get 10 seconds to keep the network connection alive for voip calls when using setKeepAliveTimeout:handler: method. See this answer.
This call is for voip apps and you must have voip in your UIBackgroundModes key (info.plist). Using this would probably get rejected unless you are writing a voip app.
You don't need this setKeepAliveTimeout.
I recommend to read this Apple's officatin documentation:
https://developer.apple.com/library/ios/documentation/userexperience/conceptual/LocationAwarenessPG/CoreLocation/CoreLocation.html
One of the things, which iOS provide is a callback on a location change. Your application will be awoken for short period of time and you will receive this callback and should be able to send your location to the server.
BTW. You will need location backgrounding mode for this.
And progmr is right. You will need voip backgrounding mode to use setKeepAliveTimeout. And if your application isn't a real voip application, almost guaranteed that your app will be rejected.

Programmatically initiate Conference call on IPhone

Is there a way to make a conference call programmatically on the IPhone ?
I want to be able to place a call to persons A and B, connecting both, and then dropping myself and let the two parties continue the conversation.
Is that possible ?
Not possible. An app can place a call to a single phone number, via the -openURL: method on UIApplication, but once it does that, it goes into the background and the Phone app takes over.
Also, it sounds as if you’re trying to make a prank-calling app, which is in violation of section 22.6 of the App Store Review Guidelines:
Apps that enable anonymous or prank phone calls or SMS/MMS messaging will be rejected
That type of calling you described in your question, can only happen if you are on a phone system (PBX) in a office. On a mobile phone or the phone in your house, once the party that initiated both calls hangs up, everyone is disconnected.
It's not possible with Facetime if you aren't one of the two persons. But, you would a audio conference or a video conference ?

iPhone answering machine

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).

Logging calls after hanging up on smart phones

In the various smartphone APIs/SDKs, I was wondering if it is possible to prompt a user if they'd like to log a phone call after they hang up. The most basic functionality would be after calling out or receiving a call, the phone would ask
Do you want to log the call to|from 555-555-5555?
Yes | No | Never this number
(then it might take the user to a small form and then post the info to a webservice)
The business use is for lawyers who have company phones and need to track billing.
this is a bit different question than Accessing the iPhone's Call log with the iPhone SDK.
On an Android phone you can register a PhoneStateListener to receive a notification of when a call hangs up and log the number by whatever method you wish.
Blackberries have call logging out of the box. Blackberry Enterprise Server activated units sync the log with the server.
On iPhone, no way.
Apple would have to allow (shudder) background applications.
Note: Shraptnel is right, you may be able to monitor the phone state with some private API's if you jailbroke your phone and ran your program in the background.