We announced a new communications product, Hangouts, in May 2013. Hangouts will replace Google Talk and does not support XMPP.


The following table lists the libjingle classes covered by these reference pages.

Name Description
BasicPortAllocator Class A subclass of the PortAllocator class that handles port allocation.
Call Class A wrapper object in the voice chat sample application that bundles groups of Session objects into a single chat connection.
ChannelManager Class Creates and destroys a VoiceChannel object, and provides access to the MediaEngine object.
Connection Class Represents a connection between a local Port object and a remote computer.
CryptString An abstract base class that you can use to implement a more secure class for handling passwords.
FileShareClient The top level managing object for the file share example application. After signing on to the server, if given a manifest of files to transfer it handles all the details of sending (or receiving) the files.
FileShareManifest A simple representation of the list of files and folders in a file share session. This must be converted to a FileShareDescription object (XMPP) to be sent across the wire in an offer.
FileShareSessionClient Extends SessionClient for the file share example.
FileStream Class An extension of the base StreamInterface class, that enables reading from/writing to files.
HttpClient An object that sends an asynchronous GET or POST request across the network, and waits for a response. To use, set the server, the request object's verb and path, and call start. Data will automatically be saved to a local disk cache, accessible from the response method. See FileShareSession for examples of use.
HttpPortAllocator A subclass of PortAllocator that enables the caller to specify relay and STUN server addresses. This is used by the File Share sample application.
HttpServer An object that sends requested resources back to an HttpClient object upon request. See FileShareSession for examples of use.
HttpTransaction A wrapper object that wraps a request for HttpServer.
MediaChannel Class Transports peer-to-peer data between the hardware and the P2PTransportChannel.
MediaEngine Class Wraps the third-party package that controls the render/capture hardware on the computer.
MemoryStream Class Extension of StreamInterface to enable in-memory data exchange.
PhoneSessionClient Class Extends SessionClient for voice chat applications.
Port Class A base class that wraps a local socket used to send and receive data.
PortAllocator Class A base class for allocating ports. HttpPortAllocator extends this class for the two sample applications.
PresenceOutTask Class An XMPP helper task that sends the current user's status to a XMPP server.
PresencePushTask Class An XMPP helper class that monitors incoming stanza for presence notifications sent by the server.
PseudoTcpChannel Class Packages (and unpackages) data into TCP-like packets that can be sent across firewalls and NAT-enabled devices in order to provide TCP-like functionality (that is, reliability and ordered retrieval). It exposes a read/write stream, and acts as an alternate data endpoint to P2PTransport.
RelayServer Code for a relay server. The example code uses the Google relay server to handle session negotiation, but you can build and run this server to handle session negotiation if you want to.
Session Class Negotiates the specifics of the data channel over the XMPP channel, monitors the connection, starts, and ends the connection.
SessionClient Class A base class that translates between XMPP (for network transmission) and XmppSessionMessage and SessionDescription objects (used internally by libjingle).
SessionManager Class A conduit between SessionClient and the individual Session objects.
SessionSendTask Class An XMPP helper task that sends an XMPP stanza and waits for a response.
StreamEvent Enumeration Returned by StreamInterface or a derived object to describe the current writability state of the stream.
StreamInterface Class A pure virtual wrapper class for asynchronous reading and writing to peer-to-peer data streams.
StreamResult Enumeration Describes the attempt of a read or write operation on a StreamInterface object.
StreamState Enumeration Describes the state of a StreamInterface or derived object.
Task Class Task is a base class for multi-part, asynchronous tasks.
Transport/P2PTransport The top level manager for the data pathway on the computer. It hosts one or more TransportChannel objects, each representing a data connection from this computer to the other computer. Transport continually monitors the viability and performance of each channel, and if a channel goes down, should negotiate a new connection by itself.
TransportChannel / P2PTransportChannel / P2PTransportChannelImpl A data connection from a port on this computer to a port on the other connection. It is controlled by Transport, and it manages one or more Connection objects, which represents the actual data stream between the two computers.
VoiceChannel Class Wraps a TransportChannel, Session, and MediaChannel for the voice chat sample application.
XmppClient Class The main entry and exit point for XMPP stanzas between the network and the application.
XmppEngine Class The underlying XMPP connection engine managed by XmppClient.
XmppPump A top-level manager class for the XMPP Messaging Component.
XmppTask Class A specialization of the Task class that acts as a base class for asynchronous XMPP tasks.