13#include <QHostAddress>
15class QXmppJingleCandidatePrivate;
16class QXmppJingleIqContentPrivate;
17class QXmppJingleIqPrivate;
18class QXmppJinglePayloadTypePrivate;
19class QXmppJingleRtpCryptoElementPrivate;
20class QXmppJingleRtpEncryptionPrivate;
21class QXmppJingleRtpFeedbackPropertyPrivate;
22class QXmppJingleRtpHeaderExtensionPropertyPrivate;
23class QXmppSdpParameterPrivate;
33 void setName(
const QString &name);
35 QString value()
const;
36 void setValue(
const QString &value);
39 void parse(
const QDomElement &element);
40 void toXml(QXmlStreamWriter *writer)
const;
43 static bool isSdpParameter(
const QDomElement &element);
46 QSharedDataPointer<QXmppSdpParameterPrivate> d;
57 void setTag(uint32_t tag);
59 QString cryptoSuite()
const;
60 void setCryptoSuite(
const QString &cryptoSuite);
62 QString keyParams()
const;
63 void setKeyParams(
const QString &keyParams);
65 QString sessionParams()
const;
66 void setSessionParams(
const QString &sessionParams);
69 void parse(
const QDomElement &element);
70 void toXml(QXmlStreamWriter *writer)
const;
73 static bool isJingleRtpCryptoElement(
const QDomElement &element);
76 QSharedDataPointer<QXmppJingleRtpCryptoElementPrivate> d;
86 bool isRequired()
const;
87 void setRequired(
bool isRequired);
89 QVector<QXmppJingleRtpCryptoElement> cryptoElements()
const;
90 void setCryptoElements(
const QVector<QXmppJingleRtpCryptoElement> &cryptoElements);
93 void parse(
const QDomElement &element);
94 void toXml(QXmlStreamWriter *writer)
const;
97 static bool isJingleRtpEncryption(
const QDomElement &element);
100 QSharedDataPointer<QXmppJingleRtpEncryptionPrivate> d;
110 QString type()
const;
111 void setType(
const QString &type);
113 QString subtype()
const;
114 void setSubtype(
const QString &subtype);
116 QVector<QXmppSdpParameter> parameters()
const;
117 void setParameters(
const QVector<QXmppSdpParameter> ¶meters);
120 void parse(
const QDomElement &element);
121 void toXml(QXmlStreamWriter *writer)
const;
124 static bool isJingleRtpFeedbackProperty(
const QDomElement &element);
127 QSharedDataPointer<QXmppJingleRtpFeedbackPropertyPrivate> d;
137 uint64_t value()
const;
138 void setValue(uint64_t value);
141 void parse(
const QDomElement &element);
142 void toXml(QXmlStreamWriter *writer)
const;
145 static bool isJingleRtpFeedbackInterval(
const QDomElement &element);
168 void setId(uint32_t
id);
171 void setUri(
const QString &uri);
173 Senders senders()
const;
174 void setSenders(Senders senders);
176 QVector<QXmppSdpParameter> parameters()
const;
177 void setParameters(
const QVector<QXmppSdpParameter> ¶meters);
180 void parse(
const QDomElement &element);
181 void toXml(QXmlStreamWriter *writer)
const;
184 static bool isJingleRtpHeaderExtensionProperty(
const QDomElement &element);
187 QSharedDataPointer<QXmppJingleRtpHeaderExtensionPropertyPrivate> d;
201 unsigned char channels()
const;
202 void setChannels(
unsigned char channels);
204 unsigned int clockrate()
const;
205 void setClockrate(
unsigned int clockrate);
207 unsigned char id()
const;
208 void setId(
unsigned char id);
210 unsigned int maxptime()
const;
211 void setMaxptime(
unsigned int maxptime);
213 QString name()
const;
214 void setName(
const QString &name);
216 QMap<QString, QString> parameters()
const;
217 void setParameters(
const QMap<QString, QString> ¶meters);
219 unsigned int ptime()
const;
220 void setPtime(
unsigned int ptime);
222 QVector<QXmppJingleRtpFeedbackProperty> rtpFeedbackProperties()
const;
223 void setRtpFeedbackProperties(
const QVector<QXmppJingleRtpFeedbackProperty> &rtpFeedbackProperties);
225 QVector<QXmppJingleRtpFeedbackInterval> rtpFeedbackIntervals()
const;
226 void setRtpFeedbackIntervals(
const QVector<QXmppJingleRtpFeedbackInterval> &rtpFeedbackIntervals);
229 void parse(
const QDomElement &element);
230 void toXml(QXmlStreamWriter *writer)
const;
237 QSharedDataPointer<QXmppJinglePayloadTypePrivate> d;
266 int component()
const;
267 void setComponent(
int component);
269 QString foundation()
const;
270 void setFoundation(
const QString &foundation);
272 int generation()
const;
273 void setGeneration(
int generation);
275 QHostAddress host()
const;
276 void setHost(
const QHostAddress &host);
279 void setId(
const QString &
id);
282 void setNetwork(
int network);
284 quint16 port()
const;
285 void setPort(quint16 port);
287 int priority()
const;
288 void setPriority(
int priority);
290 QString protocol()
const;
291 void setProtocol(
const QString &protocol);
299 void parse(
const QDomElement &element);
300 void toXml(QXmlStreamWriter *writer)
const;
307 QSharedDataPointer<QXmppJingleCandidatePrivate> d;
372 using RtpSessionState = std::variant<RtpSessionStateActive, RtpSessionStateHold, RtpSessionStateUnhold, RtpSessionStateMuting, RtpSessionStateRinging>;
379 class QXMPP_EXPORT Content
383 Content(
const QXmppJingleIq::Content &other);
384 Content(QXmppJingleIq::Content &&);
387 Content &operator=(
const Content &other);
388 Content &operator=(Content &&);
390 QString creator()
const;
391 void setCreator(
const QString &creator);
393 QString name()
const;
394 void setName(
const QString &name);
396 QString senders()
const;
397 void setSenders(
const QString &senders);
400 QString descriptionMedia()
const;
401 void setDescriptionMedia(
const QString &media);
403 quint32 descriptionSsrc()
const;
404 void setDescriptionSsrc(quint32 ssrc);
406 bool isRtpMultiplexingSupported()
const;
407 void setRtpMultiplexingSupported(
bool isRtpMultiplexingSupported);
409 std::optional<QXmppJingleRtpEncryption> rtpEncryption()
const;
410 void setRtpEncryption(
const std::optional<QXmppJingleRtpEncryption> &rtpEncryption);
413 QList<QXmppJinglePayloadType> payloadTypes()
const;
414 void setPayloadTypes(
const QList<QXmppJinglePayloadType> &payloadTypes);
417 QList<QXmppJingleCandidate> transportCandidates()
const;
418 void setTransportCandidates(
const QList<QXmppJingleCandidate> &candidates);
420 QString transportUser()
const;
421 void setTransportUser(
const QString &user);
423 QString transportPassword()
const;
424 void setTransportPassword(
const QString &password);
426 QVector<QXmppJingleRtpFeedbackProperty> rtpFeedbackProperties()
const;
427 void setRtpFeedbackProperties(
const QVector<QXmppJingleRtpFeedbackProperty> &rtpFeedbackProperties);
429 QVector<QXmppJingleRtpFeedbackInterval> rtpFeedbackIntervals()
const;
430 void setRtpFeedbackIntervals(
const QVector<QXmppJingleRtpFeedbackInterval> &rtpFeedbackIntervals);
432 QVector<QXmppJingleRtpHeaderExtensionProperty> rtpHeaderExtensionProperties()
const;
433 void setRtpHeaderExtensionProperties(
const QVector<QXmppJingleRtpHeaderExtensionProperty> &rtpHeaderExtensionProperties);
435 bool isRtpHeaderExtensionMixingAllowed()
const;
436 void setRtpHeaderExtensionMixingAllowed(
bool isRtpHeaderExtensionMixingAllowed);
439 QByteArray transportFingerprint()
const;
440 void setTransportFingerprint(
const QByteArray &fingerprint);
442 QString transportFingerprintHash()
const;
443 void setTransportFingerprintHash(
const QString &hash);
445 QString transportFingerprintSetup()
const;
446 void setTransportFingerprintSetup(
const QString &setup);
449 void parse(
const QDomElement &element);
450 void toXml(QXmlStreamWriter *writer)
const;
452 bool parseSdp(
const QString &sdp);
453 QString toSdp()
const;
457 QSharedDataPointer<QXmppJingleIqContentPrivate> d;
465 class QXMPP_EXPORT Reason
481 IncompatibleParameters,
486 UnsupportedApplications,
487 UnsupportedTransports
490 enum RtpErrorCondition {
501 QString text()
const;
502 void setText(
const QString &text);
505 void setType(Type type);
507 RtpErrorCondition rtpErrorCondition()
const;
508 void setRtpErrorCondition(RtpErrorCondition rtpErrorCondition);
511 void parse(
const QDomElement &element);
512 void toXml(QXmlStreamWriter *writer)
const;
518 RtpErrorCondition m_rtpErrorCondition = NoErrorCondition;
530 void setAction(
Action action);
532 void addContent(
const Content &content);
533 QList<Content> contents()
const;
534 void setContents(
const QList<Content> &contents);
536 QString initiator()
const;
537 void setInitiator(
const QString &initiator);
540 const Reason &reason()
const;
542 QString responder()
const;
543 void setResponder(
const QString &responder);
545#if QXMPP_DEPRECATED_SINCE(1, 5)
546 QT_DEPRECATED_X(
"Use QXmpp::rtpSessionState() instead")
547 bool ringing() const;
548 QT_DEPRECATED_X("Use
QXmpp::setRtpSessionState() instead")
549 void setRinging(
bool ringing);
553 void setSid(
const QString &sid);
555 QString mujiGroupChatJid()
const;
556 void setMujiGroupChatJid(
const QString &mujiGroupChatJid);
558 std::optional<RtpSessionState> rtpSessionState()
const;
559 void setRtpSessionState(
const std::optional<RtpSessionState> &rtpSessionState);
562 static bool isJingleIq(
const QDomElement &element);
567 void parseElementFromChild(
const QDomElement &element)
override;
568 void toXmlElementFromChild(QXmlStreamWriter *writer)
const override;
572 QSharedDataPointer<QXmppJingleIqPrivate> d;
575Q_DECLARE_METATYPE(QXmppJingleIq::Reason::RtpErrorCondition)
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 QXmppJingleIq.h:245
QXmppJingleCandidate(QXmppJingleCandidate &&)
Move-constructor.
QXmppJingleCandidate & operator=(const QXmppJingleCandidate &other)
Assignment operator.
QXmppJingleCandidate & operator=(QXmppJingleCandidate &&)
Move-assignment operator.
QXmppJingleCandidate(const QXmppJingleCandidate &other)
Copy-constructor.
Type
This enum is used to describe a candidate's type.
Definition QXmppJingleIq.h:248
@ HostType
Host candidate, a local address/port.
Definition QXmppJingleIq.h:249
The QXmppJingleIq class represents an IQ used for initiating media sessions as specified by XEP-0166:...
Definition QXmppJingleIq.h:317
QXmppJingleIq & operator=(const QXmppJingleIq &other)
Assignment operator.
QXmppJingleIq & operator=(QXmppJingleIq &&)
Move-assignment operator.
QXmppJingleIq(QXmppJingleIq &&)
Move-constructor.
Action
This enum is used to describe a Jingle action.
Definition QXmppJingleIq.h:320
Creator
Definition QXmppJingleIq.h:338
@ Initiator
The initiator generated the content type.
Definition QXmppJingleIq.h:340
QXmppJingleIq(const QXmppJingleIq &other)
Copy-constructor.
std::variant< RtpSessionStateActive, RtpSessionStateHold, RtpSessionStateUnhold, RtpSessionStateMuting, RtpSessionStateRinging > RtpSessionState
Definition QXmppJingleIq.h:372
The QXmppJinglePayloadType class represents a payload type as specified by XEP-0167: Jingle RTP Sessi...
Definition QXmppJingleIq.h:195
The QXmppJingleRtpCryptoElement class represents the XEP-0167: Jingle RTP Sessions "crypto" element u...
Definition QXmppJingleIq.h:50
The QXmppJingleRtpEncryption class represents the XEP-0167: Jingle RTP Sessions "encryption" element ...
Definition QXmppJingleIq.h:80
The QXmppJingleRtpFeedbackInterval class represents the XEP-0293: Jingle RTP Feedback Negotiation "rt...
Definition QXmppJingleIq.h:131
The QXmppJingleRtpFeedbackProperty class represents the XEP-0293: Jingle RTP Feedback Negotiation "rt...
Definition QXmppJingleIq.h:104
The QXmppSdpParameter class represents a Session Description Protocol (SDP) parameter specified by RF...
Definition QXmppJingleIq.h:26
Definition QXmppJingleIq.h:346
Definition QXmppJingleIq.h:350
Definition QXmppJingleIq.h:358
QString name
Session to be muted (e.g., only audio or video)
Definition QXmppJingleIq.h:365
Creator creator
Creator of the corresponding session.
Definition QXmppJingleIq.h:363
Definition QXmppJingleIq.h:369
Definition QXmppJingleIq.h:354