The invention of the transistor ushered in a lot of technologies that we now take for granted, and one of the less-thought-about areas that it improved living conditions worldwide was by making the touch-tone phone possible. No longer would the world have to fuss with dials to make phone calls, they could simply push some buttons. This technology is still in use today, and it is possible to build external phone dialers that use these tones to make phone calls, as [SunFounder] demonstrates with his latest project.
The tones that a phone makes when a button is pressed correlate with specific frequencies for each number. Automatic dialers like this one help when there are multiple carriers (like different long-distance carriers, for example) where different prefixes can be used to make calls cheaper depending on the destination of the call. A preprogrammed dialer can take all of this complication out of making phone calls. [SunFounder] is able to make a simple dialer from scratch, using an Arduino, its “tone” library, and a speaker that is simply held up to the phone that the call will be placed on.
[SunFounder] points out that he built this more because he’s interested in the inner workings of phones, and not because he needed a purpose-built dialer. It’s a good demonstration of how phones continue to use DTMF though, and how easy it is to interface with such a system. It might also suit a beginner as an introduction to the world of phreaking.
Am I right that this can be used to build something like docking station for a phone so that for example elderly or visually impaired users can use it? For example something with huge tactile number buttons + dedicated buttons with family member photos for quick calls? If it is true than it could be really useful.
For a landline, yes. Mobiles, no.
reminds me of blue boxing on payphones for … research purposes
heheh it is good to see a new generation going at it with new tools.
Such research must have been Phreaking good!
Decoding/encoding DTMF can be done using venerable chips such as the MT8870 dedicated part or an array of the NE565 PLL parts (I’m working from memory here, so go easy on me).
Today, I see micro-controllers and programmable-logic IP that do all sorts of DTMF stuff (generation and/or detection), mostly using Digital Signal Processing (DSP).
A decent (and still common) DSP approach to DTMF is the Goertzel algorithm:
https://en.wikipedia.org/wiki/Goertzel_algorithm
An advantage to doing DTMF in DSP is that it scales, which is important when you’re building a traditional PSTN analog telephone switch with many subscriber lines.
https://en.wikipedia.org/wiki/Public_switched_telephone_network
There’s a good chance your modern micro-controller and/or CPLD/FPGA manufacturer has a Goertzel-like algorithm library or IP add-in to handle DTMF which will be optimized for your particular hardware.
But in-practice, since analog PSTN subscriber lines are a “legacy” service today. You’ll most likely encounter one interface for each subscriber with a dated DTMF handler chip on each interface. The chips will likely be proprietary from the days when many millions of them were made for traditional analog public telephone switches.
I seem to remember there were real reasons why the particular DTMF frequencies were selected from a signal processing stand-point (maybe differentiation by average zero-crossings or something? Maybe shiftin intermodulation products outside the working bandwidth?) Unfortunately, I can’t find a reference about this interesting subject in a quick Web search right now. Maybe someone else can educate us…
On the general subject of understanding how the POTS phone system worked, I remember building a phone line simulator so that I could use a fax machine as a printer. I didn’t have to create DTMF tones as it was a point to point connection. It did, though, require the correct voltage levels and a good dial tone. I think the chip used to generate the dial tone was a UTC2410. That, plus a 24vdc power supply and a couple of capacitors did the job. Simpler days……but hacking is much more fun nowadays given the sheer scope of what can be done with minimal resources and how easy it is to get the necessary information.
my trick was to use a fax machine as a scanner. but i cheated by using 2 real phone lines in the same house. fax → terminal program w/ fax receive, saved to gif. and then the gifs were shared to friends on a local bbs. there wasn’t enough allowance for buying a handheld image scanner back in 1994.
“Automatic dialers like this one help when there are multiple carriers (like different long-distance carriers, for example) where different prefixes can be used to make calls cheaper depending on the destination of the call.”
Remember having an old Panasonic that had that feature. Used something pre-cloud to do the rates thing.
For many years I used my modem to dial my phone. When I no longer used dial-up I changed my software to play prerecorded DTMF tones through the speaker. I just hold the phone to the speaker and it dials.
I wrote a piece of Windows software many years ago to do this. Released it as freeware, a few people even used it.