QXmpp Version: 1.10.3
 
Loading...
Searching...
No Matches
QXmppJingleData.h
1// SPDX-FileCopyrightText: 2010 Jeremy Lainé <jeremy.laine@m4x.org>
2// SPDX-FileCopyrightText: 2022 Melvin Keskin <melvo@olomono.de>
3// SPDX-FileCopyrightText: 2023 Tibor Csötönyi <work@taibsu.de>
4//
5// SPDX-License-Identifier: LGPL-2.1-or-later
6
7#ifndef QXMPPJINGLEIQ_H
8#define QXMPPJINGLEIQ_H
9
10#include "QXmppIq.h"
11
12#include <variant>
13
14#include <QHostAddress>
15
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;
29
30class QXMPP_EXPORT QXmppSdpParameter
31{
32public:
34
35 QXMPP_PRIVATE_DECLARE_RULE_OF_SIX(QXmppSdpParameter)
36
37 QString name() const;
38 void setName(const QString &name);
39
40 QString value() const;
41 void setValue(const QString &value);
42
44 void parse(const QDomElement &element);
45 void toXml(QXmlStreamWriter *writer) const;
47
48 static bool isSdpParameter(const QDomElement &element);
49
50private:
51 QSharedDataPointer<QXmppSdpParameterPrivate> d;
52};
53
55{
56public:
58
59 QXMPP_PRIVATE_DECLARE_RULE_OF_SIX(QXmppJingleRtpCryptoElement)
60
61 uint32_t tag() const;
62 void setTag(uint32_t tag);
63
64 QString cryptoSuite() const;
65 void setCryptoSuite(const QString &cryptoSuite);
66
67 QString keyParams() const;
68 void setKeyParams(const QString &keyParams);
69
70 QString sessionParams() const;
71 void setSessionParams(const QString &sessionParams);
72
74 void parse(const QDomElement &element);
75 void toXml(QXmlStreamWriter *writer) const;
77
78 static bool isJingleRtpCryptoElement(const QDomElement &element);
79
80private:
81 QSharedDataPointer<QXmppJingleRtpCryptoElementPrivate> d;
82};
83
84class QXMPP_EXPORT QXmppJingleRtpEncryption
85{
86public:
88
89 QXMPP_PRIVATE_DECLARE_RULE_OF_SIX(QXmppJingleRtpEncryption)
90
91 bool isRequired() const;
92 void setRequired(bool isRequired);
93
94 QVector<QXmppJingleRtpCryptoElement> cryptoElements() const;
95 void setCryptoElements(const QVector<QXmppJingleRtpCryptoElement> &cryptoElements);
96
98 void parse(const QDomElement &element);
99 void toXml(QXmlStreamWriter *writer) const;
101
102 static bool isJingleRtpEncryption(const QDomElement &element);
103
104private:
105 QSharedDataPointer<QXmppJingleRtpEncryptionPrivate> d;
106};
107
109{
110public:
112
113 QXMPP_PRIVATE_DECLARE_RULE_OF_SIX(QXmppJingleRtpFeedbackProperty)
114
115 QString type() const;
116 void setType(const QString &type);
117
118 QString subtype() const;
119 void setSubtype(const QString &subtype);
120
121 QVector<QXmppSdpParameter> parameters() const;
122 void setParameters(const QVector<QXmppSdpParameter> &parameters);
123
125 void parse(const QDomElement &element);
126 void toXml(QXmlStreamWriter *writer) const;
128
129 static bool isJingleRtpFeedbackProperty(const QDomElement &element);
130
131private:
132 QSharedDataPointer<QXmppJingleRtpFeedbackPropertyPrivate> d;
133};
134
136{
137public:
139
140 QXMPP_PRIVATE_DECLARE_RULE_OF_SIX(QXmppJingleRtpFeedbackInterval)
141
142 uint64_t value() const;
143 void setValue(uint64_t value);
144
146 void parse(const QDomElement &element);
147 void toXml(QXmlStreamWriter *writer) const;
149
150 static bool isJingleRtpFeedbackInterval(const QDomElement &element);
151
152private:
153 uint64_t m_value;
154};
155
157{
158public:
167
169
170 QXMPP_PRIVATE_DECLARE_RULE_OF_SIX(QXmppJingleRtpHeaderExtensionProperty)
171
172 uint32_t id() const;
173 void setId(uint32_t id);
174
175 QString uri() const;
176 void setUri(const QString &uri);
177
178 Senders senders() const;
179 void setSenders(Senders senders);
180
181 QVector<QXmppSdpParameter> parameters() const;
182 void setParameters(const QVector<QXmppSdpParameter> &parameters);
183
185 void parse(const QDomElement &element);
186 void toXml(QXmlStreamWriter *writer) const;
188
189 static bool isJingleRtpHeaderExtensionProperty(const QDomElement &element);
190
191private:
192 QSharedDataPointer<QXmppJingleRtpHeaderExtensionPropertyPrivate> d;
193};
194
199class QXMPP_EXPORT QXmppJinglePayloadType
200{
201public:
202 QXmppJinglePayloadType();
203 QXmppJinglePayloadType(const QXmppJinglePayloadType &other);
204 ~QXmppJinglePayloadType();
205
206 unsigned char channels() const;
207 void setChannels(unsigned char channels);
208
209 unsigned int clockrate() const;
210 void setClockrate(unsigned int clockrate);
211
212 unsigned char id() const;
213 void setId(unsigned char id);
214
215 unsigned int maxptime() const;
216 void setMaxptime(unsigned int maxptime);
217
218 QString name() const;
219 void setName(const QString &name);
220
221 QMap<QString, QString> parameters() const;
222 void setParameters(const QMap<QString, QString> &parameters);
223
224 unsigned int ptime() const;
225 void setPtime(unsigned int ptime);
226
227 QVector<QXmppJingleRtpFeedbackProperty> rtpFeedbackProperties() const;
228 void setRtpFeedbackProperties(const QVector<QXmppJingleRtpFeedbackProperty> &rtpFeedbackProperties);
229
230 QVector<QXmppJingleRtpFeedbackInterval> rtpFeedbackIntervals() const;
231 void setRtpFeedbackIntervals(const QVector<QXmppJingleRtpFeedbackInterval> &rtpFeedbackIntervals);
232
234 void parse(const QDomElement &element);
235 void toXml(QXmlStreamWriter *writer) const;
237
238 QXmppJinglePayloadType &operator=(const QXmppJinglePayloadType &other);
239 bool operator==(const QXmppJinglePayloadType &other) const;
240
241private:
242 QSharedDataPointer<QXmppJinglePayloadTypePrivate> d;
243};
244
245class QXMPP_EXPORT QXmppJingleDescription
246{
247public:
248 QXmppJingleDescription();
249 QXMPP_PRIVATE_DECLARE_RULE_OF_SIX(QXmppJingleDescription)
250
251 QString media() const;
252 void setMedia(const QString &media);
253
254 quint32 ssrc() const;
255 void setSsrc(quint32 ssrc);
256
257 QString type() const;
258 void setType(const QString &type);
259
260 void addPayloadType(const QXmppJinglePayloadType &payload);
261 const QList<QXmppJinglePayloadType> &payloadTypes() const;
262 void setPayloadTypes(const QList<QXmppJinglePayloadType> &payloadTypes);
263
265 void parse(const QDomElement &element);
266 void toXml(QXmlStreamWriter *writer) const;
268
269private:
270 QSharedDataPointer<QXmppJingleDescriptionPrivate> d;
271};
272
277class QXMPP_EXPORT QXmppJingleCandidate
278{
279public:
290
295
298
299 int component() const;
300 void setComponent(int component);
301
302 QString foundation() const;
303 void setFoundation(const QString &foundation);
304
305 int generation() const;
306 void setGeneration(int generation);
307
308 QHostAddress host() const;
309 void setHost(const QHostAddress &host);
310
311 QString id() const;
312 void setId(const QString &id);
313
314 int network() const;
315 void setNetwork(int network);
316
317 quint16 port() const;
318 void setPort(quint16 port);
319
320 int priority() const;
321 void setPriority(int priority);
322
323 QString protocol() const;
324 void setProtocol(const QString &protocol);
325
328
329 bool isNull() const;
330
332 void parse(const QDomElement &element);
333 void toXml(QXmlStreamWriter *writer) const;
334
335 static QXmppJingleCandidate::Type typeFromString(const QString &typeStr, bool *ok = nullptr);
336 static QString typeToString(QXmppJingleCandidate::Type type);
338
339private:
340 QSharedDataPointer<QXmppJingleCandidatePrivate> d;
341};
342
343class QXMPP_EXPORT QXmppJingleReason
344{
345public:
347 enum Type {
348 None,
349 AlternativeSession,
350 Busy,
351 Cancel,
352 ConnectivityError,
353 Decline,
354 Expired,
355 FailedApplication,
356 FailedTransport,
357 GeneralError,
358 Gone,
359 IncompatibleParameters,
360 MediaError,
361 SecurityError,
362 Success,
363 Timeout,
364 UnsupportedApplications,
365 UnsupportedTransports
366 };
367
378
380
381 QString text() const;
382 void setText(const QString &text);
383
384 Type type() const;
385 void setType(Type type);
386
387 RtpErrorCondition rtpErrorCondition() const;
388 void setRtpErrorCondition(RtpErrorCondition rtpErrorCondition);
389
391 void parse(const QDomElement &element);
392 void toXml(QXmlStreamWriter *writer) const;
393
395
396 QXMPP_PRIVATE_DECLARE_RULE_OF_SIX(QXmppJingleReason)
397
398private:
399 QSharedDataPointer<QXmppJingleIqReasonPrivate> d;
400};
401
408class QXMPP_EXPORT QXmppJingleIq : public QXmppIq
409{
410public:
412 enum Action {
413 ContentAccept,
414 ContentAdd,
415 ContentModify,
416 ContentReject,
417 ContentRemove,
418 DescriptionInfo,
419 SecurityInfo,
420 SessionAccept,
421 SessionInfo,
422 SessionInitiate,
423 SessionTerminate,
424 TransportAccept,
425 TransportInfo,
426 TransportReject,
427 TransportReplace
428 };
429
436
443 bool isMute = true;
447 QString name;
448 };
450
451 using RtpSessionState = std::variant<RtpSessionStateActive, RtpSessionStateHold, RtpSessionStateUnhold, RtpSessionStateMuting, RtpSessionStateRinging>;
452
455
461 class QXMPP_EXPORT Content
462 {
463 public:
464 Content();
465 Content(const QXmppJingleIq::Content &other);
466 Content(QXmppJingleIq::Content &&);
467 ~Content();
468
469 Content &operator=(const Content &other);
470 Content &operator=(Content &&);
471
472 QString creator() const;
473 void setCreator(const QString &creator);
474
475 QString name() const;
476 void setName(const QString &name);
477
478 QString senders() const;
479 void setSenders(const QString &senders);
480
481 // XEP-0167: Jingle RTP Sessions
482 QXmppJingleDescription description() const;
483 void setDescription(const QXmppJingleDescription &description);
484
485#if QXMPP_DEPRECATED_SINCE(1, 6)
486 QString descriptionMedia() const;
487 void setDescriptionMedia(const QString &media);
488
489 quint32 descriptionSsrc() const;
490 void setDescriptionSsrc(quint32 ssrc);
491
492 void addPayloadType(const QXmppJinglePayloadType &payload);
493 QList<QXmppJinglePayloadType> payloadTypes() const;
494 void setPayloadTypes(const QList<QXmppJinglePayloadType> &payloadTypes);
495#endif
496
497 bool isRtpMultiplexingSupported() const;
498 void setRtpMultiplexingSupported(bool isRtpMultiplexingSupported);
499
500 std::optional<QXmppJingleRtpEncryption> rtpEncryption() const;
501 void setRtpEncryption(const std::optional<QXmppJingleRtpEncryption> &rtpEncryption);
502
503 void addTransportCandidate(const QXmppJingleCandidate &candidate);
504 QList<QXmppJingleCandidate> transportCandidates() const;
505 void setTransportCandidates(const QList<QXmppJingleCandidate> &candidates);
506
507 QString transportUser() const;
508 void setTransportUser(const QString &user);
509
510 QString transportPassword() const;
511 void setTransportPassword(const QString &password);
512
513 QVector<QXmppJingleRtpFeedbackProperty> rtpFeedbackProperties() const;
514 void setRtpFeedbackProperties(const QVector<QXmppJingleRtpFeedbackProperty> &rtpFeedbackProperties);
515
516 QVector<QXmppJingleRtpFeedbackInterval> rtpFeedbackIntervals() const;
517 void setRtpFeedbackIntervals(const QVector<QXmppJingleRtpFeedbackInterval> &rtpFeedbackIntervals);
518
519 QVector<QXmppJingleRtpHeaderExtensionProperty> rtpHeaderExtensionProperties() const;
520 void setRtpHeaderExtensionProperties(const QVector<QXmppJingleRtpHeaderExtensionProperty> &rtpHeaderExtensionProperties);
521
522 bool isRtpHeaderExtensionMixingAllowed() const;
523 void setRtpHeaderExtensionMixingAllowed(bool isRtpHeaderExtensionMixingAllowed);
524
525 // XEP-0320: Use of DTLS-SRTP in Jingle Sessions
526 QByteArray transportFingerprint() const;
527 void setTransportFingerprint(const QByteArray &fingerprint);
528
529 QString transportFingerprintHash() const;
530 void setTransportFingerprintHash(const QString &hash);
531
532 QString transportFingerprintSetup() const;
533 void setTransportFingerprintSetup(const QString &setup);
534
536 void parse(const QDomElement &element);
537 void toXml(QXmlStreamWriter *writer) const;
538
539 bool parseSdp(const QString &sdp);
540 QString toSdp() const;
542
543 private:
544 QSharedDataPointer<QXmppJingleIqContentPrivate> d;
545 };
546
550 ~QXmppJingleIq() override;
551
554
555 Action action() const;
556 void setAction(Action action);
557
558 void addContent(const Content &content);
559 QList<Content> contents() const;
560 void setContents(const QList<Content> &contents);
561
562 QString initiator() const;
563 void setInitiator(const QString &initiator);
564
566 const QXmppJingleReason &reason() const;
567
568 QString responder() const;
569 void setResponder(const QString &responder);
570
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);
576#endif
577
578 QString sid() const;
579 void setSid(const QString &sid);
580
581 QString mujiGroupChatJid() const;
582 void setMujiGroupChatJid(const QString &mujiGroupChatJid);
583
584 std::optional<RtpSessionState> rtpSessionState() const;
585 void setRtpSessionState(const std::optional<RtpSessionState> &rtpSessionState);
586
588 static bool isJingleIq(const QDomElement &element);
590
591protected:
593 void parseElementFromChild(const QDomElement &element) override;
594 void toXmlElementFromChild(QXmlStreamWriter *writer) const override;
596
597private:
598 QSharedDataPointer<QXmppJingleIqPrivate> d;
599};
600
602{
603public:
604 enum class Type {
605 None,
606 Propose,
607 Ringing,
608 Proceed,
609 Reject,
610 Retract,
611 Finish
612 };
613
615 QXMPP_PRIVATE_DECLARE_RULE_OF_SIX(QXmppJingleMessageInitiationElement)
616
617 Type type() const;
618 void setType(Type type);
619
620 QString id() const;
621 void setId(const QString &id);
622
623 std::optional<QXmppJingleDescription> description() const;
624 void setDescription(std::optional<QXmppJingleDescription> description);
625
626 std::optional<QXmppJingleReason> reason() const;
627 void setReason(std::optional<QXmppJingleReason> reason);
628
629 bool containsTieBreak() const;
630 void setContainsTieBreak(bool containsTieBreak);
631
632 QString migratedTo() const;
633 void setMigratedTo(const QString &migratedTo);
634
636 void parse(const QDomElement &element);
637 void toXml(QXmlStreamWriter *writer) const;
639
640 static bool isJingleMessageInitiationElement(const QDomElement &);
641 static QString jmiElementTypeToString(Type type);
642 static std::optional<Type> stringToJmiElementType(const QString &typeStr);
643
644private:
645 QSharedDataPointer<QXmppJingleMessageInitiationElementPrivate> d;
646};
647
648class QXMPP_EXPORT QXmppCallInviteElement
649{
650public:
651 enum class Type {
652 None,
653 Invite,
654 Retract,
655 Accept,
656 Reject,
657 Left
658 };
659
660 struct Jingle {
661 QString sid;
662 std::optional<QString> jid;
663
664 bool operator==(const Jingle &other) const { return other.sid == sid && other.jid == jid; }
665
666 void parse(const QDomElement &element);
667 void toXml(QXmlStreamWriter *writer) const;
668 };
669
670 struct External {
671 QString uri;
672
673 bool operator==(const External &other) const { return other.uri == uri; }
674
675 void toXml(QXmlStreamWriter *writer) const;
676 };
677
678 QXmppCallInviteElement();
679 QXMPP_PRIVATE_DECLARE_RULE_OF_SIX(QXmppCallInviteElement)
680
681 Type type() const;
682 void setType(Type type);
683
684 QString id() const;
685 void setId(const QString &id);
686
687 bool audio() const;
688 void setAudio(bool audio);
689
690 bool video() const;
691 void setVideo(bool video);
692
693 std::optional<Jingle> jingle() const;
694 void setJingle(std::optional<Jingle> jingle);
695
696 std::optional<QVector<External>> external() const;
697 void setExternal(std::optional<QVector<External>> external);
698
700 void parse(const QDomElement &element);
701 void toXml(QXmlStreamWriter *writer) const;
703
704 static bool isCallInviteElement(const QDomElement &);
705
706private:
707 static QString callInviteElementTypeToString(Type type);
708 static std::optional<Type> stringToCallInviteElementType(const QString &typeStr);
709
710 QSharedDataPointer<QXmppCallInviteElementPrivate> d;
711};
712
713Q_DECLARE_METATYPE(QXmppJingleReason::RtpErrorCondition)
714
715#endif
Type
Definition QXmppJingleData.h:651
QXmppCallInviteElement()
Constructs a Call Invite element.
Definition QXmppJingleData.cpp:3145
QXmppIq(QXmppIq::Type type=QXmppIq::Get)
Definition QXmppIq.cpp:34
The QXmppJingleCandidate class represents a transport candidate as specified by XEP-0176: Jingle ICE-...
Definition QXmppJingleData.h:278
void setFoundation(const QString &foundation)
Definition QXmppJingleData.cpp:1551
int network() const
Returns the network index (starting at 0) the candidate is on.
Definition QXmppJingleData.cpp:1605
QXmppJingleCandidate(QXmppJingleCandidate &&)
Move-constructor.
void setId(const QString &id)
Sets the candidate's unique identifier.
Definition QXmppJingleData.cpp:1599
int generation() const
Definition QXmppJingleData.cpp:1561
QXmppJingleCandidate::Type type() const
Returns the candidate type (e.g. "host").
Definition QXmppJingleData.cpp:1653
int priority() const
Returns the candidate's priority.
Definition QXmppJingleData.cpp:1629
QXmppJingleCandidate & operator=(const QXmppJingleCandidate &other)
Assignment operator.
QXmppJingleCandidate & operator=(QXmppJingleCandidate &&)
Move-assignment operator.
void setPort(quint16 port)
Sets the candidate's port number.
Definition QXmppJingleData.cpp:1623
QXmppJingleCandidate(const QXmppJingleCandidate &other)
Copy-constructor.
void setProtocol(const QString &protocol)
Sets the candidate's protocol (e.g. "udp").
Definition QXmppJingleData.cpp:1647
bool isNull() const
Returns true if the host address or port are empty.
Definition QXmppJingleData.cpp:1665
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
@ PeerReflexiveType
Definition QXmppJingleData.h:283
@ RelayedType
Definition QXmppJingleData.h:287
@ ServerReflexiveType
Definition QXmppJingleData.h:285
void setGeneration(int generation)
Definition QXmppJingleData.cpp:1573
void setType(QXmppJingleCandidate::Type)
Sets the candidate type (e.g. "host").
Definition QXmppJingleData.cpp:1659
void setComponent(int component)
Sets the candidates's component ID.
Definition QXmppJingleData.cpp:1529
QHostAddress host() const
Definition QXmppJingleData.cpp:1581
QString protocol() const
Returns the candidate's protocol (e.g. "udp").
Definition QXmppJingleData.cpp:1641
QXmppJingleCandidate()
Definition QXmppJingleData.cpp:1507
void setHost(const QHostAddress &host)
Sets the candidate's host address.
Definition QXmppJingleData.cpp:1587
int component() const
Returns the candidate's component ID.
Definition QXmppJingleData.cpp:1523
quint16 port() const
Returns the candidate's port number.
Definition QXmppJingleData.cpp:1617
void setPriority(int priority)
Sets the candidate's priority.
Definition QXmppJingleData.cpp:1635
QString foundation() const
Definition QXmppJingleData.cpp:1539
void setNetwork(int network)
Sets the network index (starting at 0) the candidate is on.
Definition QXmppJingleData.cpp:1611
QString id() const
Returns the candidate's unique identifier.
Definition QXmppJingleData.cpp:1593
The QXmppJingleDescription class represents descriptions for Jingle elements including media type,...
Definition QXmppJingleData.h:246
void setPayloadTypes(const QList< QXmppJinglePayloadType > &payloadTypes)
Definition QXmppJingleData.cpp:2082
quint32 ssrc() const
Definition QXmppJingleData.cpp:2033
const QList< QXmppJinglePayloadType > & payloadTypes() const
Definition QXmppJingleData.cpp:2074
void setType(const QString &type)
Definition QXmppJingleData.cpp:2057
void setSsrc(quint32 ssrc)
Definition QXmppJingleData.cpp:2041
QString media() const
Definition QXmppJingleData.cpp:2017
QString type() const
Definition QXmppJingleData.cpp:2049
void setMedia(const QString &media)
Definition QXmppJingleData.cpp:2025
void addPayloadType(const QXmppJinglePayloadType &payload)
Definition QXmppJingleData.cpp:2065
The QXmppJingleIq class represents an IQ used for initiating media sessions as specified by XEP-0166:...
Definition QXmppJingleData.h:409
QString responder() const
Returns the session responder.
Definition QXmppJingleData.cpp:1248
void setSid(const QString &sid)
Sets the session ID.
Definition QXmppJingleData.cpp:1298
void setRinging(bool ringing)
Definition QXmppJingleData.cpp:1282
void addContent(const Content &content)
Definition QXmppJingleData.cpp:1198
QXmppJingleIq & operator=(const QXmppJingleIq &other)
Assignment operator.
void setContents(const QList< Content > &contents)
Definition QXmppJingleData.cpp:1218
void setResponder(const QString &responder)
Sets the session responder.
Definition QXmppJingleData.cpp:1254
std::variant< RtpSessionStateActive, RtpSessionStateHold, RtpSessionStateUnhold, RtpSessionStateMuting, RtpSessionStateRinging > RtpSessionState
Definition QXmppJingleData.h:451
QXmppJingleIq & operator=(QXmppJingleIq &&)
Move-assignment operator.
Action action() const
Definition QXmppJingleData.cpp:1179
QXmppJingleIq(QXmppJingleIq &&)
Move-constructor.
QString sid() const
Returns the session ID.
Definition QXmppJingleData.cpp:1292
void setAction(Action action)
Definition QXmppJingleData.cpp:1188
std::optional< RtpSessionState > rtpSessionState() const
Definition QXmppJingleData.cpp:1335
QList< Content > contents() const
Definition QXmppJingleData.cpp:1208
QString mujiGroupChatJid() const
Definition QXmppJingleData.cpp:1310
bool ringing() const
Definition QXmppJingleData.cpp:1265
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
@ Responder
The responder generated the content type.
Definition QXmppJingleData.h:434
QString initiator() const
Returns the session initiator.
Definition QXmppJingleData.cpp:1224
QXmppJingleReason Reason
Alias to QXmppJingleReason for compatibility.
Definition QXmppJingleData.h:454
void setInitiator(const QString &initiator)
Sets the session initiator.
Definition QXmppJingleData.cpp:1230
QXmppJingleIq()
Constructs a QXmppJingleIq.
Definition QXmppJingleData.cpp:1159
QXmppJingleIq(const QXmppJingleIq &other)
Copy-constructor.
void setMujiGroupChatJid(const QString &mujiGroupChatJid)
Definition QXmppJingleData.cpp:1322
void setRtpSessionState(const std::optional< RtpSessionState > &rtpSessionState)
Definition QXmppJingleData.cpp:1351
QXmppJingleReason & reason()
Returns a reference to the IQ's reason element.
Definition QXmppJingleData.cpp:1236
The QXmppJingleMessageInitiationElement class represents a Jingle Message Initiation element as speci...
Definition QXmppJingleData.h:602
QXmppJingleMessageInitiationElement()
Constructs a Jingle Message Initiation element.
Definition QXmppJingleData.cpp:2878
Type
Definition QXmppJingleData.h:604
The QXmppJinglePayloadType class represents a payload type as specified by XEP-0167: Jingle RTP Sessi...
Definition QXmppJingleData.h:200
void setRtpFeedbackIntervals(const QVector< QXmppJingleRtpFeedbackInterval > &rtpFeedbackIntervals)
Definition QXmppJingleData.cpp:1908
unsigned char id() const
Returns the payload type identifier.
Definition QXmppJingleData.cpp:1809
void setClockrate(unsigned int clockrate)
Sets the clockrate in Hz, i.e. the number of samples per second.
Definition QXmppJingleData.cpp:1803
unsigned char channels() const
Returns the number of channels (e.g. 1 for mono, 2 for stereo).
Definition QXmppJingleData.cpp:1785
unsigned int ptime() const
Returns the packet time in milliseconds (20 by default).
Definition QXmppJingleData.cpp:1858
void setParameters(const QMap< QString, QString > &parameters)
Sets the payload parameters.
Definition QXmppJingleData.cpp:1852
unsigned int maxptime() const
Returns the maximum packet time in milliseconds.
Definition QXmppJingleData.cpp:1822
void setId(unsigned char id)
Sets the payload type identifier.
Definition QXmppJingleData.cpp:1815
void setPtime(unsigned int ptime)
Sets the packet time in milliseconds (20 by default).
Definition QXmppJingleData.cpp:1864
QXmppJinglePayloadType & operator=(const QXmppJinglePayloadType &other)
Definition QXmppJingleData.cpp:1965
void setMaxptime(unsigned int maxptime)
Sets the maximum packet type in milliseconds.
Definition QXmppJingleData.cpp:1828
bool operator==(const QXmppJinglePayloadType &other) const
Definition QXmppJingleData.cpp:1975
void setRtpFeedbackProperties(const QVector< QXmppJingleRtpFeedbackProperty > &rtpFeedbackProperties)
Definition QXmppJingleData.cpp:1888
QVector< QXmppJingleRtpFeedbackProperty > rtpFeedbackProperties() const
Definition QXmppJingleData.cpp:1876
void setChannels(unsigned char channels)
Sets the number of channels (e.g. 1 for mono, 2 for stereo).
Definition QXmppJingleData.cpp:1791
QMap< QString, QString > parameters() const
Returns the payload parameters.
Definition QXmppJingleData.cpp:1846
QString name() const
Returns the payload type name.
Definition QXmppJingleData.cpp:1834
void setName(const QString &name)
Sets the payload type name.
Definition QXmppJingleData.cpp:1840
unsigned int clockrate() const
Returns the clockrate in Hz, i.e. the number of samples per second.
Definition QXmppJingleData.cpp:1797
QVector< QXmppJingleRtpFeedbackInterval > rtpFeedbackIntervals() const
Definition QXmppJingleData.cpp:1898
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
@ CryptoRequired
Encryption is required but not offered.
Definition QXmppJingleData.h:376
static bool isJingleRtpCryptoElement(const QDomElement &element)
Definition QXmppJingleData.cpp:2362
void setSessionParams(const QString &sessionParams)
Definition QXmppJingleData.cpp:2328
QString cryptoSuite() const
Definition QXmppJingleData.cpp:2277
QXmppJingleRtpCryptoElement()
Definition QXmppJingleData.cpp:2244
uint32_t tag() const
Definition QXmppJingleData.cpp:2256
QString keyParams() const
Definition QXmppJingleData.cpp:2298
QString sessionParams() const
Definition QXmppJingleData.cpp:2318
void setCryptoSuite(const QString &cryptoSuite)
Definition QXmppJingleData.cpp:2288
void setTag(uint32_t tag)
Definition QXmppJingleData.cpp:2266
void setKeyParams(const QString &keyParams)
Definition QXmppJingleData.cpp:2308
void setRequired(bool isRequired)
Definition QXmppJingleData.cpp:2408
QVector< QXmppJingleRtpCryptoElement > cryptoElements() const
Definition QXmppJingleData.cpp:2418
static bool isJingleRtpEncryption(const QDomElement &element)
Definition QXmppJingleData.cpp:2474
QXmppJingleRtpEncryption()
Definition QXmppJingleData.cpp:2386
void setCryptoElements(const QVector< QXmppJingleRtpCryptoElement > &cryptoElements)
Definition QXmppJingleData.cpp:2428
bool isRequired() const
Definition QXmppJingleData.cpp:2398
static bool isJingleRtpFeedbackInterval(const QDomElement &element)
Definition QXmppJingleData.cpp:2672
QXmppJingleRtpFeedbackInterval()
Definition QXmppJingleData.cpp:2624
uint64_t value() const
Definition QXmppJingleData.cpp:2635
void setValue(uint64_t value)
Definition QXmppJingleData.cpp:2645
QVector< QXmppSdpParameter > parameters() const
Definition QXmppJingleData.cpp:2555
void setType(const QString &type)
Definition QXmppJingleData.cpp:2522
void setParameters(const QVector< QXmppSdpParameter > &parameters)
Definition QXmppJingleData.cpp:2569
static bool isJingleRtpFeedbackProperty(const QDomElement &element)
Definition QXmppJingleData.cpp:2606
QString type() const
Definition QXmppJingleData.cpp:2512
void setSubtype(const QString &subtype)
Definition QXmppJingleData.cpp:2545
QString subtype() const
Definition QXmppJingleData.cpp:2532
QXmppJingleRtpFeedbackProperty()
Definition QXmppJingleData.cpp:2500
The QXmppJingleRtpHeaderExtensionProperty class represents the XEP-0294: Jingle RTP Header Extensions...
Definition QXmppJingleData.h:157
Senders
Definition QXmppJingleData.h:159
@ Responder
Only the responder is allowed.
Definition QXmppJingleData.h:165
@ Initiator
Only the initiator is allowed.
Definition QXmppJingleData.h:163
@ Both
The initiator and the sender are allowed.
Definition QXmppJingleData.h:161
QXmppJingleRtpHeaderExtensionProperty()
Definition QXmppJingleData.cpp:2705
virtual void parse(const QDomElement &)=0
virtual void toXml(QXmlStreamWriter *writer) const =0
QString value() const
Definition QXmppJingleData.cpp:2172
QXmppSdpParameter()
Definition QXmppJingleData.cpp:2140
void setName(const QString &name)
Definition QXmppJingleData.cpp:2162
void setValue(const QString &value)
Definition QXmppJingleData.cpp:2186
QString name() const
Definition QXmppJingleData.cpp:2152
static bool isSdpParameter(const QDomElement &element)
Definition QXmppJingleData.cpp:2218
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
bool isMute
Definition QXmppJingleData.h:443
Creator creator
Creator of the corresponding session.
Definition QXmppJingleData.h:445
Definition QXmppJingleData.h:449
Definition QXmppJingleData.h:439