QXmpp Version: 1.12.0
Loading...
Searching...
No Matches
QXmppCallManager.h
1// SPDX-FileCopyrightText: 2010 Jeremy Lainé <jeremy.laine@m4x.org>
2// SPDX-FileCopyrightText: 2019 Niels Ole Salscheider <ole@salscheider.org>
3// SPDX-FileCopyrightText: 2025 Linus Jahn <lnj@kaidan.im>
4//
5// SPDX-License-Identifier: LGPL-2.1-or-later
6
7#ifndef QXMPPCALLMANAGER_H
8#define QXMPPCALLMANAGER_H
9
10#include "QXmppCall.h"
11#include "QXmppClientExtension.h"
12#include "QXmppLogger.h"
13
14#include <QIODevice>
15#include <QMetaType>
16#include <QObject>
17
18class QHostAddress;
19class QXmppCallManagerPrivate;
20class QXmppIq;
22class QXmppJingleIq;
24class QXmppPresence;
25
26class QXMPP_EXPORT QXmppCallManager : public QXmppClientExtension
27{
28 Q_OBJECT
29
30public:
33 void setStunServers(const QList<QPair<QHostAddress, quint16>> &servers);
34 void setStunServer(const QHostAddress &host, quint16 port = 3478);
35 void setTurnServer(const QHostAddress &host, quint16 port = 3478);
36 void setTurnUser(const QString &user);
37 void setTurnPassword(const QString &password);
38 bool dtlsRequired() const;
39 void setDtlsRequired(bool);
40
42 QStringList discoveryFeatures() const override;
43 bool handleStanza(const QDomElement &element) override;
45
50 Q_SIGNAL void callReceived(QXmppCall *call);
51
53 Q_SIGNAL void callStarted(QXmppCall *call);
54
55 QXmppCall *call(const QString &jid);
56
57protected:
59 void onRegistered(QXmppClient *client) override;
60 void onUnregistered(QXmppClient *client) override;
62
63private:
64 void _q_callDestroyed(QObject *object);
65 void _q_disconnected();
66 void _q_jingleIqReceived(const QXmppJingleIq &iq);
67 void _q_presenceReceived(const QXmppPresence &presence);
68
69 const std::unique_ptr<QXmppCallManagerPrivate> d;
70 friend class QXmppCall;
71 friend class QXmppCallPrivate;
72 friend class QXmppCallManagerPrivate;
73};
74
75#endif
The QXmppCallManager class provides support for making and receiving voice calls.
Definition QXmppCallManager.h:27
Q_SIGNAL void callReceived(QXmppCall *call)
Q_SIGNAL void callStarted(QXmppCall *call)
This signal is emitted when a call (incoming or outgoing) is started.
~QXmppCallManager() override
Definition QXmppCall.h:23
The QXmppClientExtension class is the base class for QXmppClient extensions.
Definition QXmppClientExtension.h:32
virtual QStringList discoveryFeatures() const
Definition QXmppClientExtension.cpp:22
virtual void onUnregistered(QXmppClient *client)
Definition QXmppClientExtension.cpp:95
virtual void onRegistered(QXmppClient *client)
Definition QXmppClientExtension.cpp:85
virtual bool handleStanza(const QDomElement &stanza)
You need to implement this method to process incoming XMPP stanzas.
Definition client/compat/removed_api.cpp:44
Main class for starting and managing connections to XMPP servers.
Definition QXmppClient.h:62
The QXmppIq class is the base class for all IQs.
Definition QXmppIq.h:23
The QXmppJingleCandidate class represents a transport candidate as specified by XEP-0176: Jingle ICE-...
Definition QXmppJingleData.h:286
The QXmppJingleIq class represents an IQ used for initiating media sessions as specified by XEP-0166:...
Definition QXmppJingleData.h:415
The QXmppJinglePayloadType class represents a payload type as specified by XEP-0167: Jingle RTP Sessi...
Definition QXmppJingleData.h:206
The QXmppPresence class represents an XMPP presence stanza.
Definition QXmppPresence.h:22