Skip to main content

XMPP-based instant Messaging for Plone

Project description

Introduction provides instant messaging for Plone.

It provides a web-based chat client, by means of Converse.js, a javascript library which makes use of the open and very popular XMPP messaging protocol.

You will need an XMPP server (such as ejabberd) for the message handling.


  • Manually or automatically subscribe to other users.

  • With manual roster subscriptions, you can accept or decline contact requests.

  • Chat statuses (online, busy, away, offline)

  • Custom status messages

  • Typing notifications (i.e when the contact is typing)

  • Third person messages (/me )

  • Multi-user chat in chatrooms

  • Chatrooms can be configured (privacy, persistency etc.)

  • Topics can be set for chatrooms

  • Full name and profile picture support (via VCards)


XMPP integration with Plone is provided by the collective.xmpp.core package. Please refer to its README on how to set it up.

You can use the buildout at collective.xmpp.buildout.

The buildout in this egg is used for development purposes.

You’ll need to have a working XMPP server and access to the administration account on the server.

Your XMPP server will have to support the following extensions


You’ll need to have an administrator account on the Jabber server you’ll be using. Refer to the collective.xmpp.core README for information on how to set this up.

Once you’ve installed, you should go to the Plone registry in the control panel and set the XMPP Domain as well as the XMPP Admin JID and XMPP Admin Password values.

Additionally you have the option Auto-subscribe XMPP users, which is disabled by default.

Enable this option if you don’t want your users to manually maintain their rosters (i.e subscribing and unsubscribing to one another) and would rather have everyone subscribe to everyone else. Be careful however, this might cause a lot of overhead (and therefore be quite slow) on sites with large userbases.


0.3.1 (2013-09-12)

  • Update JS to converse.js 0.6.3 (includes important security fix). [jcbrand]

0.3 (2013-09-02)

  • Bugfix. Font-icons weren’t showing when CSS files are minimized. [jcbrand]

0.3b2 (2013-08-30)

  • Bundle Converse 0.6.2. See:

  • French translation. [thomasdesvenain]

  • Bugfix: Bugfix: Fixed unicodeDecodeError when searching for users while trying to add a contact. This is a merge of logic from the 0.2.x branch [ichim-david]

0.3b1 (2013-08-02)

Upgrade notes

This release updates the profile version to 5. Please use the upgrade feature in Plone’s control panel or in portal_setup in the ZMI to upgrade the profile to this version.

This release now uses vCards. If your users don’t have XMPP vcards, you won’t see their profile pictures and full names anymore.

collective.xmpp.core >= 0.3 provides a way to bulk add/update vCards for all the users in your site. In Plone’s control panel, go to XMPP Integration, then User Registration and then click Update ALL Users' vCards.

NB: This version depends on >= 1.7.2. Plone sites older than version 4.3 might experience minor incompatibility errors with any jquery version higher than 1.4.

  • Uses the newest version of converse.js (0.5), which includes many changes.

  • Better caching via backbone.localStorage.

  • More detailed configuration of chatrooms.

  • vCard support.

  • Multilingual support for converse.js, with translations in af, de, it, es and pt_BR.

  • Reconnnect automatically if the connection drops.

  • Remember custom status messages upon page reload.

  • Improve message counter to only increment with the window is not focused.

  • Remove dependencies on JQueryUI and Burry.js [jcbrand]

0.2 (2013-03-15)

  • Bugfix: Contact roster heading not cleared when last contact removed. [jcbrand]

  • Bugfix: Buddy wasn’t being removed from the roster if they unsubscribed. [jcbrand]

  • Bugfix: When a user has no contacts, a subscribing contact doesn’t appear. [jcbrand]

  • Bugfix: Remove contact dialog not appearing (fixed by pinning collective.js.jqueryui) [jcbrand]

0.2b5 (2013-02-04)

  • Bugfix: updated HISTORY.txt format remained unchanged after last egg release [alecghica]

  • Feature: added spining image and “Connecting to chat …” info under chat panel when the user is not (yet) binded to the jabber server [alecghica]

  • Bugfix: cleaned up unnecessary spaces, replaced tabs with spaces and fixed line terminators [alecghica]

0.2b4 (2013-02-02)

0.2b3 (2013-02-01)

  • Bugfix: updated HISTORY.txt format remained unchanged after last egg release [alecghica]

  • Bugfix: resources submodule dir was still not being included [jcbrand]

0.2b2 (2013-01-16)

  • Fixed to include the resources dir. [jcbrand]

0.2b1 (2013-01-16)

  • Added Spanish translation. [macagua]

  • Added improvements about i18n support. [macagua]

  • Fixed JS resources order, otherwise the users were “Unable to pre-bind …” [alecghica]

  • Remove javascript and stylesheets dirs and replace with ‘resources’ dir which is a git submodule pointing to the converse.js repo. [jcbrand]

  • Separate messages from different days [jcbrand]

  • Add /help command for both single and group chat. Add /clear command for single user chat. [jcbrand]

  • Fixes for IE8 [jcbrand]

0.2a3 (2012-11-19)

  • Bugfix. Unable to join chatroom when user with same first name already joined. [jcbrand]

0.2a2 (2012-11-09)

  • Add support for chatting with having multiple tabs open. [jcbrand]

  • Chatboxes now show the user’s profile photo and a link to their profile. [jcbrand]

  • Some CSS and JS fixes. [jcbrand]

0.1 (2012-10-18)

  • Initial release. (Please consider this an alpha release). [jcbrand]

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution (323.4 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page