Connecting an Arduino to a telephone line? I would like to connect my Arduino Uno to a telephone line in order to answer a call, record a sequence of DTMF tones, generate a DTMF tone in response, and hang up.

The telephone line uses a standard RJ11 connector. When a touch-tone phone is connected to the line, it receives one of two rings:


a standard ring, which signals an incoming call
a shorter "two-ring" sequence which signals a call from a local intercom


I would like my Arduino to listen for the "two-ring" sequence and only answer those calls.

How would I go about connecting my Arduino to the telephone line? Is there a shield designed for this purpose? I know I can use the tone() function to generate the DTMF tones, but I'm assuming I would need to perform some form of Discrete Fourier transformation in order to "read" the DMTF tones from the other end of the line.

Any suggestions would be appreciated.
You can interface arduino to telephone line using MT8870D chip. This IC can decode DTMF tones. Below is a reference schematic from the datasheet.



Another popular design floating on the internet is below:



There are pre-build modules available from futurelec :



You can use Holtek HT9200 IC to encode DTMF that can be interfaced with Arduino. Below is the reference schematic from its datasheet.