iOS: Intercept certain numbers when dialed and start own app - ios

Usecase:
my hotline has phone number 0815/111222333
user starts up dialer and dials that number
instead of calling my app starts up to offer him
service.
I did it on Android, though I am pretty sure this won't be allowed in iOS.
But I didn't find that explicit statement. I am just looking for confirmation.

It is most likely not possible on iOS. Event if it was I noted that there is a patent on this.

Related

Spoof calling SDK for native iOS

Hello is there any API or SDK available for spoof call function in iOS ? As I need functionality where dialer add his own number and receiver number. The receiver will receive call from those number which added by the dialer (spoof number/ any number).
Please help if someone knows.
On iOS it's impossible to set the caller ID of a mobile call.
The only way to make a phone call from code is to open a tel://<number-you-want-to-call> URL. iOS will then take over and will open the native Phone app. Of course the SIM card's caller ID will be shown to the callee; there's no way to influence that (apart from hiding it, if your operator allows that).
If you wish to set another caller ID, you need to create a VoIP app and you need a VoIP backend that terminates the call on the telephone network.

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

Make a telephone call and send different DTMF tones during the call in iOS

Is it possible to call a phone number programmatically in iOS and send different DTMF tones during the call?.
Basically I want an App to handle the IVR call. I don't know anything about iOS programming. I just want to know the feasibility so that I will put further effort.
Thanks
You cannot do this interactively within the bounds of the iOS SDK (ie, in an App Store app).
You can, however, build a tel URL. See the Apple documentation on phone links for more details if you think this will work for your needs.

Is it possible to redirect a call?

My client is providing an international / long distance call service at cheap price to people if they make such calls via his company (Yes. It's like an international phone card)
The following is what my client wants to make.
Let's assume I have bunch of international / long distance / local phone numbers to call stored on my iPhone. If I tap one of the local phone numbers, iOS just lets me directly call the number. Not a problem. However, if it's an international or long distance number, iOS makes a call to the company instead so that the user can use the service at cheaper price.
Of course, this should happen only in the application. I'm not trying to tweak how iOS works by default.
I wonder if it's technically possible on iOS.
Update
I just came up with an idea that popping up a msg box if the tapped number is an international / long distance number before the following msg box by iPhone pops up.
Yup. before this one.
Can I show my custom msg box before the deafult one?
It sounds technically possible. The user can grant access to the contacts to the app which would allow the app to read names and phone numbers. The app could analyze the numbers and determine which ones are international and dial a LD service instead.
I would think that as long as the app is being completely clear to the user which service is being called and charges that may be incurred, I would think Apple would be okay with that.
The only other rule might be if the app looks too much like the built-in phone app or if it is determined the the functionality is redundant to the phone app. Good luck, Apple policy is sometimes a bit mysterious.
As for the alert, you can show any message, or even none at all.

Twilio Voice: Tracking a user from website to twilio phone call?

I'm trying to see if this is even possible in twilio. I'm hoping maybe someone's had a similar challenge and came up with a creative solution...
Our company has a unique phone number that's only displayed on our website. I've been asked if it's possible to find out not only how many calls we're getting (which is simple enough to track in twilio), but also who's calling. Basically, they want to follow the details of a users activity. From website to phone call.
Theoretically, they'd like something like this:
A user, lets call him John, comes to the website & is assigned a unique id of "12345". The id is stored in a cookie for returning users (this I can already handle).
If John calls the phone number displayed on the website, we...somehow through the use of twilio...know it's user #12345.
We can then create monthly reports stating user #12345 called the phone number 7 times this month for a total of 18 minutes.
There's so many "what if's" that go into this, that I'm just not sure it's even possible, but perhaps someone knows of a creative way this can work? A few things I've considered, but none of them are foolproof:
Tracking a combination of John's geographical location while browsing the website and the time of web browsing, then using twilio voice to track the geographical location & time of the phone call, to make a best guess. The problem is it sounds like twilio voice isn't always great at providing geo location.
Tracking mobile click to calls on the website, then matching the time of the click to the time of the phone call. Several problems with this, including multiple users calling at the same time, and we'd only be tracking those who browsed the website via mobile, then clicked to call.
For mobile click to call, passing the user's id via a phone extension, which twilio then reads (not sure if this is even possible in twilio). But again, this would be limited to mobile users.
So, I'm just not sure if this is even possible. Any idea's on how this could be implemented?
Thanks so much for any help.
Twilio developer evangelist here.
Have you considered making it possible to make the calls through the website itself? If you implemented Twilio Client you would be able to directly track users who called from the website and they'd be able to do so without picking up the phone too. That direct connection would allow you to make the calls more personal too, as you'd know exactly which user was calling.
Check out the tutorial on implementing browser calls in Twilio and let me know what you think.
I can't think of any straightforward ways to connect a user's browsing session to a phone call made with a different device though. You could ask the user to input their ID in order to start the call, using <Gather> to receive the input and tie that call to the user and whether they currently have a live session on the site. That might be an unnecessary barrier to people calling though, so you'd have to weigh up that option.

Resources