Jitsi is getting a lot of mentions here.
I wonder if people are aware of GNU Jami, a P2P solution.
Jami has end-to-end encryption while Jitsi is only encrypted during transit. The Jitsi server has your packets available in unencrypted form. If you can't trust a Jitsi server and need end-to-end encryption, Jami can be a good alternative.