Planet Jabber

Distribuir contenido
Planet Jabber -
Actualizado: hace 1 hora 50 mins

ProcessOne: ejabberd new documentation site, a community effort

27 February, 2015 - 17:42
A massive documentation effort

It is well know that every developer in the world love writing docs :)

Well, I am kidding, but still our goal is to have the most comprehensive and beautiful documentation possible for a project. Given the extremely powerful and numerous ejabberd features and the extensive scope of XMPP, I guess you all understand the challenge.

But, we can as a community be up to the tasks. We have bootstrapped a huge documentation effort for ejabberd, but we hope it will also serve as a good reference to learn XMPP.
To be frank, the work we have started here would hardly fit into a full size book, but we will get there.

As to the goal of producing a beautiful documentation, this is already done and we hope you will all like what we achieve on the ejabberd documentation site design.

What’s next ?

We already had very good documentation, but it was both included in massive, intimidating documentation or hard to find.

We have started adding documentation we had on various places on a single documentation site: Once this is finished, we will keep on writing new content based on frequent questions we get on mailing list and forums. However, we plan to reorganise it and split it in smaller chunks to make it easier to ingest. I especially think about the extremely complete, but also extremely long, ejabberd Installation and Operation Guide.

The good news is that you can now fork the documentation site and join the effort. It is available on Github: processone/

Do not hesitate to submit PR to fix typo or improve the wording. There is no small contribution and that’s a great way to join the ejabberd community.

Alexander Gnauck: MatriX v2 pre release

27 February, 2015 - 14:57

The first version of MatriX was released in February 2009. Now 6 years later we announce MatriX v2 pre release.

Over the last six years we released all new features and improvements always immediately to our customers, without making major changes in the version number. There have never been any breaking changes.

MatriX v2 has many major improvements in the core, but we also have done some minor changes in the Api. Most of the Api changes are related to Enum names only. Many of them were never compatible with the c# naming conventions.

They have been there because some of the supported .NET platforms were not able to parse the values case-insensitive, and there were no other ways to do this without using endless IF or SWITCH statements on all platforms.
Also some of the code is still left from the very first .NET version of our XMPP components in 2002, using .NET 1.0 and C# 1.0. In the very early days of c# many people were using Java, C or C++ conventions for the new c# language.

public enum MessageType { Normal, Error, Chat, GroupChat, Headline } public enum MessageType { normal, error, chat, groupchat, headline }

Updating even huge codebases to v2.0 should be very easy and take only some minutes.

With 2.0 we will also separate the NuGet packages by platform. This will allow us publishing NuGet packages much easier and more often. There is still lots of platform specific code in each MatriX edition which does not allow us to work on all of them in parallel.

Right now only builds for teh Full .NET Framework 3.5, 4.0 and 4.5 are available. All other platforms will be published in the next days.

Of course all MatriX licenses keys with Support&Maintenance are valid for v2 as well.

When you find any issues with the pre release please report them directly by Email to us, or use our forums.

Peter Saint-Andre: Long-Term Projects

25 February, 2015 - 00:00
People I interact with sometimes ask me how I accomplish so much. The last time I gave some thought to it, I wrote a blog post about My To-Don't List - all the things I don't spend time on.

Peter Saint-Andre: Low Information Diet

25 February, 2015 - 00:00
Today I had to run an errand and happened to turn on the radio at the top of the hour, so both my favorite jazz station and an AM station I listen to occasionally for baseball games had the news on. Something was happening somewhere! A terrorist attack in the Middle East, political wrangling in the District of Columbia, and other horrors - essentially the same stuff I might have heard on the radio the last time I listened a few years ago.

ProcessOne: Revamped ejabberd website, new logo, new development process

24 February, 2015 - 16:22

We all agree that website was a bit dated and did not do justice to the ejabberd code base.

It indeed deserved a major rework and that’s what we have started a while ago.

We have just rolled out a brand new fresh and modern ejabberd home page on

Along with that design, we have a new ejabberd logo. The hedgehog is gone and you now have the bubble ‘e’ with the nice new ejabberd typography.

We hope you will like it :)

This is just the tip of the iceberg. As you may have noticed, the whole process for developing the project itself went through a major rework. To ease collaboration with the community, we moved to Github issues. This was decided for the following reasons:

  • Almost all developers now already have a Github account. This save the hassle of created another account on another system.
  • It is integrated with Git workflow itself (i.e. you can close a ticket with a commit log)
  • It offers a single approach to process tickets and pull requests.

We are going to move the relevant tickets from the older ejabberd ticket system.

Do not hesitate to send your feedback. Star and fork ejabberd on Github, send us your pull request and let’s some great code done :)

Swift Blog: Swift 3.0-beta1 Released

24 February, 2015 - 00:00

We’ve just released a Swift 3.0 beta. A fuller list of new features is available on the download page, but highlights include file transfer support, keyword highlighting, nuisance user blocking and seamless multi-person chats. We encourage everyone to get the new build and try it out, and tell us about any bugs they should come across as we work towards release candidates and a final release.

Tigase Blog: Tigase Server 7.0.0 Release

23 February, 2015 - 20:17
Tigase XMPP Server 7.0.0 has been released! This release includes many major additions, many more minor additions, and a few bug fixes. We're sure you will enjoy the software.

ProcessOne: How Realtime and Alerts Enhance the same day Hotel Booking Experience – SeaBeyond 2014 Video

23 February, 2015 - 16:44

Sébastien Houzé from VeryLastRoom gives an overview of their same-day hotel booking platform. He then explains how ProcessOne-Boxcar platform help them improve the relationship with the customer through in-app messaging.

ProcessOne: Paris ejabberd meetup: February, 25th

23 February, 2015 - 16:39

Paris ejabberd first meetup will take place on the 25th of February, at ProcessOne office in Paris.

You can register on the meetup on the following page: ejabberd Paris Meetup

Jérôme Sautret will give a quick introduction to ejabberd modules
development. Participants will introduce their work and use cases for ejabberd.

We hope to see you there !

Please, let us know if someone plan to organise an ejabberd meetup in
another city, we can see how we can help, with talks and goodies.

Ignite Realtime Blog: (a)Smack 4.0.7 released

23 February, 2015 - 15:47

We just released (a)Smack 4.0.7. This is a bugfix only release.


It was found that the passed "hostname" argument to the configured HostnameVerifier in Smack 4.0 was server controllable, which could allow a malicious attacker to circumvention hostname verification. Hostname verification is disabled by default in Smack 4.0, but enabled by default in Smack 4.1. The faulty code was long ago removed in the Smack 4.1 branch, so most Smack 4.1 (pre-)releases are not affected.


As a reminder: The second release candidate of Smack 4.1 is available. Consider updating when possible, but please refer to the Smack 4.1 Readme and Upgrade Guide · igniterealtime/Smack Wiki · GitHub  first.

ProcessOne: ejabberd Community 15.02

17 February, 2015 - 16:54

ejabberd 15.02 is a major new release. We have added fixes as well as usual improvements.

However, ejabberd 15.02 is mostly a major improvement in the way we are handling our release cycle.
We are working with ejabberd community to expand and simplify the development of plugins. You can already find tens of plugins for ejabberd developed by the community. However, we want to make the development more accessible to developers. As such, we have introduced Elixir supports as a standard new language to develop for ejabberd and are working with Elixir community to make developing for ejabberd, much more simpler, while still retaining the power of Erlang.

As such, the major improvement in this release is Elixir language programming, with more features coming in the next month.

Please, read our blog post for details on why this is significant.

Here is the detailed changelog:

  • add Elixir support, allows to write plugins in Elixir
  • New command to reload configuration without restart
  • Support old style erlang expressions in YAML configuration
  • Improved captcha listener parsing when protocol not specified
  • Fix upgrade of old unbinarized pubsub table from 2.1
  • Minor updates in the documentation
  • Other bugfixes

As usual, the release is tagged in the Git source code repository on github

The source package and binary installers are available at ProcessOne

If you suspect you found a bug, search or fill a bug report on github

The XMPP Standards Foundation: Thank you to new and returning XSF sponsors

16 February, 2015 - 16:43

We’d like to say a big “thank you” to two companies who have recently signed up as sponsors of the XMPP Standards Foundation.

Erlang Solutions are a new XSF sponsor who specialise in providing businesses with scalable solutions via the creation, integration, delivery and lifetime support of products and services based on the Erlang and Elixir programming languages.

ProcessOne, a returning sponsor, are a leading provider in messaging platforms designed for scale and robustness. ProcessOne have developed ejabberd, an ubiquitous XMPP server that has been deployed to power some of the largest messaging platform in the world. Many people will remember their CEO, Mickaël Rémond, as a member of the Board of the XSF for a number of years.

We were all very happy to see representatives from both Erlang Solutions and ProcessOne at the recent Summit 17 where they contributed greatly to discussions.

Thanks again to both of these great companies!

If you are interested in sponsoring the XSF, you can find more details on our sponsorship page.

Ignite Realtime Blog: Smack 4.1.0-rc1 released

16 February, 2015 - 15:56

The Ignite Realtime community is happy to announce the first release candidate of the upcoming Smack version 4.1. Smack is an open source XMPP client library written in Java with multi-runtime support. It can be used with Java SE and Android runtimes. If you haven't done already now is the ideal time to grab Smack 4.1.0-rc1 and try it out. A '4.1' branch has been created, that will track the further development of Smack 4.1. The API of Smack 4.1 is now officially stable and will not change in an incompatible way between further 4.1 releases.


Smack 4.1.0-rc1 is available via Maven Central.

Isode: M-Link XMPP/IRC Gateway

16 February, 2015 - 15:49

Two whitepapers on the Isode website (Interconnecting XMPP and IRC and Deploying IRC, Federated MUC and XMPP Guards) show how Isode’s M-Link XMPP Server can be connected to and used in conjunction with chat services using IRC (Internet Relay Chat) in a range of deployment scenarios.

In order to help our customers and evaluators configure M-Link to act as an XMPP Gateway we’ve published a short configuration note which explains how to connect M-Link XMPP Multi-User Chatrooms to IRC Channels.

You can download the note from the documentation page on the Isode website (here’s the direct link to the PDF).

Swift Blog: Keyword Highlighting Support

13 February, 2015 - 00:00

One of the interesting new features in the upcoming Swift 3.0 release is support for “keyword highlighting”. This allows users to setup Swift such that it’ll alert them to activity that matches their configured highlighting rules. This is particularly useful where a user wants to be alerted when particular discussion topics, or keywords, are mentioned in chatrooms (highlighting rules are configured independently for private chats and chatrooms) - e.g. a Swift developer might choose to have a highlight configured to alert them when the word “Swift” is mentioned in a chatroom they watch, or a military operator may be interested in keywords such as “MEDEVAC”. Highlights can either be configured to be visual (with foreground/background colour applicable per rule), or may be audible (either with the default sound, or user-provided sounds per-rule). Here a keyword highlight for “Swift” rendered with black text on a green background is shown, along with a blue-on-red highlight for “late”.

As well as per-keyword highlighting rules, messages from a particular user may be subject to highlighting, e.g. the following screenshot shows a highlight configured for the Queen of Hearts’s user (black on yellow).

These features will be released with Swift 3.0, and can currently be configured by selecting “Edit Highlight Rules” from the general menu in Swift.

(This post describes a currently unreleased feature, so details may change slightly before release)

ProcessOne: ejabberd joins the Elixir revolution

10 February, 2015 - 17:14

ejabberd has always been a key project for Erlang.

When I talk to many of the developers that have learned Erlang in that past 10 years, they often thank us for ejabberd. “ejabberd is the main reason why I have learned Erlang”.

That said, Erlang is not for everyone. Some people hate the syntax and cannot overcome their relunctance to learn it.

We already made the life of ejabberd users easier by providing YAML syntax for configuration files. YAML format is quite well know and avoided the typical mistakes make by users when editing “Erlang
tuple-atoms-and-list” syntax file. So, YAML configuration files format was received as a relief by many users.

Today, we are getting further and are making Elixir language a first class citizen for ejabberd. You can now develop any module you want in ejabberd leveraging all ejabberd API using only Elixir language.

For those who already know about Elixir, I already hear the excitement that this new feature is generating. I know, I am extremely excited myself. This change is probably the most important change in the life of ejabberd and we are already working with Elixir developer to improve on this existing implementation and boost our development community by making ejabberd development more accessible.

In turn, we are hoping to do for Elixir, what ejabberd did for Erlang in terms of recognition. For those who do not know about Elixir: This is a clean, modern programming language, created by Jose Valim, supported by hundreds of enthousiastic developers. It is inspired by Ruby syntax, with all the benefit of Erlang VM, that is clustering, lightweight processes, robustness, fault tolerance, etc.

If you do not yet know Elixir, you now have the best reason of the world to learn it :)

How to get started

Here is how to start using Elixir in ejabberd today. The change are available in ejabberd master branch and will be integrated in next ejabberd official version.


Install Erlang R17

git clone and build ejabberd with Elixir support $ git clone $ cd ejabberd $ chmod +x $ ./ $ ./configure --prefix=$HOME/my-ejabberd --enable-elixir $ make && make install

Your ejabberd is now Elixir-enabled:

$ cd $HOME/my-ejabberd/ $ ./sbin/ejabberdctl live (ejabberd@localhost)1> m('Elixir.Enum'). Module 'Elixir.Enum' compiled: Date: January 24 2015, Time: 16.27 Compiler options: [debug_info] Object file: /Users/mremond/my-ejabberd/lib/ejabberd/ebin/Elixir.Enum.beam ...

ejabberdctl module has now extra options:
– iexlive: Start ejabberd and keep an Elixir command open
– iexdebug: Attach and Elixir console to an already running ejabberd

It means you can use ejabberd shell using Elixir interactive commands:

$ cd $HOME/my-ejabberd/ $ ./sbin/ejabberdctl iexlive ... iex(ejabberd@localhost)1> IO.puts "Hi ejabberd + elixir" Hi ejabberd + elixir :ok ... # Creating a user: iex(ejabberd@localhost)3> :ejabberd_auth.try_register("test2", "localhost", "mypass") {:atomic, :ok}

Welcome to the revolution !

Writing ejabberd plugins in Elixir

You can now write plugins in Elixir and register hooks to expand ejabberd features in Elixir.

ejabberd lib directory is the place where you put your Elixir file so that the build chain knows how to compile them.

In ejabberd lib/ directory, add the file mod_presence_demo.ex:

defmodule ModPresenceDemo do @behaviour :gen_mod def start(_host, _opts) do :ok end def stop(_host) do :ok end end

This is the smallest possible ejabberd module. We ignore the host and
the options for now.

When you type make your module should build properly.

When doing make install, it should install properly the newly created

You can now use it in ejabberd configuration file ejabberd.yml. Just
add this line in the module section:

modules: ... ModPresenceDemo: {}

As you see, you can directly use the Elixir module name. ejabberd can
detect this is an Elixir module and use it appropriately.

Let’s expand a bit on this module:

defmodule ModPresenceDemo do import Ejabberd.Logger # this allow using info, error, etc for logging @behaviour :gen_mod def start(host, _opts) do info('Starting ejabberd module Presence Demo') Ejabberd.Hooks.add(:set_presence_hook, host, __ENV__.module, :on_presence, 50) :ok end def stop(host) do info('Stopping ejabberd module Presence Demo') Ejabberd.Hooks.delete(:set_presence_hook, host, __ENV__.module, :on_presence, 50) :ok end def on_presence(user, _server, _resource, _packet) do info('Receive presence for #{user}') :none end end

When you launch ejabberd with that new module, you should see the following line in the log file (or console if running live):

15:17:58.913 [info] Starting ejabberd module Presence Demo test

And anytime an XMPP client changes its presence, you should see the following in the log file:

15:30:01.266 [info] Receive presence for test

We are in the process of revamping our developer documentation to help both Erlang and Elixir developer get up to speed on ejabberd module development. You can expect follow up articles how how to get further
developing ejabberd with the power of Elixir.

In the meantime, all the ejabberd community is very glad to help get your started with ejabberd development using Elixir.

Please, join ejabberd mailing list or join the ejabberd chat room on XMPP (

We are all eager to see what great ejabberd extension you are going to build with Elixir.

ProcessOne: Using ejabberd as a customer messaging tool at Mila – SeaBeyond 2014 Video

9 February, 2015 - 16:09

Michael Weibel explains at SeaBeyond conference how Mila enabled their online platform for professionals with realtime messaging features with ejabberd.

ProcessOne: ProcessOne ejabberd and Boxcar roadmap – SeaBeyond 2014 Video

9 February, 2015 - 15:56

Mickaël Rémond presents ProcessOne past product development and explains how it fits into a consistent long term vision about ejabberd, XMPP, push, mobile and realtime messaging in general.

For ejabberd, focus is on two areas:
– ejabberd Community continuous improvements and accelerating the collaboration with existing communities.
– ejabberd SaaS turn key solution for robust, possibly massive scale, cost effective, no hassle deployments.

For Boxcar, we will be focusing on developers, offering new services relating to push and bridging with our XMPP / ejabberd skills and toolset:
– Widgets and watches support
– Analytics
– Ability to chat from a push notification

Here is the full ProcessOne roadmap talk, putting our development effort into perspective:

Enjoy !

Ignite Realtime Blog: Introducing restAPI plugin for Openfire

6 February, 2015 - 14:53

The Ignite Realtime Community is pleased to announce the 1.0.0 release of the REST API plugin for Openfire.  This plugin is being developed by community member Redeyes. This plugin merges and replaces the functionality found in the "MUC Service Plugin" and the REST functionality found in the "User Service Plugin".  This new plugin allows for REST style administration of Openfire.


The current feature list, taken from the README file includes:

  • Get overview over all or specific user and to create, update or delete a user
  • Get overview over all user roster entries and to add, update or delete a roster entry
  • Add user to a group and remove a user from a group
  • Lockout or unlock the user (enable / disable)
  • Get overview over all or specific system properties and to create, update or delete system property
  • Get overview over all or specific chat room and to create, update or delete a chat room


Please report any issues or feature ideas for this plugin in the Community Forums.

Peter Saint-Andre: RFC 7457

5 February, 2015 - 00:00
I'm in the midst of a big push to finish off the ~15 Internet-Drafts I have underway at the IETF, on topics such as security, internationalization, SIP-XMPP interworking, and even Uniform Resource Names (the lesser-known cousin of URLs). The first of these to be published as an RFC is a document entitled "Summarizing Known Attacks on Transport Layer Security (TLS) and Datagram TLS (DTLS)", a.k.a. RFC 7457. Here I'll freely admit that Yaron Scheffer and Ralph Holz did most of the hard work, but they were gracious enough to include me as a co-author. The three of us are also close to finishing a companion document that describes how to address some of these attacks, so look for that soon!