Libjingle

Libjingle is a set of components provided by Google to interoperate with Google
Talk's peer-to-peer and voice capabilities. This package will create several
static libraries you may link to your project as needed.

-talk               - No source files in talk/, just these subdirectories
|-base              - Contains basic low-level portable utility functions for 
|                     things like threads and sockets
|-p2p               - The P2P stack
  |-base            - Base p2p functionality
  |-client          - Hooks to tie it into XMPP
|-session           - Signaling
  |-phone           - Signaling code specific to making phone calls
|-third_party       - Components that aren't ours
  |-mediastreamer   - Media components for dealing with sound hardware and 
  |                   voice codecs
|-xmllite           - XML parser
|-xmpp              - XMPP engine

In addition, this package contains two examples in talk/examples which 
illustrate the basic concepts of how the provided classes work.

The xmllite component of libjingle depends on expat. You can download expat 
from http://expat.sourceforge.net/.

mediastreamer, the media components used by the example applications depend on
the oRTP and iLBC components from linphone, which can be found at 
http://www.linphone.org. Linphone, in turn depends on GLib, which can be found
at http://www.gtk.org. This GLib dependency should be removed in future 
releases.

Building Libjingle

Once the dependencies are installed, run ./configure. ./configure will return
an error if it failed to locate the proper dependencies. If ./configure
succeeds, run 'make' to build the components and examples.

When the build is complete, you can run the call example from 
talk/examples/call. This will ask you for your GMail username and your GMail
auth cookie. Your GMail auth cookie is the GX cookie from mail.google.com 
found in your web browser.

Relay Server

Libjingle will also build a relay server that may be used to relay traffic
when a direct peer-to-peer connection could not be established. The relay
server will build in talk/p2p/base/relayserver and will listen on UDP
ports 5000 and 5001. See the Libjingle Developer Guide at 
http://code.google.com/apis/talk/index.html for information about configuring
a client to use this relay server.

STUN Server

Lastly, Libjingle builds a STUN server which implements the STUN protocol for
Simple Traversal of UDP over NAT. The STUN server is built as
talk/p2p/base/stunserver and listens on UDP port 7000. See the Libjingle
Developer Guide at http://code.google.com/apis/talk/index.html for information
about configuring a client to use this STUN server.
