I m planning to create a centrex system app in android. In which there is a voice mail will set in the receiver side. By the instructions in the voice mail, caller has to press the number in the dial pad, receiver side should identify the number and do the corresponding actions. Does anyone have any idea about how to detect the number pressed by the caller in receiver side?,
What is the technology behind it?,
Is it possible in android?
Any help will be appreciable..
解决方案Does anyone have any idea about how to detect the number pressed by the caller in receiver side?
You need a DTMF detector/decoder. It is a fairly well researched topic, you can Google it. Imperfect implementations are easy to do (for example, 8 Goertzel filters) and work for most cases. Standard-level quality implementations are much harder, but you don't really need those.
What is the technology behind it?
Multi-tone detection. It is an interesting subject to explore. Even modern data transfer, like, ADSL builds on it (much more advanced than DTMF, though). But, for your purpose, a simple "filter bank" should do.
Is it possible in android?
Of course, you just need to get your audio data (samples) and feed them to your detector. How you get your samples depends on how you get your voice. In Java, you would probably use MediaRecorder API, and MediaRecorder.AudioSource.VOICE_CALL to identify you want audio from a call, rather than the MIC(rophone).