Farsight 2 is the next generation of Farsight, the GStreamer based VoIP and videoconferencing framework. It has a complete RTP implementation, including complex features such as dynamic codec negotiation and switching, multi-party conferencing and lip synchronization. But it is also a generic framework allowing the implementation of other GStreamer based streaming systems to support non-standard legacy protocols.
It provides all of the required elements for interactive full-duplex streaming, while being independent of the signaling protocol used. It is currently used with Telepathy on the Nokia Internet Tablets (770, N800, N810) to provide the RTP streaming necessary for XMPP Jingle as well as SIP VoIP, including interacting with PSTN gateways. The Empathy desktop client also uses Farsight to provide video conferencing through the Telepathy framework on the desktop.
I will present a bit of the history of Farsight, what it does and how it does it. I will also explain how it can be used to integrate audio/video streaming into applications such as IM clients, but also how it can be used to integrate VoIP functionality into other applications using GStreamer.