I wanted to know one more thing, we are currently thinking of working on ivr system based on gsm module. I wanted to know who I can read the numbers typed in the dial pad of the mobile phone. Which pin in the sim800c should we use to get that data?
The fastest way I could imagine is to plug the speaker pins (SPK- and SPK+) on to a DTMF processing chip (there are readily available modules in the market), then connect this chip to an Arduino or other microcontroller to receive the output of this chip.
Is there any other option except for this?
It’s not really convenient to make a DTMF decoder from scratch, neither in cost or time. And you need some extra circuitry anyways, since audio oscillates between positive and negative values, and an Arduino on probably any other MCU that you are using is unable to work with negative voltages, does not have the speed to reliably process analog signals at usual human-audible frequencies (you might only get up to hundreds of Hz at most), and probably some other issue I’m not accounting for.
Check videos like this: https://www.youtube.com/watch?v=wEDXaV-Qf-0, you can see that it is extremely easy to use one of such premade modules, and it probably would be cheaper to buy them instead of doing it yourself.
On another note, a Non-Embedded Advice, you could use a PC and process the DTMF by software (haven’t used it but check something like http://www.polar-electric.com/DTMF/Index.html). You’ll have to make shure to protect the microphone/line-in port, but is the only thing that would probably save you from using a dedicated DTMF chip decoder. Alas, it is still more expensive since you have to keep a PC available at all times while the system is working.
Thanks a lot. It was very informative and helpful.