Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is it possible to intercept voice data during call?

I plan to develop Android application which will encrypt/decrypt voice data such that parties can communicate using secure channel. So the question is: how to intercept voice/audio data during GSM call? Is it possible or not? Should I use Android NDK or something else?

like image 325
Barmaley Avatar asked Nov 15 '10 07:11

Barmaley


3 Answers

In GSM it is not possible to encrypt the voice and send it through the voice channel due to channel characteristics. The signal sent through the voice channel has to be (similar to) human voice as vocoder (CELP) is used for channel coding.

So even if you had access to low level libraries and used it to encrypt voice to send it directly through the voice channel it would be not possible for the called party to receive and decrypt the signal.

Encrypted voice however could be sent through the data channel as data.

like image 86
Niko Gamulin Avatar answered Oct 15 '22 09:10

Niko Gamulin


This is something that happens in the low level of the operating system. You wouldn't be able to access this information in the application level.

I suggest that you look into VOIP like SipDroid. I bet you'll be able to set it up to use encryption easily. (srtp instead of rtp)

Even if you SipDroid doesn't support this, it's is open source so you could add this feature.

like image 30
Emmanuel Avatar answered Oct 15 '22 09:10

Emmanuel


Call recording is not yet possible on Android. See this feature request.

You can record your voice from microphone, but you can not record the sound of the other party. If you only want to record your voice use android.media.MediaRecorder.AudioSource.MIC

like image 39
Peter Knego Avatar answered Oct 15 '22 08:10

Peter Knego