7#ifndef QXMPPCALLMANAGER_P_H
8#define QXMPPCALLMANAGER_P_H
11#include "QXmppExternalService.h"
12#include "QXmppPromise.h"
13#include "QXmppStunServer.h"
14#include "QXmppTurnServer.h"
34namespace QXmpp::Private {
36struct StunServerConfig {
38 std::optional<QDateTime> expires;
41struct TurnServerConfig {
43 std::optional<QDateTime> expires;
46struct StunTurnConfig {
47 QList<StunServerConfig> stun;
48 std::optional<TurnServerConfig> turn;
51using ServiceResult = std::variant<QXmppExternalService, QXmppError>;
52using ServicesResult = std::variant<QVector<QXmppExternalService>, QXmppError>;
53QXmppTask<ServicesResult> requestExternalServices(QXmppClient *client,
const QString &jid);
54QXmppTask<ServiceResult> requestCredentials(QXmppClient *client,
const QString &jid,
const QString &type,
const QString &host);
56using StunTurnResult = std::variant<StunTurnConfig, QXmppError>;
57QXmppTask<StunTurnResult> requestStunTurnConfig(QXmppClient *client, QXmppLoggable *context);
61class QXmppCallManagerPrivate
64 explicit QXmppCallManagerPrivate(QXmppCallManager *qq);
66 void addCall(QXmppCall *call);
67 QList<QXmpp::StunServer> stunServers()
const;
68 std::optional<QXmpp::TurnServer> turnServer()
const;
70 QList<QXmppCall *> calls;
73 std::optional<QXmpp::Private::MultiPromise<void>> refreshStunTurnConfigPromise;
74 std::optional<QXmpp::Private::StunTurnConfig> stunTurnServers;
75 QList<QXmpp::StunServer> fallbackStunServers;
76 std::optional<QXmpp::TurnServer> fallbackTurnServer;
78 bool dtlsRequired =
false;
79 bool supportsDtls =
false;
The QXmppCallManager class provides support for making and receiving voice calls.
Definition QXmppCallManager.h:25
Definition QXmppJingleData.h:352