How it works
An encryption key is provided at first. Then a person makes the phone call. CallCrypt records his or her speech. Converts that speech back to text. Encrypts that text using (a)symmetric methods, then passes a computer generated speech of the characters of the ciphertext through the call. To retrieve the actual content of the speech, CallCrypt does the exact above, except it decrypts the text.
Challenges I ran into
Changing the base of the ciphertext to something actually usable was troubling. Working with audio devices and programmatical audio editing was another challenging aspect.
Accomplishments that I'm proud of
1- Encryption is independent of the network/protocol/whatever type! If a call can be made in the first place (Like Skype to Skype, Skype to Landline, Landline to Cell, WhatsApp to WhatsApp etc. but not like WhatsApp to Hangout) it can be encrypted.
2- Since basically you'll be encrypting plain text, there's no restriction as to what type of encryption algorithm should be used or whether it's symmetric or asymmetric etc.
What I learned
A lot about design of parallel programs, encryption and audio engineering.
What's next for CallCrypt
Polish it, break dependencies to stuff like google-web-speech-api and then publish it as open source.