New features:
- Add support for SCRAM-SHA-1 and SCRAM-SHA-256 (#183, @jlaine)
- Add XEP-0382: Spoiler messages (v0.2.0) (#195, @lnjX)
New features:
- Add XEP-0066: Out of Band Data (partially) (#167, @lnjX)
- Add XEP-0198: Stream Management (#99, @olesalscheider)
- Add XEP-0237: Roster Versioning (#142, @LightZam)
- Add XEP-0280: Message Carbons (#88, @fbeutel)
- Add XEP-0308: Last Message Correction (#170, @lnjX)
- Add XEP-0313: Message Archive Management (#120, @olesalscheider)
- Add XEP-0319: Last User Interaction in Presence (#171, @lnjX)
- Add XEP-0352: Client State Indication (#159, @fbeutel, @lnjX)
- Auto-connect to next DNS-SRV record server on connection failure (#105, @kollix)
- QXmppVersionManager: Use QSysInfo to determine default OS (#168, @lnjX)
- QXmppDiscoveryManager: Default to
phone
type on mobile platforms (#168, @lnjX) - CMake based build system (#131, @olesalscheider)
- Add BUILD_SHARED option (#160, @LightZam)
- Use C++11 compiler standard (@jlaine)
Fixes:
- Do not ignore SSL errors by default (#113), if you need to deal with broken SSL configurations, set QXmppConfiguration::ignoreSslErrors to true. (@jlaine)
- Disable tests that require QXMPP_AUTOTEST_EXPORT (fixes #149) (@jlaine)
- Fix QXmppSslServer::incomingConnection signature (#131, @olesalscheider)
- Add missed variables initialization in constructors of few classes (#122, @tehnick)
Tests:
- travis: Test builds with clang (@0xd34df00d)
- travis: Switch to Ubuntu Xenial (#151, @tehnick)
- tests: Generate coverage repot (@jlaine)
- Build examples by default
Deprecations:
- Drop Qt4 support (#131, @olesalscheider)
- Remove example_4 / GuiClient (#131, @olesalscheider)
- Add QXmppIceConnection::gatheringState property.
- Improve QXmppTransferManager::sendFile's handling of QIODevice ownership.
- Fix QXmppTransferManagerFix convering filename to a QUrl.
- Fix build error for debug builds.
- Allow QXmppJingleIq to have multiple contents.
- Fix build error when VPX support is enabled (issue 71).
- Fix phone numbers incorrectly read from / written to vCard as "PHONE" element instead of "TEL" (issue 65).
- Make QXmppClient::connectToServer(QXmppConfiguration, QXmppPresence) a slot (issue 63).
- Correctly receive data immediately following a SOCKS5 message (issue 64).
- Make QXmppStream handle end of incoming stream (issue 70).
- Add unit tests for QXmppCallManager and QXmppTransferManager.
- Improve ICE implementation to follow RFC 5245 more closely and hide implementation details from public API.
- Add a QXmppClient::sslErrors signal to report SSL errors.
- Handle broken servers which send "bad-auth" instead of "not-authorized".
- Fix a compilation issue with Qt 5.5 due to a missing header include.
- Do not install test cases.
- Remove trailing comma after last item in enums.
- The previous release was missing an update to the VERSION definition, resulting in stale pkg-config files. This release fixes this issue.
- Refactor HTML documentation so that "make docs" works in out-of-source builds.
- Add support for Opus audio codec.
- Enable error concealment for VPX video codec.
- Use QString() instead of "" for default methods arguments, to enable building project which use QT_NO_CAST_FROM_ASCII.
- Add support for legacy SSL.
- Add XEP-0333: Chat Markers attributes to QXmppMessage.
- Add QXmppClient::socketErrorString to retrieve socket error string.
- Add equality/inequality operators for QXmppVCardIq.
- Add "make check" command to run tests.
- Fix QXmppServer incoming connections with Qt5 (issue 175).
- Support for QXmppMessage extensions having tag names other than 'x'.
- Support for retrieving the source QDomElement that has been used to initialize a QXmppElement.
- Add organizations info interface to QXmppVCardIq.
- Remove deprecated QXmppPresence::Status type.
- Add QXmppClient::insertExtension to insert an extension at a given index.
- Disable Facebook / Google / Facebook specific mechanisms if we do not have the corresponding credentials.
- Replace toAscii/fromAscii with toLatin1/fromLatin1 for Qt 5 compatibility.
- Fix build using clang in pedantic mode.
- Add XEP-0249: Direct MUC Invitations attributes to QXmppMessage.
- Add XEP-0045: Multi-User Chat attributes to QXmppPresence.
- Improve GuiClient, stop using deprecated APIs.
- Improve QXmppServer:
- Move statistics to a counter / gauge system.
- Make it possible to call listenForClients and listenForServers multiple times to supported multiple IP address / ports.
- Improve QXmppTransferManager:
- Change third argument of QXmppTransferManager::sendFile to a description.
- Enable file transfer using IPv6.
- Allow StreamHost::host to contain a host name.
- Fix QXmppMucRoom::name(), only consider discovery IQs from the room.
- Handle Error replies in QXmppDiscoveryManager so that library users can know about errors.
- If building with Qt 5, use Qt's QDnsLookup instead of our backport.
- Improve MUC scriptability:
- Add QXmppMucRoom::ban() to ban users.
- Add QXmppMucRoom::name() to get the room's human-readable name.
- Add QXmppMucRoom::participantFullJid() to lookup an occupant full JID.
- With Qt >= 4.8, verify peer SSL certificate against domain name as specified by RFC 3920.
- Add support for X-OAUTH2 authentication for Google Talk.
- Add links to RFCs in generated HTML documentation.
- Fix export of QXmppVCardPhone class.
-
New XEPs:
- XEP-0033: Extended Stanza Addressing
-
Remove deprecated APIs:
- QXmppRosterManager::rosterChanged()
- QXmppConfiguration::sASLAuthMechanism()
-
Improve vCard support:
- Add support for free-form descriptive text.
- Make it possible to have several addresses.
- Make it possible to have several e-mail addresses.
- Make it possible to have several phone numbers.
-
Make it possible to set the client's extended information form (XEP-0128).
-
Make sure QXmppDiscoveryManager only emits results.
-
Fix XEP-0115 verification strings (remove duplicate features, sort form values)
-
Fix issues:
- Issue 144: QXmppBookmarkConference autojoin parsing
-
Add support for see-other-host server change.
-
Add support for X-MESSENGER-OAUTH2 authentication for Windows Live Messenger.
-
Make it possible to disable non-SASL authentication.
-
Add QXmppClient::isAuthenticated() to query whether authentication has been performed.
- Fix regression in X-FACEBOOK-PLATFORM authentication.
-
New XEPs
- XEP-0071: XHTML-IM
-
Improve SASL code test coverage.
-
Improve QXmppMessage test coverage.
-
Add a "reason" argument to QXmppRosterManager's subscription methods.
-
Refactor QXmppPresence:
- add availableStatusType(), priority(), statusText()
- deprecate QXmppPresence::Status
-
Remove deprecated QXmppRosterManager::removeRosterEntry().
-
New XEPs
- XEP-0221: Data Forms Media Element
-
Fix data form title/instructions XML serialization.
-
Remove confusing QXmppPresence::Status::Offline status type.
-
Deprecate QXmppConfiguration::setSASLAuthMechanism(), replaced by the string-based QXmppConfiguration::setSaslAuthMechanism().
-
Fix issues:
- Issue 111: QXmppPresence::Status::getTypeStr() gives warning if type is invisible
- Issue 126: Modularize SASL mechanisms
-
New XEPs
- XEP-0059: Result Set Management
-
Build a shared library by default.
-
Advertise support for XEP-0249: Direct MUC Invitations
-
Make QXmppTransferManager fully asynchronous.
-
Remove QXmppPacket class.
-
Move utility methods to a QXmppUtils class.
-
Remove QXmppReconnectionManager, QXmppClient handles reconnections.
-
Improve QXmppArchiveManager to allow paginated navigation (Olivier Goffart).
-
Only emit QXmppVersionManager::versionReceived() for results.
-
Remove deprecated QXmppClient::discoveryIqReceived() signal.
-
Fix issues:
- Issue 64: Compile qxmpp as shared library by default
- Issue 79: Export classes for Visual C++ Compiler
- Issue 140: Proper XEP-0115 ver string generation with dataforms
- Issue 142: qxmpp does not build in Qt5
-
New XEPs
- XEP-0048: Bookmarks
- XEP-0184: Message Delivery Receipts
- XEP-0224: Attention
-
Remove deprecated "get*" getter accessors from: QXmppClient QXmppConfiguration QXmppMessage QXmppPresence QXmppIq QXmppStanza QXmppVCardIq QXmppRosterIq
-
Remove deprecated headers:
- QXmppRoster.h
- QXmppVCard.h
-
Add TURN support for VoIP calls to use a relay in double-NAT network topologies.
-
Overhaul Multi-User Chat support to make it easier and more fully featured.
-
Improve QXmppServer packet routing performance.
-
Add support for X-FACEBOOK-PLATFORM SASL method.
-
Improve XEP-0136 support to enable archive deletion.
-
Set default keep-alive timeout to 20 seconds, enables detection of broken connections.
-
Make install path configurable using the PREFIX variable instead of Qt's installation path.
-
Make it possible to build a shared library by invoking "qmake QXMPP_LIBRARY_TYPE=lib".
-
Fix issues:
- Issue 95: Patch for several utility methods in RosterManager
- Issue 103: Does not compile for Symbian^3 with NokiaQtSDK 1.1 Beta
- Issue 105: Initial presence is set before the roster request
- Issue 106: QXmppClient can't override Qt's set of trusted SSL CAs
- Issue 109: Patch for XEP-0224 (Attention)
- Issue 113: qxmpp.pc sets incorrect include path
- Issue 116: sessionStarted not set for non-SASL connections
- Issue 119: ICE negotiation time out after successful ICE check
- Issue 120: QXmppIceComponent doesn't accept interfaces with 255.255.255.255 netmask as a local candidate
- Issue 132: [FreeBSD]: build error
- Issue 135: qxmpp won't reconnect when disconnected
-
New XEPs
- XEP-0153: vCard-Based Avatars
- XEP-0202: Entity Time
-
New Classes
- QXmppClientExtension: base class for QXmppClient extensions (managers)
- QXmppServer: base class for building XMPP servers
- QXmppServerExtension: base class for QXmppServer extensions
- QXmppDiscoveryManager: manager class for XEP-0030: Service Discovery
- QXmppVersionManager: manager class for XEP-0092: Software Version
- QXmppIceConnection: class representing an Interactive Connectivity Establishment (ICE) over UDP "connection"
- QXmppRtpChannel: class representing an RTP audio channel for VoIP calls
-
Refactor QXmppVCardManager to use QXmppClientExtension
-
New Examples
- example_9_vCard: vCard handling example
- GuiClient: Graphical chat client, test bench for QXmpp functionalities
-
Deprecation
- QXmppVCard class name changed to QXmppVCardIq
- Signal QXmppClient::discoveryIqReceived in favour of QXmppDiscoveryManager::infoReceived and QXmppDiscoveryManager::itemsReceived
-
Removal Extensions QXmppArchiveManager, QXmppMucManager, QXmppCallManager, QXmppTransferManager will not load by default. Therefore following functions to provide the reference have been removed. QXmppClient::transferManager() QXmppClient::archiveManager() QXmppClient::callManager() QXmppClient::mucManager() Note: Once should use QXmppClient::addExtension() and QXmppClient::findExtension() to load or enable these extensions.
-
Add support for DNS SRV lookups, meaning you can connect to nearly all servers using only a JID and a password.
-
Improve support for SASL authentication, with a verification of the second challenge message sent by the server.
-
Add support for the birthday and URL attributes in vCards.
-
Improve STUN support for VoIP calls by detecting server-reflexive address.
-
Add QXMPP_VERSION and QXmppVersion() for compile and run time version checks.
-
Improve code documentation coverage and quality.
-
Remove dependency on QtGui, making it easier to write console applications.
-
Fix MSVC 2005 and 2008 build issues.
-
Fix Symbian build issues, add DNS SRV support for Symbian devices.
-
New XEPs
- XEP-0030: Service Discovery
- XEP-0045: Multi-User Chat
- XEP-0047: In-Band Bytestreams
- XEP-0054: vcard-temp
- XEP-0065: SOCKS5 Bytestreams
- XEP-0078: Non-SASL Authentication
- XEP-0082: XMPP Date and Time Profiles
- XEP-0085: Chat State Notifications
- XEP-0091: Legacy Delayed Delivery
- XEP-0092: Software Version
- XEP-0095: Stream Initiation
- XEP-0096: SI File Transfer
- XEP-0115: Entity Capabilities
- XEP-0128: Service Discovery Extensions
- XEP-0166: Jingle
- XEP-0167: Jingle RTP Sessions
- XEP-0199: XMPP Ping
- XEP-0203: Delayed Delivery
- XEP-0009: Jabber-RPC
- XEP-0004: Data Forms
-
New XEPs (Initial Support)
- XEP-0136: Message Archiving
- XEP-0176: Jingle ICE-UDP Transport Method [Experimental]
-
New authentication schemes
- DIGEST-MD5
- SASL
- NonSASL
- Anonymous
-
Add doxygen documentation
-
Add targets in *.pro file for packaging, installing and generating documentation
-
Use QXmlStreamWriter while creating stanzas to be sent to the server
-
Clean up getter accessors from "getFoo" to "foo"
-
Add proper file transfer management
-
Add support for keep-alive pings
-
Report authentication errors
-
Automatic reconnection mechanism
-
Test suite for stanza parsing/serialisation
-
Refactor the logging code
-
Add proxy support
-
Fixed compile time warning messages
-
New examples
-
Support for attaching an extension element to messages and presences (QXmppElement)
-
Move parsing to the stanzas itself QXmppStanza::parse()
-
QXMPP_NO_GUI define to remove dependency on QtGui
-
Change QXmppRoster to QXmppRosterManager to have a consistent API
- First public release