#Sprint International Calling Cards don’t work with AT&T #iPhones
A short story of how troubleshooting a problem with my iPhone led to a discovery of small print in the Sprint calling card terms and conditions and a realization that sometimes BlackBerry really is better than iPhone. (But there’s no way I’ll go back to the BlackBerry. Overall the iPhone is sooooo much better).
The bottom line
Do not waste your time programming your iPhone to dial using your Sprint FONCARD Calling Card. It won’t work.
For the technical among you: The Sprint Corporate Access numbers for calling cards (800) 877 8000 and (800) 366 2255 interact with the iPhone and the AT&T network in such a way that the iPhone does not recognize call connect and will not send additional DTMF tones until it is too late. So don’t even try to program your iPhone to dial all those calling card numbers; manually keying them during the call is the only way to make it work. [Jump to here to see the cause of the problem]
The background
Here is the long version (not exactly technically correct, but close enough. I’m not a telecommunications engineer)
At Hitachi Data Systems we’ve been long term customers of Sprint for their international corporate calling cards. If we are in the US and want to dial internationally, or are travelling abroad and want to call back to the US (or another country) we can use the Sprint cards to reduce the cost.
To dial internationally we call one of the local access numbers, enter the international number we want to dial, enter our calling card number and the call is routed through the Sprint network at a preferential rate. This approach makes use of a feature called DTMF (Dual-tone Multi-frequency), which has been around since the 1960’s. The computer at Sprint recognizes the additional digits as extra instructions (in this case the international number and the calling card number). The same approach is used with the automated response systems at call centers that we all hate.
The benefit is that calls are cheaper. The ‘cost’ is that we end up dialing a lot of numbers. The access number is ten digits. The calling card number is 14 digits. International numbers are approximately 14 digits. So we are looking at 38 digits. This ‘cost’ is made worse by the need to remember all the numbers when dialing. Not too bad (though a pain) when at home because you can write all the numbers of a piece of paper or read them from the PC as you dial them. When travelling it becomes more problematic, and trying to dial 38 digits in a car (where legal!) is almost impossible.
Wouldn’t it be great therefore, if you could just program you phone with all the digits and have it take care of everything for you? Absolutely. And there is a way to do it. You can just append the DTMF digits you want to dial to the end of the regular phone number and you are good to go. You can save the numbers in your contacts so you can even use iPhone voice dialing. The only thing you need to do is to program the phone so that it knows where the phone number ends and the DTMF tones start. When dialing manually we can just listen for the phone to be connected, then start dialing the extra digits. Unfortunately when you program the phone to do all this work for you generally there is no way for the phone to just wait until the correct time and then start sending the extra digits.
The workaround is the build a ‘pause’ into the dialing string to tell the phone to wait an appropriate length of time and then send the extra tone. So, in Sprint’s case the sequence is:
1. Dial the access number
2. When connected wait a couple of seconds
3. Dial the international number
4. Wait 4 seconds
5. Dial the calling card number
6. All done. The target number should start to ring.
The pauses are entered using a comma in the dial string. Usually a comma is equivalent to a two second pause. For example “8003662255,01442071231234,,12345678901234” would dial the access number (8003662255) wait two seconds (,) dial the international number (01442071231234) wait four seconds (,,) and finally dial the calling card number (12345678901234).
For several years as an owner of multiple BlackBerries I’d been using this approach. It worked great. Three weeks ago I made the switch from BlackBerry 8800 to a sparkly new iPhone 3GS. I already had the dialing strings attached to my Outlook contacts, so all I had to do was sync the contacts to the phone and I could carry on as before.
The problem
None of the Sprint calling card numbers worked on the iPhone, or rather the iPhone dialed the access number fine but never sent any other numbers. The wait (item 2 above) went on forever. I tried both access numbers without joy. When I dialed everything manually it worked fine, but the programmed number failed every time. I assumed (possibly incorrectly as it turned out) that the iPhone had a bug that was stopping it sending tones.
Troubleshooting
An hour on the phone with initially Apple, then AT&T and finally Sprint found the cause, but unfortunately not the solution. (Big shout out to Craig at Apple support for helping with this case (#130137089). He was a trooper and really did a fantastic job of helping me troubleshoot the problem).
The sequence was:
1. Talk to Apple first line support.
2. Nice guy, but he had no idea what I was talking about. “You can put a pause in a phone number? Never heard of it”
3. He passed me on to a product specialist (Craig)
4. Craig was initially a bit confused by my problem, but started doing some digging.
5. After about 45 minutes we figured out that if we dialed a different number (instead of the Sprint Access Numbers) both mine and his iPhones would send the tones automatically. If we dialed the Sprint numbers neither phone would send the tones.
6. Craig went off to contact AT&T network support to see if there was something strange about the Sprint phone numbers.
7. While I was on hold I did some further troubleshooting and discovered the problem (see below)
8. Eventually Craig came back on the line and said that no, there was nothing AT&T could see was wrong with the Sprint numbers, but since it was a calling card “there might be something strange”
What did I discover? That when the Sprint call ‘connected’ (i.e., I could hear the automated voice asking me to enter the phone number I wanted to access), the iPhone did not know the call was connected. When a call is connected on an iPhone (or any one) you can usually see a timer start to show you call duration. On the iPhone the timer did not start.
I let the Sprint automated voice drone on, complaining that I wasn’t entering any numbers. Eventually (about 30 seconds) the automated voice gave up, told me an error number and sounded like it was ending the call.
At this point the iPhone started the timer. It finally thought the call was connected and – low and behold – started sending the tones. Unfortunately this was 30 seconds too late and the Sprint system had given up listening for the tones.
It seems that handsets react in different ways to calling card access numbers such as the ones I’m trying to call. Some connect immediately and work correctly. Some, like the iPhone, don’t recognize that the call is connected until all the additional numbers have been manually dialed and the target international phone number starts ringing.
Can Apple fix it?
At this point, I thanked Craig for his help. There was nothing more that he can do, and there is no acknowledgement that this is an iPhone issue per se. There is so much flexibility in telecommunications standards to it seems like a miracle to me that phones ever talk to each other. My brother-in-law Dan Lipsit and his cousin Jimmy have built a nice business testing handset and accessory compatibility due to problems in those standards.
Maybe it is an iPhone problem and Apple will fix things in the 3.1 software update that is due out sometime soon. Who knows.
And so to Sprint
The real kicker came from Sprint. ‘Kendra’ at Sprint customer service (a charming lady who belongs to the ‘sorry, but no’ line of customer service agents) listened patiently to my description of the problem and without a pause dropped this gem from the Sprint Corporate Calling Card terms and conditions: “we do not guarantee that calling cards will work with mobile phones”. That’s it. Then end. C’est la vie. If you are on a cell phone then Sprint doesn’t want to know. The calling card might work, it might not. But don’t try to ask them for help ‘cause they ain’t gonna give it. The conspiracy theorists among you could say this is Sprint getting back at AT&T. All I know is that I’m going to be dialing a lot more digits from now on.
Great article. I had an iPhone once and couldn’t work out why the commas didn’t work. Didn’t take the exploration as far as you did. The Blackberry handles things so much better for ‘pause’ and ‘wait’.
Apple should provide a fix next iPhone release. No telecom contract guarantees any servie 100%, at best you get 5 nines. Ever try a calling card (any carrier) from Manus Brazil?
The iPhone is nice but isnt a business device…
Its all data packets, forget about DTMF dude.
Very informative. I struggled for the exact same reason and was determined to get to the root of problem by calling customer service. You save couple of hours of my time by clarifying this.
Fantastico. This issue is not only with iPhone. It is also with SIP / VOIP telephony like sipgate, Gizmo or Google Voice. That’s what I was researching for and hit upon this link. As you have said in your July 17th post “As an engineer myself, sometimes knowing why something doesn’t work is almost as good as the thing actually working. But not quite” 🙂
Thanks.
Fascinating! I’m so grateful to have found this article. I was having the exact same problem. Your review really helped. Just like you said, the iPhone never recognized that the call had started! But, guess what? I’m using an AT&T calling card…so I imagine the problem is with the phone rather than the calling cards.
It makes sense to me that the iPhone may have been “over engineered”. I think it’s so intelligent that it waits for the phone call to be connected before implementing the pause programming in the number. I’ve had other mobile phones that would simply start dialing the additional numbers after the pause regardless to whether the phone call was connected. That happened frequently enough that I would even program two pauses in every number as a contingency.
Well, at least my calling card access allows audio response, so I can just speak the number when the call connects. Of course, I have to navigate back to the contacts and dig for the number before I can continue. Guess I have to get fast at navigating back to the access number.
Thanks again for digging so deep into this issue and providing such a well written explanation.
I had the exact problem, but I have an AT&T card. Today I found out I can call the 1-800-225-5288 (1800-CALLATT) to place a calling card call.
This number DOES get recognized on answer so if you set up your number to dial this number then a 1 for option 1, then the number you are calling, then your calling card number it will work.
AT&T prefers this number not be used to make calling card calls but until they can fix this issue with the other number I use then I intend to do it this way.