29 #include "QXmppLogger.h"
30 #include "QXmppJingleIq.h"
36 class QXmppIceComponentPrivate;
37 class QXmppIceConnectionPrivate;
38 class QXmppIcePrivate;
45 class QXMPP_EXPORT QXmppStunMessage
55 CreatePermission = 0x8,
68 quint32 cookie()
const;
69 void setCookie(quint32 cookie);
71 QByteArray id()
const;
72 void setId(
const QByteArray &
id);
74 quint16 messageClass()
const;
75 quint16 messageMethod()
const;
78 void setType(quint16 type);
82 quint32 changeRequest()
const;
83 void setChangeRequest(quint32 changeRequest);
85 quint16 channelNumber()
const;
86 void setChannelNumber(quint16 channelNumber);
88 QByteArray data()
const;
89 void setData(
const QByteArray &data);
91 quint32 lifetime()
const;
92 void setLifetime(quint32 changeRequest);
94 QByteArray nonce()
const;
95 void setNonce(
const QByteArray &nonce);
97 quint32 priority()
const;
98 void setPriority(quint32 priority);
100 QString realm()
const;
101 void setRealm(
const QString &realm);
103 QByteArray reservationToken()
const;
104 void setReservationToken(
const QByteArray &reservationToken);
106 quint8 requestedTransport()
const;
107 void setRequestedTransport(quint8 requestedTransport);
109 QString software()
const;
110 void setSoftware(
const QString &software);
112 QString username()
const;
113 void setUsername(
const QString &username);
115 QByteArray encode(
const QByteArray &key = QByteArray(),
bool addFingerprint =
true)
const;
116 bool decode(
const QByteArray &buffer,
const QByteArray &key = QByteArray(), QStringList *errors = 0);
117 QString toString()
const;
118 static quint16 peekType(
const QByteArray &buffer, quint32 &cookie, QByteArray &
id);
123 QByteArray iceControlling;
124 QByteArray iceControlled;
125 QHostAddress changedHost;
127 QHostAddress mappedHost;
129 QHostAddress otherHost;
131 QHostAddress sourceHost;
133 QHostAddress xorMappedHost;
134 quint16 xorMappedPort;
135 QHostAddress xorPeerHost;
137 QHostAddress xorRelayedHost;
138 quint16 xorRelayedPort;
147 QSet<quint16> m_attributes;
148 quint32 m_changeRequest;
149 quint16 m_channelNumber;
155 quint8 m_requestedTransport;
156 QByteArray m_reservationToken;
172 int component()
const;
173 bool isConnected()
const;
174 QList<QXmppJingleCandidate> localCandidates()
const;
176 static QList<QHostAddress> discoverAddresses();
177 static QList<QUdpSocket*> reservePorts(
const QList<QHostAddress> &addresses,
int count, QObject *parent = 0);
181 void connectToHost();
182 qint64 sendDatagram(
const QByteArray &datagram);
185 void checkCandidates();
186 void handleDatagram(
const QByteArray &datagram,
const QHostAddress &host, quint16 port);
187 void turnConnected();
188 void transactionFinished();
189 void updateGatheringState();
190 void writeStun(
const QXmppStunMessage &request);
200 void gatheringStateChanged();
208 QXmppIceComponentPrivate *d;
209 friend class QXmppIceComponentPrivate;
244 Q_ENUMS(GatheringState)
245 Q_PROPERTY(QXmppIceConnection::GatheringState gatheringState READ gatheringState NOTIFY gatheringStateChanged)
252 CompleteGatheringState
259 void addComponent(
int component);
260 void setIceControlling(
bool controlling);
262 QList<QXmppJingleCandidate> localCandidates()
const;
263 QString localUser()
const;
264 QString localPassword()
const;
267 void setRemoteUser(
const QString &user);
268 void setRemotePassword(
const QString &password);
270 void setStunServer(
const QHostAddress &host, quint16 port = 3478);
271 void setTurnServer(
const QHostAddress &host, quint16 port = 3478);
272 void setTurnUser(
const QString &user);
273 void setTurnPassword(
const QString &password);
275 bool bind(
const QList<QHostAddress> &addresses);
276 bool isConnected()
const;
278 GatheringState gatheringState()
const;
295 void connectToHost();
298 void slotConnected();
299 void slotGatheringStateChanged();
303 QXmppIceConnectionPrivate *d;
The QXmppIceComponent class represents a piece of a media stream requiring a single transport address...
Definition: QXmppStun.h:166
void localCandidatesChanged()
This signal is emitted when the list of local candidates changes.
void datagramReceived(const QByteArray &datagram)
This signal is emitted when a data packet is received.
void connected()
This signal is emitted once ICE negotiation succeeds.
The QXmppIceConnection class represents a set of UDP sockets capable of performing Interactive Connec...
Definition: QXmppStun.h:242
void localCandidatesChanged()
This signal is emitted when the list of local candidates changes.
void gatheringStateChanged()
This signal is emitted when the gathering state of local candidates changes.
void disconnected()
This signal is emitted when ICE negotiation fails.
void connected()
This signal is emitted once ICE negotiation succeeds.
The QXmppJingleCandidate class represents a transport candidate as specified by XEP-0176: Jingle ICE-...
Definition: QXmppJingleIq.h:85
The QXmppLoggable class represents a source of logging messages.
Definition: QXmppLogger.h:112