QXmpp Version: 1.10.0
Public Types | Public Slots | Signals | Public Member Functions | Properties | List of all members
QXmppIceConnection Class Reference

The QXmppIceConnection class represents a set of UDP sockets capable of performing Interactive Connectivity Establishment (RFC 5245). More...

#include <QXmppStun.h>

Inheritance diagram for QXmppIceConnection:
Inheritance graph
[legend]
Collaboration diagram for QXmppIceConnection:
Collaboration graph
[legend]

Public Types

enum  GatheringState { NewGatheringState , BusyGatheringState , CompleteGatheringState }
 

Public Slots

void close ()
 
void connectToHost ()
 

Signals

void connected ()
 This signal is emitted once ICE negotiation succeeds.
 
void disconnected ()
 This signal is emitted when ICE negotiation fails.
 
void gatheringStateChanged ()
 This signal is emitted when the gathering state of local candidates changes. More...
 
void localCandidatesChanged ()
 This signal is emitted when the list of local candidates changes.
 
- Signals inherited from QXmppLoggable
void setGauge (const QString &gauge, double value)
 Sets the given gauge to value.
 
void logMessage (QXmppLogger::MessageType type, const QString &msg)
 This signal is emitted to send logging messages.
 
void updateCounter (const QString &counter, qint64 amount=1)
 Updates the given counter by amount.
 

Public Member Functions

 QXmppIceConnection (QObject *parent=nullptr)
 
QXmppIceComponentcomponent (int component)
 
void addComponent (int component)
 
void setIceControlling (bool controlling)
 
QList< QXmppJingleCandidatelocalCandidates () const
 
QString localUser () const
 
QString localPassword () const
 
void addRemoteCandidate (const QXmppJingleCandidate &candidate)
 
void setRemoteUser (const QString &user)
 
void setRemotePassword (const QString &password)
 
void setStunServers (const QList< QPair< QHostAddress, quint16 > > &servers)
 
void setStunServer (const QHostAddress &host, quint16 port=3478)
 
void setTurnServer (const QHostAddress &host, quint16 port=3478)
 
void setTurnUser (const QString &user)
 
void setTurnPassword (const QString &password)
 
bool bind (const QList< QHostAddress > &addresses)
 
bool isConnected () const
 
GatheringState gatheringState () const
 
- Public Member Functions inherited from QXmppLoggable
 QXmppLoggable (QObject *parent=nullptr)
 

Properties

QXmppIceConnection::GatheringState gatheringState
 

Additional Inherited Members

- Protected Member Functions inherited from QXmppLoggable
void debug (const QString &message)
 
void info (const QString &message)
 
void warning (const QString &message)
 
void logReceived (const QString &message)
 
void logSent (const QString &message)
 

Detailed Description

The QXmppIceConnection class represents a set of UDP sockets capable of performing Interactive Connectivity Establishment (RFC 5245).

A typical example is:

connection->setIceControlling(true);
connection->addComponent(1);
// if needed, set STUN / TURN configuration
// connection->setStunServer(..);
// connection->setTurnServer(..);
// start listening
// receive remote information: user, password, candidates
// ...
// set remote information and start connecting
connection->setRemoteUser("foo");
connection->setRemoteUser("bar");
connection->addRemoteCandidate(..);
connection->connectToHost();
static QList< QHostAddress > discoverAddresses()
Definition: QXmppStun.cpp:2408
The QXmppIceConnection class represents a set of UDP sockets capable of performing Interactive Connec...
Definition: QXmppStun.h:224
void addRemoteCandidate(const QXmppJingleCandidate &candidate)
Definition: QXmppStun.cpp:2639
void connectToHost()
Definition: QXmppStun.cpp:2688
bool bind(const QList< QHostAddress > &addresses)
Definition: QXmppStun.cpp:2654
void setIceControlling(bool controlling)
Definition: QXmppStun.cpp:2724
QXmppIceConnection(QObject *parent=nullptr)
Definition: QXmppStun.cpp:2579
void setRemoteUser(const QString &user)
Definition: QXmppStun.cpp:2763
void addComponent(int component)
Definition: QXmppStun.cpp:2609

Member Enumeration Documentation

◆ GatheringState

This enum describes the gathering state of the ICE connection.

Since
QXmpp 0.9.3

Constructor & Destructor Documentation

◆ QXmppIceConnection()

QXmppIceConnection::QXmppIceConnection ( QObject *  parent = nullptr)

Constructs a new ICE connection.

Parameters
parent

Member Function Documentation

◆ addComponent()

void QXmppIceConnection::addComponent ( int  component)

Adds a component to this ICE connection, for instance 1 for RTP or 2 for RTCP.

Parameters
component

◆ addRemoteCandidate()

void QXmppIceConnection::addRemoteCandidate ( const QXmppJingleCandidate candidate)

Adds a candidate for one of the remote components.

Parameters
candidate

◆ bind()

bool QXmppIceConnection::bind ( const QList< QHostAddress > &  addresses)

Binds the local sockets to the specified addresses.

Parameters
addressesThe addresses on which to listen.

◆ close

void QXmppIceConnection::close ( )
slot

Closes the ICE connection.

◆ component()

QXmppIceComponent * QXmppIceConnection::component ( int  component)

Returns the given component of this ICE connection.

Parameters
component

◆ connectToHost

void QXmppIceConnection::connectToHost ( )
slot

Starts ICE connectivity checks.

◆ gatheringState()

QXmppIceConnection::GatheringState QXmppIceConnection::gatheringState ( ) const

Returns the ICE gathering state, that is the discovery of local candidates.

Since
QXmpp 0.9.3

◆ gatheringStateChanged

void QXmppIceConnection::gatheringStateChanged ( )
signal

This signal is emitted when the gathering state of local candidates changes.

Since
QXmpp 0.9.3

◆ isConnected()

bool QXmppIceConnection::isConnected ( ) const

Returns true if ICE negotiation completed, false otherwise.

◆ localCandidates()

QList< QXmppJingleCandidate > QXmppIceConnection::localCandidates ( ) const

Returns the list of local HOST CANDIDATES candidates by iterating over the available network interfaces.

◆ localPassword()

QString QXmppIceConnection::localPassword ( ) const

Returns the local password.

◆ localUser()

QString QXmppIceConnection::localUser ( ) const

Returns the local user fragment.

◆ setIceControlling()

void QXmppIceConnection::setIceControlling ( bool  controlling)

Sets whether the local party has the ICE controlling role.

note This must be called only once, immediately after creating the connection.

◆ setRemotePassword()

void QXmppIceConnection::setRemotePassword ( const QString &  password)

Sets the remote password.

Parameters
password

◆ setRemoteUser()

void QXmppIceConnection::setRemoteUser ( const QString &  user)

Sets the remote user fragment.

Parameters
user

◆ setStunServer()

void QXmppIceConnection::setStunServer ( const QHostAddress &  host,
quint16  port = 3478 
)

Sets a single STUN server to use to determine server-reflexive addresses and ports.

Note
This may only be called prior to calling bind().
Parameters
hostThe address of the STUN server.
portThe port of the STUN server.

◆ setStunServers()

void QXmppIceConnection::setStunServers ( const QList< QPair< QHostAddress, quint16 > > &  servers)

Sets multiple STUN servers to use to determine server-reflexive addresses and ports.

Note
This may only be called prior to calling bind().
Parameters
serversList of the STUN servers.
Since
QXmpp 1.3

◆ setTurnPassword()

void QXmppIceConnection::setTurnPassword ( const QString &  password)

Sets the password used for authentication with the TURN server.

Note
This may only be called prior to calling bind().
Parameters
password

◆ setTurnServer()

void QXmppIceConnection::setTurnServer ( const QHostAddress &  host,
quint16  port = 3478 
)

Sets the TURN server to use to relay packets in double-NAT configurations.

Note
This may only be called prior to calling bind().
Parameters
hostThe address of the TURN server.
portThe port of the TURN server.

◆ setTurnUser()

void QXmppIceConnection::setTurnUser ( const QString &  user)

Sets the user used for authentication with the TURN server.

Note
This may only be called prior to calling bind().
Parameters
user

Property Documentation

◆ gatheringState

QXmppIceConnection::GatheringState QXmppIceConnection::gatheringState
read

The ICE gathering state, that is the discovery of local candidates

Since
QXmpp 0.9.3

The documentation for this class was generated from the following files: