How do you programmatically do the following from the iPhone SDK:
Programmatically Dial a Phone Number through the iPhone SDK
Bypass the dial / cancel prompt that the iPhone brings up
Send additional DTMF after the number is dialed just like how you would program pauses into a regular phone.
I know you can make a tel:// call but the issue is that it brings up the dial / cancel prompt and after that it prevents any future DTMF from being sent.
The iPhone SDK does NOT give you direct access to dial numbers (imagine if a 'bad' program got on your phone and dialed a pay per minute number on mute so you didn't notice).
However, if you use the tel link, then you should be able to send it "," characters which inserts pauses.
So to dial 555-1212, then wait 4 seconds, then do 12345# on the touch tone you would use tel:5551212,,12345#
Check out
https://developer.apple.com/library/archive/featuredarticles/iPhoneURLScheme_Reference/PhoneLinks/PhoneLinks.html
I dont know why everyone says you cant... you CAN!
NSString *phoneNumber = #"15555551212";
NSString *dtmfAfterPickup = #"1234";
NSString *telString = [NSString stringWithFormat:#"tel:%#,%#", phoneNumber, dtmfAfterPickup];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:telString]];
This will dial the phoneNumber bypassing the dial/cancel prompt... 1 second after the call is answered, the dtmfAfterPickup string will be automatically dialed.
Its a good idea to detect whether or not the device support phone calls
Per Adam's Apple developer link above, there's this RFC link that explains more about the different options for a telephone link scheme that the iPhone supports -
http://www.ietf.org/rfc/rfc2806.txt
This at least allows you to insert pauses with a 'p' in the URL, but plenty of the options are specified (but not all are required) per the RFC. What else works?
I tried with my iPhone using CoronaSDK and openurl API.
It works very well!
Just do: system.openURL("tel:[phonenumber],123").
You can wait more with additinal commas.
Tested with Corona SDK / iOS7.
Actually, I just tried the following 555-555-4822 EXT 8030
And it does seem to transmit some tones even after pressing dial (the number of p's represents the number of seconds delay). However, the tones are not being responded to on the far end as expected, so something is still amiss.
This does work, however, though it's a little more prone to timing problems tel: 555-555-4822, 8030. This just pauses for one second (,, would be two seconds) after connection, and then plays the 8030 tones
You can't do this. The SDK does not allow you control the phone function in this level of detail.
Related
In phone.app (iOS Native calling app), Is there any mean by which I can perform task like
1.Identify the caller (Incoming and Outgoing), so that on the behalf of caller I can perform some task.
2.Recording of call.
3.If some audio recording already in running state then how a call record can be handled.?
In my finding a reached at below outcome
1. CTCallCenter class have the information about call but i don't get phone number.
2. Call recording is not possible as there is no Apple API to do so.There are some apps on app store but they are not capable to record the call from phone.app. I think they are recording the call by their server (3 Way call.)
3. I think it will lead towards a crash as phone call is a high priority task so that the control of mic and speaker is given to phone call.
Is there any way to get expected result ? Is it possible with call kit.?
Thanks.
Unfortunately, what you're asking for is not possible as far as I know. Your app can be aware of incoming calls and their states, but not access the phone number. Using the CallKit APIs introduced in iOS 10, you can provide a label for an incoming phone number, but even then you have to set up a predefined list of numbers and labels. Your app won't know which number called. See "Identifying Incoming Callers" in the documentation and this SO question.
As for recording calls, there are no ways to do this without introducing a third party to the call, or routing the call to a service you control.
Regards,
Martin
i'm using Sinch iOS SDK to call from app-to-phone.
i'm testing it by dialing to another mobile i have and when I let it ring some of the calls play the dial ringing tone and some don't. I can't reproduce a pattern that causes this.
Any ideas?
Its actually depends on what carrier you are calling, if you log on callProgressing you will notice that the onprogressing wont fire sometimes until much later for the ones that play no ringing (AT&T is one that dont playit).
To give the user some feedback while waiting for progress, you can play a local ringback (you can find that file in our sample apps) until you get callProgress.
Hi i have tried for bundle of times and find out that iOS SDK does not give us access due to security reasons for getting following data;
Intercept an incoming call (Getting phone number from incoming call)
Read Call history
Intercept SMS (Getting phone number from incoming SMS and reading its contents)
Block an incoming call
etc
Here are some of the links resulting from my search about this issue:-
How can I get the callers phone number from an incoming call on iphone
http://iosstuff.wordpress.com/2011/08/19/accessing-iphone-call-history/
Programmatically get the number of the incoming call
Can I fetch details of the incoming call phone number in my applicaton?
Hook into incoming call?
handling an incoming call through an app in iphone xcode
Identify number of incoming call in iPhone
I also found that CoreTelephony CTCall object provide us only limited info, Just call state and its unique Id. But nothing else we can get by using CoreTelephony framework.
But, I have seen one application on app store that does gets incoming call phone number.
I wonder how this app
Callinize iPone App
works and gets incoming call info?
I also want the same thing to do with my app. But i did't find such a way to do. Please help if you can.
Thanks!
I'm late to the party here, but I was just reading the description of Callinize. They built an integration with the Asterix pbx system and it only works with Asterix. So this app does not really access iOS phone calls.
I know I can call out Phone App in iPhone & dial a phone number by:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:#"tel:12345678"]];
However, is there any way to call out Phone App & fill in a phone number only (no need to dial the number)?
It doesn't appear so, according to the official docs at http://developer.apple.com/library/ios/ipad/#featuredarticles/iPhoneURLScheme_Reference/Introduction/Introduction.html
Sorry.
If you're trying to predial (eg for a calling card) then you could get input from the user, prepend your number, then call the tel URL in one feel swoop. Is that the sort of thing you're trying to accomplish?
I am creating an 0800 diverting app which allows the user to use his/her monthly credit to phone an 0800 number diversion service rather than pay extra by dialling in the 0800 number directly to the native phone app. Basically XCode will take the 0800 number from a label and will phone the conversion number (01212842800) then straight after, it will dial in to the keypad (on the same call), the 0800 number from the label.
If you know what I mean, how would I do this please?
See this question on SO: Programmatically Dial a Phone number and pass DTMF using the iPhone SDK
It appears that you cannot dial a number programmatically, but you can achieve what you're trying to do by using ","s in the number that you call.
EX:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:#"tel:01212842800,,,,,,,,,NUMBER_HERE"]];
With the commas acting as pauses.