14#include <QHostAddress>
16class QXmppJingleCandidatePrivate;
17class QXmppJingleDescriptionPrivate;
18class QXmppJingleIqContentPrivate;
19class QXmppJingleIqReasonPrivate;
20class QXmppJingleIqPrivate;
21class QXmppJinglePayloadTypePrivate;
22class QXmppJingleRtpCryptoElementPrivate;
23class QXmppJingleRtpEncryptionPrivate;
24class QXmppJingleRtpFeedbackPropertyPrivate;
25class QXmppJingleRtpHeaderExtensionPropertyPrivate;
26class QXmppSdpParameterPrivate;
27class QXmppJingleMessageInitiationElementPrivate;
28class QXmppCallInviteElementPrivate;
38 void setName(
const QString &name);
40 QString value()
const;
41 void setValue(
const QString &value);
44 void parse(
const QDomElement &element);
45 void toXml(QXmlStreamWriter *writer)
const;
48 static bool isSdpParameter(
const QDomElement &element);
51 QSharedDataPointer<QXmppSdpParameterPrivate> d;
62 void setTag(uint32_t tag);
64 QString cryptoSuite()
const;
65 void setCryptoSuite(
const QString &cryptoSuite);
67 QString keyParams()
const;
68 void setKeyParams(
const QString &keyParams);
70 QString sessionParams()
const;
71 void setSessionParams(
const QString &sessionParams);
74 void parse(
const QDomElement &element);
75 void toXml(QXmlStreamWriter *writer)
const;
78 static bool isJingleRtpCryptoElement(
const QDomElement &element);
81 QSharedDataPointer<QXmppJingleRtpCryptoElementPrivate> d;
91 bool isRequired()
const;
92 void setRequired(
bool isRequired);
94 QVector<QXmppJingleRtpCryptoElement> cryptoElements()
const;
95 void setCryptoElements(
const QVector<QXmppJingleRtpCryptoElement> &cryptoElements);
98 void parse(
const QDomElement &element);
99 void toXml(QXmlStreamWriter *writer)
const;
102 static bool isJingleRtpEncryption(
const QDomElement &element);
105 QSharedDataPointer<QXmppJingleRtpEncryptionPrivate> d;
115 QString type()
const;
116 void setType(
const QString &type);
118 QString subtype()
const;
119 void setSubtype(
const QString &subtype);
121 QVector<QXmppSdpParameter> parameters()
const;
122 void setParameters(
const QVector<QXmppSdpParameter> ¶meters);
125 void parse(
const QDomElement &element);
126 void toXml(QXmlStreamWriter *writer)
const;
129 static bool isJingleRtpFeedbackProperty(
const QDomElement &element);
132 QSharedDataPointer<QXmppJingleRtpFeedbackPropertyPrivate> d;
142 uint64_t value()
const;
143 void setValue(uint64_t value);
146 void parse(
const QDomElement &element);
147 void toXml(QXmlStreamWriter *writer)
const;
150 static bool isJingleRtpFeedbackInterval(
const QDomElement &element);
173 void setId(uint32_t
id);
176 void setUri(
const QString &uri);
178 Senders senders()
const;
179 void setSenders(Senders senders);
181 QVector<QXmppSdpParameter> parameters()
const;
182 void setParameters(
const QVector<QXmppSdpParameter> ¶meters);
185 void parse(
const QDomElement &element);
186 void toXml(QXmlStreamWriter *writer)
const;
189 static bool isJingleRtpHeaderExtensionProperty(
const QDomElement &element);
192 QSharedDataPointer<QXmppJingleRtpHeaderExtensionPropertyPrivate> d;
206 unsigned char channels()
const;
207 void setChannels(
unsigned char channels);
209 unsigned int clockrate()
const;
210 void setClockrate(
unsigned int clockrate);
212 unsigned char id()
const;
213 void setId(
unsigned char id);
215 unsigned int maxptime()
const;
216 void setMaxptime(
unsigned int maxptime);
218 QString name()
const;
219 void setName(
const QString &name);
221 QMap<QString, QString> parameters()
const;
222 void setParameters(
const QMap<QString, QString> ¶meters);
224 unsigned int ptime()
const;
225 void setPtime(
unsigned int ptime);
227 QVector<QXmppJingleRtpFeedbackProperty> rtpFeedbackProperties()
const;
228 void setRtpFeedbackProperties(
const QVector<QXmppJingleRtpFeedbackProperty> &rtpFeedbackProperties);
230 QVector<QXmppJingleRtpFeedbackInterval> rtpFeedbackIntervals()
const;
231 void setRtpFeedbackIntervals(
const QVector<QXmppJingleRtpFeedbackInterval> &rtpFeedbackIntervals);
234 void parse(
const QDomElement &element);
235 void toXml(QXmlStreamWriter *writer)
const;
242 QSharedDataPointer<QXmppJinglePayloadTypePrivate> d;
251 QString media()
const;
252 void setMedia(
const QString &media);
254 quint32 ssrc()
const;
255 void setSsrc(quint32 ssrc);
257 QString type()
const;
258 void setType(
const QString &type);
261 const QList<QXmppJinglePayloadType> &payloadTypes()
const;
262 void setPayloadTypes(
const QList<QXmppJinglePayloadType> &payloadTypes);
265 void parse(
const QDomElement &element);
266 void toXml(QXmlStreamWriter *writer)
const;
270 QSharedDataPointer<QXmppJingleDescriptionPrivate> d;
299 int component()
const;
300 void setComponent(
int component);
302 QString foundation()
const;
303 void setFoundation(
const QString &foundation);
305 int generation()
const;
306 void setGeneration(
int generation);
308 QHostAddress host()
const;
309 void setHost(
const QHostAddress &host);
312 void setId(
const QString &
id);
315 void setNetwork(
int network);
317 quint16 port()
const;
318 void setPort(quint16 port);
320 int priority()
const;
321 void setPriority(
int priority);
323 QString protocol()
const;
324 void setProtocol(
const QString &protocol);
332 void parse(
const QDomElement &element);
333 void toXml(QXmlStreamWriter *writer)
const;
340 QSharedDataPointer<QXmppJingleCandidatePrivate> d;
359 IncompatibleParameters,
364 UnsupportedApplications,
365 UnsupportedTransports
381 QString text()
const;
382 void setText(
const QString &text);
385 void setType(Type type);
387 RtpErrorCondition rtpErrorCondition()
const;
388 void setRtpErrorCondition(RtpErrorCondition rtpErrorCondition);
391 void parse(
const QDomElement &element);
392 void toXml(QXmlStreamWriter *writer)
const;
399 QSharedDataPointer<QXmppJingleIqReasonPrivate> d;
451 using RtpSessionState = std::variant<RtpSessionStateActive, RtpSessionStateHold, RtpSessionStateUnhold, RtpSessionStateMuting, RtpSessionStateRinging>;
461 class QXMPP_EXPORT Content
465 Content(
const QXmppJingleIq::Content &other);
466 Content(QXmppJingleIq::Content &&);
469 Content &operator=(
const Content &other);
470 Content &operator=(Content &&);
472 QString creator()
const;
473 void setCreator(
const QString &creator);
475 QString name()
const;
476 void setName(
const QString &name);
478 QString senders()
const;
479 void setSenders(
const QString &senders);
485#if QXMPP_DEPRECATED_SINCE(1, 6)
486 QString descriptionMedia()
const;
487 void setDescriptionMedia(
const QString &media);
489 quint32 descriptionSsrc()
const;
490 void setDescriptionSsrc(quint32 ssrc);
493 QList<QXmppJinglePayloadType> payloadTypes()
const;
494 void setPayloadTypes(
const QList<QXmppJinglePayloadType> &payloadTypes);
497 bool isRtpMultiplexingSupported()
const;
498 void setRtpMultiplexingSupported(
bool isRtpMultiplexingSupported);
500 std::optional<QXmppJingleRtpEncryption> rtpEncryption()
const;
501 void setRtpEncryption(
const std::optional<QXmppJingleRtpEncryption> &rtpEncryption);
504 QList<QXmppJingleCandidate> transportCandidates()
const;
505 void setTransportCandidates(
const QList<QXmppJingleCandidate> &candidates);
507 QString transportUser()
const;
508 void setTransportUser(
const QString &user);
510 QString transportPassword()
const;
511 void setTransportPassword(
const QString &password);
513 QVector<QXmppJingleRtpFeedbackProperty> rtpFeedbackProperties()
const;
514 void setRtpFeedbackProperties(
const QVector<QXmppJingleRtpFeedbackProperty> &rtpFeedbackProperties);
516 QVector<QXmppJingleRtpFeedbackInterval> rtpFeedbackIntervals()
const;
517 void setRtpFeedbackIntervals(
const QVector<QXmppJingleRtpFeedbackInterval> &rtpFeedbackIntervals);
519 QVector<QXmppJingleRtpHeaderExtensionProperty> rtpHeaderExtensionProperties()
const;
520 void setRtpHeaderExtensionProperties(
const QVector<QXmppJingleRtpHeaderExtensionProperty> &rtpHeaderExtensionProperties);
522 bool isRtpHeaderExtensionMixingAllowed()
const;
523 void setRtpHeaderExtensionMixingAllowed(
bool isRtpHeaderExtensionMixingAllowed);
526 QByteArray transportFingerprint()
const;
527 void setTransportFingerprint(
const QByteArray &fingerprint);
529 QString transportFingerprintHash()
const;
530 void setTransportFingerprintHash(
const QString &hash);
532 QString transportFingerprintSetup()
const;
533 void setTransportFingerprintSetup(
const QString &setup);
536 void parse(
const QDomElement &element);
537 void toXml(QXmlStreamWriter *writer)
const;
539 bool parseSdp(
const QString &sdp);
540 QString toSdp()
const;
544 QSharedDataPointer<QXmppJingleIqContentPrivate> d;
556 void setAction(
Action action);
558 void addContent(
const Content &content);
559 QList<Content> contents()
const;
560 void setContents(
const QList<Content> &contents);
562 QString initiator()
const;
563 void setInitiator(
const QString &initiator);
568 QString responder()
const;
569 void setResponder(
const QString &responder);
571#if QXMPP_DEPRECATED_SINCE(1, 5)
572 QT_DEPRECATED_X(
"Use QXmpp::rtpSessionState() instead")
573 bool ringing() const;
574 QT_DEPRECATED_X("Use
QXmpp::setRtpSessionState() instead")
575 void setRinging(
bool ringing);
579 void setSid(
const QString &sid);
581 QString mujiGroupChatJid()
const;
582 void setMujiGroupChatJid(
const QString &mujiGroupChatJid);
584 std::optional<RtpSessionState> rtpSessionState()
const;
585 void setRtpSessionState(
const std::optional<RtpSessionState> &rtpSessionState);
588 static bool isJingleIq(
const QDomElement &element);
593 void parseElementFromChild(
const QDomElement &element)
override;
594 void toXmlElementFromChild(QXmlStreamWriter *writer)
const override;
598 QSharedDataPointer<QXmppJingleIqPrivate> d;
618 void setType(Type type);
621 void setId(
const QString &
id);
623 std::optional<QXmppJingleDescription> description()
const;
624 void setDescription(std::optional<QXmppJingleDescription> description);
626 std::optional<QXmppJingleReason> reason()
const;
627 void setReason(std::optional<QXmppJingleReason> reason);
629 bool containsTieBreak()
const;
630 void setContainsTieBreak(
bool containsTieBreak);
632 QString migratedTo()
const;
633 void setMigratedTo(
const QString &migratedTo);
636 void parse(
const QDomElement &element);
637 void toXml(QXmlStreamWriter *writer)
const;
640 static bool isJingleMessageInitiationElement(
const QDomElement &);
641 static QString jmiElementTypeToString(Type type);
642 static std::optional<Type> stringToJmiElementType(
const QString &typeStr);
645 QSharedDataPointer<QXmppJingleMessageInitiationElementPrivate> d;
662 std::optional<QString> jid;
664 bool operator==(
const Jingle &other)
const {
return other.sid == sid && other.jid == jid; }
666 void parse(
const QDomElement &element);
667 void toXml(QXmlStreamWriter *writer)
const;
673 bool operator==(
const External &other)
const {
return other.uri == uri; }
675 void toXml(QXmlStreamWriter *writer)
const;
682 void setType(Type type);
685 void setId(
const QString &
id);
688 void setAudio(
bool audio);
691 void setVideo(
bool video);
693 std::optional<Jingle> jingle()
const;
694 void setJingle(std::optional<Jingle> jingle);
696 std::optional<QVector<External>> external()
const;
697 void setExternal(std::optional<QVector<External>> external);
700 void parse(
const QDomElement &element);
701 void toXml(QXmlStreamWriter *writer)
const;
704 static bool isCallInviteElement(
const QDomElement &);
707 static QString callInviteElementTypeToString(Type type);
708 static std::optional<Type> stringToCallInviteElementType(
const QString &typeStr);
710 QSharedDataPointer<QXmppCallInviteElementPrivate> d;
The QXmppCallInviteElement class represents a Call Invite element as specified by XEP-0482: Call Invi...
Definition: QXmppJingleData.h:649
Type
Definition: QXmppJingleData.h:651
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:278
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: QXmppJingleData.h:281
@ HostType
Host candidate, a local address/port.
Definition: QXmppJingleData.h:282
The QXmppJingleDescription class represents descriptions for Jingle elements including media type,...
Definition: QXmppJingleData.h:246
The QXmppJingleIq class represents an IQ used for initiating media sessions as specified by XEP-0166:...
Definition: QXmppJingleData.h:409
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: QXmppJingleData.h:412
Creator
Definition: QXmppJingleData.h:430
@ Initiator
The initiator generated the content type.
Definition: QXmppJingleData.h:432
QXmppJingleIq(const QXmppJingleIq &other)
Copy-constructor.
std::variant< RtpSessionStateActive, RtpSessionStateHold, RtpSessionStateUnhold, RtpSessionStateMuting, RtpSessionStateRinging > RtpSessionState
Definition: QXmppJingleData.h:451
The QXmppJingleMessageInitiationElement class represents a Jingle Message Initiation element as speci...
Definition: QXmppJingleData.h:602
Type
Definition: QXmppJingleData.h:604
The QXmppJinglePayloadType class represents a payload type as specified by XEP-0167: Jingle RTP Sessi...
Definition: QXmppJingleData.h:200
Definition: QXmppJingleData.h:344
Type
This enum is used to describe a reason's type.
Definition: QXmppJingleData.h:347
RtpErrorCondition
Definition: QXmppJingleData.h:370
@ InvalidCrypto
The encryption offer is rejected.
Definition: QXmppJingleData.h:374
@ NoErrorCondition
There is no error condition.
Definition: QXmppJingleData.h:372
The QXmppJingleRtpCryptoElement class represents the XEP-0167: Jingle RTP Sessions "crypto" element u...
Definition: QXmppJingleData.h:55
The QXmppJingleRtpEncryption class represents the XEP-0167: Jingle RTP Sessions "encryption" element ...
Definition: QXmppJingleData.h:85
The QXmppJingleRtpFeedbackInterval class represents the XEP-0293: Jingle RTP Feedback Negotiation "rt...
Definition: QXmppJingleData.h:136
The QXmppJingleRtpFeedbackProperty class represents the XEP-0293: Jingle RTP Feedback Negotiation "rt...
Definition: QXmppJingleData.h:109
The QXmppSdpParameter class represents a Session Description Protocol (SDP) parameter specified by RF...
Definition: QXmppJingleData.h:31
Definition: Algorithms.h:12
Definition: QXmppJingleData.h:437
Definition: QXmppJingleData.h:438
Definition: QXmppJingleData.h:440
QString name
Session to be muted (e.g., only audio or video)
Definition: QXmppJingleData.h:447
Creator creator
Creator of the corresponding session.
Definition: QXmppJingleData.h:445
Definition: QXmppJingleData.h:449
Definition: QXmppJingleData.h:439