33 QXmppStunTransaction(
const QXmppStunMessage &request, QObject *parent);
34 QXmppStunMessage request()
const;
35 QXmppStunMessage response()
const;
37 Q_SIGNAL
void finished();
38 Q_SIGNAL
void writeStun(
const QXmppStunMessage &request);
40 Q_SLOT
void readStun(
const QXmppStunMessage &response);
45 QXmppStunMessage m_request;
46 QXmppStunMessage m_response;
56 QXmppIceTransport(QObject *parent =
nullptr);
57 ~QXmppIceTransport()
override;
59 virtual QXmppJingleCandidate localCandidate(
int component)
const = 0;
60 virtual qint64 writeDatagram(
const QByteArray &data,
const QHostAddress &host, quint16 port) = 0;
62 Q_SLOT
virtual void disconnectFromHost() = 0;
65 Q_SIGNAL
void datagramReceived(
const QByteArray &data,
const QHostAddress &host, quint16 port);
72class QXMPP_EXPORT QXmppTurnAllocation :
public QXmppIceTransport
77 enum AllocationState {
84 QXmppTurnAllocation(QObject *parent =
nullptr);
85 ~QXmppTurnAllocation()
override;
87 QHostAddress relayedHost()
const;
88 quint16 relayedPort()
const;
89 AllocationState state()
const;
91 void setServer(
const QHostAddress &host, quint16 port = 3478);
92 void setUser(
const QString &user);
93 void setPassword(
const QString &password);
95 QXmppJingleCandidate localCandidate(
int component)
const override;
96 qint64 writeDatagram(
const QByteArray &data,
const QHostAddress &host, quint16 port)
override;
99 Q_SIGNAL
void connected();
102 Q_SIGNAL
void disconnected();
104 Q_SLOT
void connectToHost();
105 Q_SLOT
void disconnectFromHost()
override;
108 Q_SLOT
void readyRead();
109 Q_SLOT
void refresh();
110 Q_SLOT
void refreshChannels();
111 Q_SLOT
void transactionFinished();
112 Q_SLOT
void writeStun(
const QXmppStunMessage &message);
114 void handleDatagram(
const QByteArray &datagram,
const QHostAddress &host, quint16 port);
115 void setState(AllocationState state);
119 QTimer *m_channelTimer;
122 QHostAddress m_relayedHost;
123 quint16 m_relayedPort;
124 QHostAddress m_turnHost;
128 typedef QPair<QHostAddress, quint16> Address;
129 quint16 m_channelNumber;
130 QMap<quint16, Address> m_channels;
137 AllocationState m_state;
138 QList<QXmppStunTransaction *> m_transactions;
144class QXMPP_EXPORT QXmppUdpTransport :
public QXmppIceTransport
149 QXmppUdpTransport(QUdpSocket *socket, QObject *parent =
nullptr);
150 ~QXmppUdpTransport()
override;
152 QXmppJingleCandidate localCandidate(
int component)
const override;
153 qint64 writeDatagram(
const QByteArray &data,
const QHostAddress &host, quint16 port)
override;
155 Q_SLOT
void disconnectFromHost()
override;
158 Q_SLOT
void readyRead();
160 QUdpSocket *m_socket;
The QXmppLoggable class represents a source of logging messages.
Definition QXmppLogger.h:109