2010-11-15 31 views
10

我打算开发Android应用程序,它将加密/解密语音数据,以便各方可以使用安全通道进行通信。所以问题是:如何拦截GSM呼叫期间的语音/音频数据?有没有可能?我应该使用Android NDK还是其他?在通话过程中是否可以拦截语音数据?

回答

4

这是发生在操作系统的低级别。您将无法在应用程序级别访问这些信息。

我建议你像SipDroid一样查​​看VOIP。我敢打赌,你可以将其设置为轻松使用加密。 (srtp代替rtp)

即使你的SipDroid不支持这个,它是开源的,所以你可以添加这个功能。

3

通话记录在Android上尚不可行。请参阅feature request

您可以录制来自麦克风的声音,但无法录制对方的声音。如果你只想记录你的声音使用android.media.MediaRecorder.AudioSource.MIC

+0

我不是故意录制通话。我的意思是拦截现场的语音数据,“动态”更改/加密它们。可能吗? – barmaley 2010-11-15 08:36:48

+0

否 - 您无权拨打语音数据。 – 2010-11-15 09:14:51

1

简单的答案,不!

+0

即使是Native DK? – barmaley 2010-11-15 12:43:25

8

在GSM中,由于信道特性,不可能加密语音并通过语音信道发送它。通过语音信道发送的信号必须(类似于)人声,因为声码器(CELP)用于信道编码。

因此,即使您有权访问低级别的库并使用它来加密语音以直接通过语音通道发送它,被叫方也无法接收和解密信号。

然而,加密语音可以作为数据通过数据通道发送。

+0

从来不知道!非常有趣的答案。 – barmaley 2010-12-13 12:25:23

1

如果您能够访问低级库并使用它来加密语音以直接通过语音通道直接发送它,则被叫方无法接收和解密信号,但如果您调制加密语音数据并将该语音数据转换为像波形一样的语音并通过GSM的语音信道发送,然后肯定对方将接收和解密语音。

1

我知道有些应用程序可以像语音转换器那样改变语音并传输通过gsm语音。也许你可以制作一个应用程序,然后将其调制为相移键控或数字无线电单音节目,比如在甚高频和高频无线电通信中使用的火车,并将音频传输到GSM,然后将其解调回语音,而不是直接转发调制解调您可以添加pgp,aes或任何您喜欢的加密。我也很想看到这样的项目。

我认为这也将是伟大的,如果你可以使用它来传输数据通过语音gsm通道像过去的56k调制解调器,而不是gprs通道。

见参考 http://freedv.org/tiki-index.php http://www.aprs.org

相关问题