Maybe this is not a common thing for folks to do with their phones these days, but I have a few numbers programmed into my contacts that include access codes, or similar, to be dialed after the main number. Some of them are conference service access sequences, one is a calling card from my home VoIP provider (CallCentric) that lets me make international calls at VoIP rates (a fraction of what AT&T would charge me if I just dialed direct from the phone) and one connects me to my mother’s SIP line in the UK via a service called SIP Broker, giving me free calls to her even when I am on my mobile phone here.
While I certainly could remember all the access codes, PINs and even my mother’s SIP number, it is much simpler to just program them into contacts so they are dialed automatically. This has worked beautifully on all my iPhones to date and even on my Android phones. Until iOS 10. When I first upgraded my iPhone 6s to iOS 10 GM, I noticed that the tone replay was much faster. I also noticed that SIP Broker was having trouble understanding it sometimes (I would estimate around 25% of the time). When the iPhone 7 arrived though, that failure rate jumped to 100%. I could not get these numbers to dial at all unless I did it manually.
I believe the tones are long enough on iOS 10, but I suspect the gaps between them are too short. That is somewhat confirmed by the fact that adding a pause between each digit allowed it to work (but it took nearly 30 seconds to dial the number!).
Analyzing the Tones
Since the tone replay is audible, I fired up Audacity on my Mac and simply recorded three phones replaying the tones to access the CallCentric test number via a local SIP Broker PSTN gateway:
(415) 594 0355,*462,17770000001
On the iPhone 7 (running iOS 10.0.2), the trace looked like this:
You can see from there that the gap between the tones is very, very short. In fact, just 5-10ms compared to a tone time of around 200ms. This reinforces the belief that it is the gap that is the problem.
For comparison, here is iOS 9 running on an iPhone 5c:
This one has slightly longer tone periods (about 250ms), but the gaps are much, much longer at around 100ms. That is 10x the length of the gaps on the iPhone 7.
Finally, I tried my Nexus 5X running Android 7 to see whether they’d had the same idea of reducing the gaps, but no, the Nexus has both longer tones (over 300ms of tone) and longer gaps (around 150ms):
What Does the Spec Say?
So, there was always a chance that this is something that an engineer at Apple, for whatever reason, decided they could adjust to make their tone replay feature more compliant with a standard specification. Indeed, there is a specification for DTMF (pdf) from the European Telecommunications Standards Institute (ETSI). In that specification there are defined minimum durations for both the tone and the pause between tones.
The tone duration is defined like this:
Where the DTMF signalling tone duration is controlled automatically by the transmitter, the duration of any individual DTMF tone combination sent shall not be less than 65 ms. The time shall be measured from the time when the tone reaches 90 % of its steady-state value, until it has dropped to 90 % of its steady-state value.
The pause duration is defined like this:
Where the DTMF signalling pause duration is controlled automatically by the transmitter the duration of the pause between any individual DTMF tone combination shall not be less than 65 ms. The time shall be measured from the time when the tone has dropped to 10 % of its steady-state value, until it has risen to 10 % of its steady-state value.
So, that iPhone 7 time, looks to me to be well below the minimum pause time!
Have the same problem. Apple completely ruined the ability to store these sequences. Even entering them manually is problematic and pressing a single digit does not always yield a constant tone. I don’t understand why apple felt any need to make such a change, but now I know why AT&T and Verizon are giving the iPhone 7 away for free with a trade in.
Excellent analysis…………I’ve had the same problem on all my Iphone’s 4,5 & 6
that DTMF is usually unrecognized when I go into a Conference call. It’s
obvious that iphone is NOT in spec (the pause is too short and there is too
much distortion in the DTMF tone). Also when you go into Conference call, the 2nd line in conference will create an additional load on the line, which will in effect cut
the DTMF tone level in half & increase distortion. HENCE Apple needs to FIX this !!
At our company all iPhones that have ios version 10.1.1 have the issue, iphones with ios 8.1.2 to 9.3.2 have no problem. This is absolutely ridiculous.
I guess Apple is going to go after the consumer market with iOS just like they did with the Mac platform. Perhaps there is hope for Blackberry after all.
I just had to call the Gas Company in Philadephia – Impossible to navigate the voice menu with the I phone 6s Plus using. I am using iOS 10.2.1.
The beeps from i phone were not recognized. Had to find a land line to call from – ridiculous.
After about 6 months of using the iPhone 7, I have my eye on the blackberry KEYone which is supposed to launch in April. I’ve never used a blackberry before and the only smartphones I’ve ever owned have been iPhones. I have a nice collection of iOS apps that I’ll have to leave behind but the core functionality of the phone just isn’t there anymore.
I work in telecommunications installing PBX systems. We’ve ran into this issue as well with iPhones on version 10.x. A solution I’ve came across is to increase the decibels on the lines for the PBX. Basically increasing the receiving volume for the system. This has solved issues with iPhone users navigating thru voicemail menus. Obviously this isn’t a setting you can do on your iPhone (at least not that i’m aware of) and will require changes on the calling system your calling into. Hope this helps!