Archive for July, 2009

Why the iPhone is better (and worse) than BlackBerry

July 17th, 2009 1 comment

Last post I said that I wasn't a telecommunications engineer.  True enough, but I know a man who is!  My brother-in-law Dan Lipsit provided some insight in the the root cause of my troubles…

He suspects that my Blackberry worked simply because of its lack of maturity…

It “stupidly” (but as instructed) waits the pause delay time and then sends the DTMF. Unfortunately the iPhone, and many more wireless phones, do not start the delay timer until AFTER the connection is made because they’re “smart”. This is actually an improvement because the time from dial to connect can vary greatly. As an example a delay time that is fine for, say, AT&T here in South Florida might be completely useless when roaming because it starts the DTMF string too soon (e.g. the connect takes 7 sec. while roaming instead of the 2 sec. at home).


Therefore, since the Sprint network is BROKE [Dan's emphasis] (they don't send the "connect" message) the iPhone is patiently waiting while the "dumb" RIM just sends the DTMF hoping it was timed right (which it was).

On most phones one could program "wait" in the number string ("w" instead of ",") and the handset waited for the user to send the DTMF string by pressing a button on the phone (or, if I remember correctly, could be triggered by a tone from the dialed number – sprint does this on their 800-877-8000 number). Unfortunately there is nowhere in the iPhone UI to do this.


SO…the conclusion is

1) the RIM device worked because it was behind the times

2) Sprint is too dumb to send the "connect" message back to wireless phones

3) the iPhone is too smart for it's own good and not good at waiting (like a teenager)


There goes Steve Jobs telling all of us what we need and when we need it again

Thanks Dan.  As an engineer myself, sometimes knowing why something doesn't work is almost as good as the thing actually working.  But not quite.

Posted via email from nickjhowe’s posterous

Categories: Technology Tags: , , ,

#Sprint International Calling Cards don’t work with AT&T #iPhones

July 14th, 2009 6 comments

Sprint-ATT-SadA 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.


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”

The cause is found

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.

Posted via email from nickjhowe’s posterous