I've been doing some research into the feasibility of this project, but I'm not sure if there's a simpler approach.
I'd like to create a system where the arduino can answer a call, 'listen' for DTMF tones and issue a 'reply' by generating DTMF tones. I don't need to communicate any voice message through the phones or add any additional functionality beyond what I just described.
It is possible to decode the tones in software, but the program may be too big to fit in a Atmeg328 based arduino
E.g.
It may also be possible to do this using the FFT code, but dedicated detection code is normally more accurate
Generation of the tones should also be possible. The cheats way is to electrically connect 2 pins together via resistors so that you get a mix output. This works surprisingly well, I've used the method to create polyphonic music player.
Thanks for the replies. I'm leaning towards just using a tone generator to generate the tones instead of going the software route. This might be a stupid question, but how would I interface this with the actual phone line? I don't want to generate an actual audible tone by driving a speaker, just want to transmit/receive over the phone line.
In reply #1 raschemmel provided links to chips that either generate or decode dtmf signals and that route is much easier than using software.
To connect directly to the phone line, I believe that in most countries, you are required by law to use a telephone interface module. These include a line isolation transformer and voltage spike protection circuitry. You can buy ready-made ones, or salvage them from junked modems, etc. Lots of useful information at Telephone interfacing circuits