We need an open source library that handles nat traversal and persion:ip mapping. Maybe we can steal some networking code from a bittorrent client? I still find it silly that the default way to build an app for person-to-person communication is to have that communication go through a central server.
Once you have that stuff done building voice chat on top is trivial.