Calling number with iPhone on External Signal - ios

What I am trying to accomplish is to make ios app that listens to signal (not yet defined in which form) and then call the number specified in received message. I've found that is impossible when app is in background due to Apple privacy policy, but I want it to be possible only when in foreground.
I am wondering if it is possible to develop similar mechanism like when you connect iPhone to MAC so you can call using your MAC. But I want to use this funcionality from Windows too.
For example. Lets say that I have Windows app written in Java that stores contacts. I click call and the number is send to iPhone (like I said using not specified yet method) and then iPhone calls that number.
Is there any possibility to accomplish this. If yes, what the best way to send and receive message with number (for example bluetooth ).

Related

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

Saving resource on shared framework

I'm making a framework for iOS that collect data from the phone (GPS, WiFi, etc) and sends to a server and notifies the user on events.
My problem is that if two or more apps use the framework on the same device it will consume the battery and I only need to send the data from one app because the collection continues in the background.
Is there any way to know if these multiple apps are running and notify the app that other app is collection and sending the data?
No. The apps are sandboxed and cannot interact.
The framework will have no way of communicating with the other apps unless it sets-up some sort of networking on the client (not advised).
I wouldn't worry about it.
I'll probably look the problem inside out. When I start receiving info on the server from same ip/mac combination simultaneously I'll return a flag to all but one client on that particular device. When my framework receive that kind of flag, it will stop sending data, because someone else is already doing the same.
PS Your framework sounds like creepy spy thing though :)

Detecting outgoing emergency call vs Developing custom dialer app

My goal is to listen only and not modify the outgoing call event and send GPS coordinates to server from background. I'm not even interested in phone number being dialed, what I only need to know is whether the current call is Emergency call.
I've accomplished this easily in android, by following this tutorial.
However some googling showed that, this is a big pain in the ios world.
The only solution I think is to write dialer app from scratch and manage all the events by myself (if that's even possible), but I think it's too overcomplicated
I'm completely new to ios and please let me know, how would you solve this problem guys?
There is no way this will be possible on iOS unless you were planning to release and app for jailbroken phones (and even then I'm not sure it is). The Core Telphony framework has the methods you can use: https://developer.apple.com/library/ios/documentation/NetworkingInternet/Reference/CoreTelephonyFrameworkReference/index.html

iOS using sockets to talk to other apps

Is it possible to have 2 apps on 1 iPhone/iPad talk to another via sockets? For example The main app is phonegap app that just displays data and when the user clicks the print button, the 1st app sends data to the 2nd (2nd app stays in the background, I guess it is a service), it (the 2nd app) then sends that data to a printer that it knows how to talk to whether that is via a webservice call or something else.
From my scan of the docs and other questions it seems the custom URL is one way to make the apps talk, but I want the receiver app to stay in the background. So do I have to use a server/client approach to this? Is that possible.
Sure you can. Just make sure your 2nd app - the background app is conformed to Apple's requirement to run in background modes. You can also use Bonjour to aid in discovery or just pre-selected a port and make other apps aware of it value.
No, there is no socket-based interprocess communication between apps on an iPhone, nor is there any concept of apps as background services. Using custom URLs to launch another app is the only direct method of communication between apps.
On the other hand, if the 2nd app is talking to a printer (or anything else) via a web service, I'm not sure why you wouldn't just have the 1st app use that web service to print directly. Is there a particular reason you need a background app to perform this function?

IPhone SDK handling calls

Is there any way to handle call events in iPhone? i.e. Log calls and sms in my app, block unwanted numbers, etc. I know the iPhone SDK doesn't provide that but I have been googling this and what I got was an app called iBlackList. Although it runs on jail-broken phones but it does my required functionality. I wonder how? Has anyone idea about how these tasks can be accomplished?
You can do that through private APIs. (Which means that such application will never make it to the AppStore.)

Resources