Skip to content

Real time voice communication app with custom dialing protocol.

License

Notifications You must be signed in to change notification settings

rctl/CryptoVoice

Repository files navigation

CryptoVoice- Real time encrypted vocie communication

CryptoVoice is an app offering real time encrypted voice communication over networking. Implemented together with a cutom dialing and voice streaming protocol encrypted with strong AES cipher. Dialing channel uses TLS encryption with server validation to prevent MITM attacks. Server backend is written in java. App is also available in the Google Play Store.

For more details please read my blog post on the project.

License

This project is licensed under GNU AGPLv3. If you use this code you have to release your source code publicly.

This project is no longer maintained. Feel free to reach out if you need help adapting the code for your setting.

Setup

Follow these steps to setup a backend server (required for app to work) and to configure the android client to use your backend server

  • Go into the server folder of the repository.
  • Generate server certificate with keytool -genkey -keystore keystore.jks -keyalg RSA (Save password used here)
  • Self sign server certificate with keytool -selfcert -alias mykey -keystore keystore.jks -validity 3950
  • Export certificate as crt file with keytool -export -alias mykey -keystore keystore.jks -rfc -file server.crt
  • Move certificate file into android asset folder with mv server.crt ../app/main/assets/
  • Move the Settings.java.example file in server folder to Settings.java and edit the file with your keystore password used in earlier steps
  • Compile and run the server (prefferably at a publicly accessiable server) javac *.java && java Switchboard
  • Make sure server is accessable and no ports are being blocked
  • Go into app/src/main/java/io/rtek/rtvoice/ and move Settings.java.example to Settings.java
  • Change settings in Settings.java to reflect your server ip address
  • Compile and run app

App screens

Main screen

Main screen

Incoming call

Incoming call

Call connecting

Call connecting

About

Real time voice communication app with custom dialing protocol.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages