Reputation: 105
Is it possible to catch voice audio stream with java (JME or Android), custom encrypt it and then send it as regular stream via regular GSM call? And off course decrypt cipher on other phone. Is application level java permitted to intercept audio stream or it is disabled on hardware level?
Are there already apps that do that?
Upvotes: 9
Views: 5339
Reputation: 11
Encode analog voice at speaker/MIC site is more practical. Or, you have to root Android to modify phone.APP. Just like AECall. It encrypt and decrypt headset. http://mrhyper.blogspot.tw/2015/12/iphone-encrypt-phone-call_9.html
Upvotes: 1
Reputation: 183
The GSM full rate speech codec operates at 13 kbits/s and uses a Regular Pulse Excited (RPE) codec - This means that the microphone and speech detection in GSM is optimised for transmission across a Time Division Multiplexed 'digital' channel that is then modulated across the air interface using GMSK, a continuous-phase frequency-shift keying modulation scheme.
Noises other than the 'average' speech pattern are heavily distorted (or suppressed) - For instance DTMF (tones) are not well received on a device, and must be transmitted by the network core, but tones designed for the hearing impaired work well. Voice is shaped (filtered) on entry to the codec (microphone design) for best codec detection and reproduction at the other end.
In summary - It is not possible to 're-modulate' across the GSM system, because the entry point is not a radio (air interface), or even access the GSM digital frame. Your only access for a voice call is the GSM codec which is expecting a voice in a confined audio spectrum.
However - If you can create a voice like waveform for the GSM codec, then you may have a way forward
Upvotes: 2
Reputation: 21
I know there are apps that act like voice changer where they change your voice and transmit that thru gsm voice. Maybe you can make an app that takes the voice then modulate it to something like phase shift keying or digital radio monodiale like what hams used in vhf and hf radio communication and transmit the audio to gsm then demodulate it back to voice but instead of straight forward modulation demodulation you can add pgp, aes, or whatever encryption you like. I'm also intrested to see a project like this.
I think it would also be great if you could use this to transmit data thru voice gsm channel like the 56k modems in the past instead of the gprs channel.
See reference
http://freedv.org/tiki-index.php
http://www.aprs.org
Upvotes: 1
Reputation: 3418
Mobile networks perform lossy transcoding on voice channels, for example with
Therefore I doubt that an encrypted voice data stream survives transmission via a mobile network in a way that allows decryption on the receiving side.
Simple analogy: audio -> encrypt -> MP3 compression -> MP3 decoding -> decrypt -> audio. This may not work. Or: if you make this work then you have a chance of transporting the encrypted stream via a voice bearer.
Your option would be to do that on a data bearer, transporting the encrypted voice via IP. But this requires a separate telephony application on the mobile devices.
Upvotes: 4
Reputation: 3792
As per above few comments that level of access to voice calls is only possible with a rooted phone, and even then device specific. Best you could do for a generic encrypted voice application is a VOIP / SIP style application which would use a data connection.
Even if you could do it encrypting over an analog call would be non-trivial. The compression used in GSM codecs is optimised for voice and makes certain assumptions about the characteristics of the signal. You couldn't just use a simple analog -> digital -> encrypt -> analog -> phone network -> analog -> digital -> decrypt -> analog type signal chain.
You might notice I've included analog as a step, because all the final digital encoding to the GSM network is performed by the GSM radio chipset you don't get access to from any phone even if rooted.
Upvotes: 5