I'm looking for a chat protocol which:

* Has easy to use clients which will run on both Windows and Linux.
* Has a server which I can run myself on Linux (preferably easy to set up).
* Supports duplexed voice and video with minimal hassle (optional).
* Is open source/free software.

Is there a protocol that fulfils these requirements?