Planet Jabber

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

Daniel Pocock: FOSDEM 2018 Real-Time Communications Call for Participation

Hace 2 horas 55 mins

FOSDEM is one of the world's premier meetings of free software developers, with over five thousand people attending each year. FOSDEM 2018 takes place 3-4 February 2018 in Brussels, Belgium.

This email contains information about:

  • Real-Time communications dev-room and lounge,
  • speaking opportunities,
  • volunteering in the dev-room and lounge,
  • related events around FOSDEM, including the XMPP summit,
  • social events (the legendary FOSDEM Beer Night and Saturday night dinners provide endless networking opportunities),
  • the Planet aggregation sites for RTC blogs
Call for participation - Real Time Communications (RTC)

The Real-Time dev-room and Real-Time lounge is about all things involving real-time communication, including: XMPP, SIP, WebRTC, telephony, mobile VoIP, codecs, peer-to-peer, privacy and encryption. The dev-room is a successor to the previous XMPP and telephony dev-rooms. We are looking for speakers for the dev-room and volunteers and participants for the tables in the Real-Time lounge.

The dev-room is only on Sunday, 4 February 2018. The lounge will be present for both days.

To discuss the dev-room and lounge, please join the FSFE-sponsored Free RTC mailing list.

To be kept aware of major developments in Free RTC, without being on the discussion list, please join the Free-RTC Announce list.

Speaking opportunities

Note: if you used FOSDEM Pentabarf before, please use the same account/username

Real-Time Communications dev-room: deadline 23:59 UTC on 30 November. Please use the Pentabarf system to submit a talk proposal for the dev-room. On the "General" tab, please look for the "Track" option and choose "Real Time Communications devroom". Link to talk submission.

Other dev-rooms and lightning talks: some speakers may find their topic is in the scope of more than one dev-room. It is encouraged to apply to more than one dev-room and also consider proposing a lightning talk, but please be kind enough to tell us if you do this by filling out the notes in the form.

You can find the full list of dev-rooms on this page and apply for a lightning talk at

Main track: the deadline for main track presentations is 23:59 UTC 3 November. Leading developers in the Real-Time Communications field are encouraged to consider submitting a presentation to the main track.

First-time speaking?

FOSDEM dev-rooms are a welcoming environment for people who have never given a talk before. Please feel free to contact the dev-room administrators personally if you would like to ask any questions about it.

Submission guidelines

The Pentabarf system will ask for many of the essential details. Please remember to re-use your account from previous years if you have one.

In the "Submission notes", please tell us about:

  • the purpose of your talk
  • any other talk applications (dev-rooms, lightning talks, main track)
  • availability constraints and special needs

You can use HTML and links in your bio, abstract and description.

If you maintain a blog, please consider providing us with the URL of a feed with posts tagged for your RTC-related work.

We will be looking for relevance to the conference and dev-room themes, presentations aimed at developers of free and open source software about RTC-related topics.

Please feel free to suggest a duration between 20 minutes and 55 minutes but note that the final decision on talk durations will be made by the dev-room administrators based on the received proposals. As the two previous dev-rooms have been combined into one, we may decide to give shorter slots than in previous years so that more speakers can participate.

Please note FOSDEM aims to record and live-stream all talks. The CC-BY license is used.

Volunteers needed

To make the dev-room and lounge run successfully, we are looking for volunteers:

  • FOSDEM provides video recording equipment and live streaming, volunteers are needed to assist in this
  • organizing one or more restaurant bookings (dependending upon number of participants) for the evening of Saturday, 4 February
  • participation in the Real-Time lounge
  • helping attract sponsorship funds for the dev-room to pay for the Saturday night dinner and any other expenses
  • circulating this Call for Participation (text version) to other mailing lists
Related events - XMPP and RTC summits

The XMPP Standards Foundation (XSF) has traditionally held a summit in the days before FOSDEM. There is discussion about a similar summit taking place on 2 February 2018. XMPP Summit web site - please join the mailing list for details.

Social events and dinners

The traditional FOSDEM beer night occurs on Friday, 2 February.

On Saturday night, there are usually dinners associated with each of the dev-rooms. Most restaurants in Brussels are not so large so these dinners have space constraints and reservations are essential. Please subscribe to the Free-RTC mailing list for further details about the Saturday night dinner options and how you can register for a seat.

Spread the word and discuss

If you know of any mailing lists where this CfP would be relevant, please forward this email (text version). If this dev-room excites you, please blog or microblog about it, especially if you are submitting a talk.

If you regularly blog about RTC topics, please send details about your blog to the planet site administrators:

Planet site Admin contact All projects Free-RTC Planet ( contact XMPP Planet Jabber ( contact SIP Planet SIP ( contact SIP (Español) Planet SIP-es ( contact

Please also link to the Planet sites from your own blog or web site as this helps everybody in the free real-time communications community.


For any private queries, contact us directly using the address and for any other queries please ask on the Free-RTC mailing list.

The dev-room administration team:

Arnaud Joset: JP, a powerful command line interface for Salut-à-Toi

17 October, 2017 - 18:00

Salut à toi is a unique XMPP client. As its official description says, it's a "multipurpose, multi front-end, free (libre) and decentralized communication tool". It has been actively developed by Jérôme Poisson (Goffi) and Adrien Cossa (Souliane) since 2008. Today, I will focus on the use of "JP", a non-interactive command-line interface. It can be used to send or receive files directly from a shell, pipe commands to or from XMPP, use XMPP easily in a script and of course play with pubsub nodes.

The following article describes uses of JP. Several of them are availabled in the trunk version of Salut-à-Toi.


JP can be used to launch complexes commands in script, for debugging purpose or to explore XMPP services. JP is non-interractive and connect to the daemon Salut-à-Toi (SàT). You can share the session between the front-ends:

  • JP of course.
  • Primitivus as a console front-end.
  • Livervia, a web based front-end.
  • Sententia an Emacs front-end (WIP).
  • Cagou an original mobile XMPP client based on SàT (WIP).

If you want to send a file easily, discover which services are available on a server, send messages in your scripts, manage your xmpp account, control video player, edit your blog post with your favorite editor, pipe streams, manage your pubsub nodes etc, JP is for you!


JP can be used as a command line tools or in a small shell environment.

First, we need to configure and launch the daemon sat.

$ sat

Your default profile will be connected. If you have no profile, JP can be used to create one.

$ jp profile create -j -x mypassword profile_name $ jp profile connect -p profile_name

Your password is saved in the sat settings. You can connect automatically with the option -c. It should be noted that SàT defines a default profile. It can be bypassed with the option -p. 1

$ echo "test message" | jp message send -p profile_name -c

You can obtain help about a command with the option -h.

$ jp pubsub -h usage: jp pubsub [-h] {get,delete,edit,subscribe,unsubscribe,subscriptions,node,affiliations,search,hook,uri} ... positional arguments: {get,delete,edit,subscribe,unsubscribe,subscriptions,node,affiliations,search,hook,uri} get get pubsub item(s) delete delete an item edit edit an existing or new pubsub item subscribe subscribe to a node unsubscribe unsubscribe from a node subscriptions retrieve all subscriptions on a service node node handling affiliations retrieve all affiliations on a service search search items corresponding to filters hook trigger action on Pubsub notifications uri build URI optional arguments: -h, --help show this help message and exit

JP is a Swiss army knife. Let's discover its possibilities through a few examples.

Examples $ jp -h usage: jp [-h] [--version] {file,input,uri,message,event,info,account,param,debug,ad-hoc,ticket,invitation,profile,shell,avatar,pipe,pubsub,bookmarks,roster,identity,blog} ... This software is a command line tool for XMPP. Get the latest version at optional arguments: -h, --help show this help message and exit --version show programʼs version number and exit Available commands: {file,input,uri,message,event,info,account,param,debug,ad-hoc,ticket,invitation,profile,shell,avatar,pipe,pubsub,bookmarks,roster,identity,blog} file File sending/receiving input launch command with external input uri XMPP URI parsing/generation message messages handling event event management info Get various pieces of information on entities account XMPP account management param Save/load parameters template debug debugging tools ad-hoc Ad-hoc commands ticket tickets handling invitation invitation of user(s) without XMPP account profile profile commands shell launch jp in shell (REPL) mode avatar avatar uploading/retrieving pipe stream piping through XMPP pubsub PubSub nodes/items management bookmarks manage bookmarks roster Manage an entityʼs roster identity identity management blog blog/microblog management Send a message $ echo "Hello World" > filetest $ jp message send < filetest


$ echo "test jp" | jp message send Send files

The following command allows to send the file file.txt to

$ jp file send file.txt Receive files

The following command allows to receive a file in the /tmp directory.

$ jp file receive -p agayon --path /tmp Get information about a server $ jp info version Client name: Prosody Client version: 0.10.0 Operating System: Linux Get disco information Query a Server $ jp info disco Features jabber:iq:last jabber:iq:private jabber:iq:roster jabber:iq:time jabber:iq:version msgoffline urn:xmpp:blocking urn:xmpp:carbons:1 urn:xmpp:carbons:2 urn:xmpp:http:upload urn:xmpp:http:upload:0 urn:xmpp:mam:0 urn:xmpp:ping urn:xmpp:time vcard-temp Identities ┌───────┬──────┬─────────────────┐ │catego │ type │ name │ ├┄┄┄┄┄┄┄┼┄┄┄┄┄┄┼┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┤ │store │ file │ HTTP File Upload│ │server │ im │ Prosody │ │pubsub │ pep │ Prosody │ └───────┴──────┴─────────────────┘ Extensions urn:xmpp:http:upload typetext-single varmax-file-size 1048576 urn:xmpp:http:upload:0 typetext-single varmax-file-size 1048576 Items ┌─────────────────────┬──┬────┐ │entity │ │ nam│ ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┼┄┄┼┄┄┄┄┤ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ bot│ └─────────────────────┴──┴────┘ Query an account $ jp info disco Features urn:xmpp:mam:0 urn:xmpp:mam:1 urn:xmpp:mam:2 urn:xmpp:push:0 urn:xmpp:sid:0 Identities ┌────────┬────────────┬─┐ │categor │ type │ │ ├┄┄┄┄┄┄┄┄┼┄┄┄┄┄┄┄┄┄┄┄┄┼┄┤ │pubsub │ pep │ │ │account │ registered │ │ └────────┴────────────┴─┘ Manage pubsub nodes

The following examples show how to manage pubsub nodes on the service

Create a node $ jp pubsub node create -s node_name Subscribe to a node $ jp pubsub subscribe -s node_name Edit

The edit command allows to edit an item under a node.

$ jp pubsub edit -s node_name

The default text editor is opened. It is possible to directly edit a XML file. This command is useful for debugging purpose.

If you want to edit a post without having to edit xml directly, use jp blog edit.

As an example, you can try to edit the following xml file.

<entry xmlns=""> <author> <name></name> </author> <generator>JP (SàT)</generator> <title>I am a pubsub post !</title> <content>This is the content of this great post.</content> </entry>

Once the file is saved, a notification appears in Gajim. For now, the name of the post is a hash.

Manage your XMPP Blog

It is possible to manage a post with XMPP. It is based on PEP, a simplified version of pubsub. If your server support PEP, JP can help you to manage this blog easily.

Publish a post

First, you need to define your preferred syntax. In this example, I select markdown. This option can also be set in any other frontend (e.g. Primitivus). Whereafter you can edit a new post with the syntax jp blog edit.

$ jp param set Composition Syntax markdown -p agayon $ jp blog edit

Your favorite editor open and you can edit your blog post with markdown syntax. When you save and close it, another file open. You can edit your settings:

{ "allow_comments": "true", }

You can verify the accessibility of your post with the following command:

$ jp blog get content: Great test ! Make testing great again ! Yuuuuuuge publication.

It is also possible to modify your last blog post simply with jp blog edit --last-item.

Your blog post are also visible on other clients like Movim (see below) and interfaces like Livervia.

Use jp shell:

In order to ease debugging of services, JP comes with a shell interface. You only need to launch jp shell. You can obtain help by typing ?.

$ jp shell cmd pubsub pubsub> ? Shell commands: Documented commands (type help <topic>): ======================================== cmd do help shell use_clear version debug exit quit use verbose whoami Action commands: positional arguments: {get,delete,edit,subscribe,unsubscribe,subscriptions,node,affiliations,search,hook,uri} get get pubsub item(s) delete delete an item edit edit an existing or new pubsub item subscribe subscribe to a node unsubscribe unsubscribe from a node subscriptions retrieve all subscriptions on a service node node handling affiliations retrieve all affiliations on a service search search items corresponding to filters hook trigger action on Pubsub notifications uri build URI Select a command > cmd pubsub pubsub> use node urn:xmpp:microblog:0 Navigate into commands > cmd bookmarks/list bookmarks/list> -c ... CMD result bookmarks/list> cmd .. bookmarks> cmd > Example: List bookmarks $ jp shell > cmd bookmarks bookmarks> cmd list bookmarks/list> ? Shell commands: Documented commands (type help <topic>): ======================================== cmd do help shell use_clear version debug exit quit use verbose whoami Action commands: optional arguments: -h, --help show this help message and exit -p PROFILE, --profile PROFILE Use PROFILE profile key (default: @DEFAULT@) --pwd PASSWORD Password used to connect profile, if necessary -c, --connect Connect the profile before doing anything else -l {all,local,private,pubsub}, --location {all,local,private,pubsub} storage location (default: all) -t {muc,url}, --type {muc,url} bookmarks type (default: muc) bookmarks/list> -t muc private: Movim [] (*) Archlinux - blah blah [] bot [] (*) Example: get disco information > cmd info info> use info> use jid info> disco Features Identities ┌───────┬─────────┬───────────────────────┐ │catego │ type │ name │ ├┄┄┄┄┄┄┄┼┄┄┄┄┄┄┄┄┄┼┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┤ │pubsub │ service │ Prosody PubSub Service│ └───────┴─────────┴───────────────────────┘ More Some alternatives SleekXMPP

SleekXMPP is a xmpp python library. It provide two examples of pubsub clients. The first, can create nodes and the second one,, can manage events.

./ -j jid --passwword=passwd create node_name Gajim

Gajim is a great desktop client. It can be used to post on pubsub nodes too.


Movim is a social network platform based on XMPP. It massively use pubsub to allow users to interact.


Salut-à-Toi is a great XMPP client. JP, its non-interactive command-line interface, is a powerful tool. It can be useful to debug services, pubsub nodes and play with 'social' capacities of XMPP. It is actively developed and new features are coming. We will be soon able to make todolist or fill a bug ticket on a XMPP based system.

  1. It is possible to use jp profile modify to set the default profile.

Erlang Solutions: Messaging feature sets and their benefits

12 October, 2017 - 14:59

This is an excerpt from Boost your engine of growth with chat and social value by Nicolas Vérité.

Messaging feature sets and their benefits
  • A lot of features have come and gone over the few generations of messaging.
  • Some of them stick around much longer than others.

Interpersonal assistant chatbots, for a warm welcome

A welcome bot will allow you - among other things - to handhold users through first uses, conducting them through a critical part of the customer journey, avoiding early churn. Also, it will fix a common situation with new apps: the emptiness and solitude. When you install a fresh app it should definitely show anything but the void and blank spaces.

A machinegun, marketing-driven push notifications could fit the companionship gap as well, but these are annoying and intrusive, and sometimes they come with disrupting the experience with the app. This may void user value, consequently, synthetically increasing your vanity metrics for an immediate fall once the shots are fired.

A chatbot has more empathy and emotional triggers due to its location: inside the one-to-one chat. This gives it an air of interpersonal feeling, as opposed to an external and disconnected notification center. A welcome chatbot is in-app automation (client-side or server-side), as it leverages the conversational experience (the vertical timeline). There is no absolute need for any type of AI - your chatbot can be rule-based with quick replies, as it belongs to a properly mapped user experience. Such a chatbot is an opportunity to be fun and warming, as it can establish the users’ first steps, and thus a general “connection” to the experience.

Warning: the experience of a chatbot leads to disappointment sooner or later in the user’s journey. That is especially true if the AI or the decision-tree is not fit for the job. So you have to set the expectations for your users, to prevent or delay that disappointment. “A smile is the universal welcome.” (Max Eastman)

Social, open networks, for higher discovery

Simply put, the social network sector is quite overcrowded, as the major players over there are really huge. The barrier of entry is high… Unless you are bringing a really disruptive innovation, that is proven to be a game changer, and fit for massive adoption. But then it is often a hard sell.

Instead, instant messaging is again booming, mainly thanks to its third generation. There are plenty of players here, and thus it is indeed very hard for a new app to get discovered on the stores, but the market is more accessible to businesses.

Social posting, liking and commenting are features all well known on social apps. Building the same features on top of conversational apps is a trend today, a real trend even if still a bit shy and hardly noticeable. Here is why: it allows users/customers to discover communities, places, and people. It enables browsing, searching, and interaction through all available open and public content. In other words, it indirectly gives humans more opportunities to interconnect with more humans and bots. And as a consequence, this increases their network value. It is about growing your users’ network and own branding, and to engage with their audiences.

Warning: the content inconsistency that you are used to in various apps, whether you refresh or change the device, is a real pain. Be careful about the expectations when people browse to find something. “The only real voyage of discovery consists not in seeking new landscapes but in having new eyes.” (Marcel Proust)

Groupchat, closed networks, for continuous interactions

The groupchat market is still accessible, although massive adoption is clearly observable. A multiplicity of categories and viable niches exist today, and the exploration is not over. Proof of this resides in some big players (Cisco, Microsoft, Google) jumping on the bandwagon, after the huge successes of Slack, HipChat, Mattermost,, Zulip, Matrix, Ring. The model has definitely won hearts, with the numbers following suit. Expect a wave of mergers and acquisitions to follow (Atlassian already bought HipChat).

What is cool and very well understood about those apps, is that they target groups and communities, in other words, they map to organically highly interconnected networks and serve them. Just bring in one team at a time, and retain them all. Third generation IM app makers understand that brings great engagement and retention to their networks. These activities are mainly happening at the workplace, and during the workday. So there is minimal annoyance after work.

The never-ending stream of groupchat messages is much more fluid and rapidly evolving than social content. Partly because the conversational timeline is much more intuitive and easy to use than social hierarchy and weird algorithms (Facebook and Twitter were much harder to grasp for beginners).

Group chats necessitate a far lower number of people in a closed environment to generate the same engagement, as compared to public social streams. That is aimed at deeper and consistent relations, that your users have to maintain over time.

Warning: easing your users’ maintenance of their network is key to consistency. “Success isn’t always about greatness. It’s about consistency. Consistent hard work leads to success. Greatness will come.” (Dwayne Johnson)

A balanced combination leads to a winning alchemy

Mixing together open and closed networks for discovery and engagement is key to users’ network growth. Don’t leave onboarding to the apathetic factory lines and lower the barrier of entry. Just provide a network, with a perceivable and obvious network value, and means to grow it over time. All these elements will contribute to and catalyse the acquisition, the retention, and referral.

An application that is fully loaded with tons of features is quite a clear signal that the makers don’t know what to do, and want to do it all. A carefully crafted feature set, with a strong focus is the path to reach your targets and fix their problems or address their needs.

Anyway, your feature sets always go through the funnel or the filter of adoption, measured by AARRR/pirate metrics. This is the path that is necessary to deliver network value to you user and customer base. “There is no decision that we can make that doesn’t come with some sort of balance or sacrifice.” (Simon Sinek)

For more insights and practical advices on how to find your optimal feature set and increase the network value of your product, read the full article: Boost your engine of growth with chat and social value by Nicolas Vérité.

Subscribe to our newsletter for the latest Instant Messaging news, visit our webpage or contact us directly to discuss your project or simply to ask a question.

Tigase Blog: Tigase XMPP Server v7.1.2 Released!

12 October, 2017 - 01:51

Tigase XMPP Server v7.1.2 has been released! Please review the change notes below to see what has changed since our last release.

Peter Saint-Andre: Ultra-Short Poems

8 October, 2017 - 00:00
Reading a book on Matsuo Bashō has renewed my interest in ultra-short poems. The best-known form here is haiku, which in Japanese consists of three sections of 5, 7, and 5 syllables each. The most famous haiku is probably this one written by Bashō in 1686:...

Fanout Blog: Dev-centric API pricing is the future

5 October, 2017 - 19:52

As folks who power realtime APIs, we’re always interested in broader trends in what is referred to as the “API Economy.” In the last couple of years, we (and everyone else) have seen the proliferation of APIs skyrocket. ProgrammableWeb indexes over 18,412 APIs. Even Walgreens has an API.

This has generally been a good thing for developers who want to build new technology. Instead of having to build your app from scratch, you can assemble distributed processes for everything from payments to messaging that are built and scaled by specialists, leaving you with more time to focus on your unique functionality. There are APIs and “as-a-services” (we’re one of them), for almost everything you can imagine – and this means developers are implementing more APIs in a single project than ever before.


Erlang Solutions: Master your pirate metrics, AARRR

5 October, 2017 - 15:56

This is an excerpt from Boost your engine of growth with chat and social value by Nicolas Vérité.

Instant messaging or chat is a constantly self-reinventing universe. In this article we focus on businesses who are building chat apps and apps with chat. From early stage startups to big corporates, it is always good to remind and always be conscious of some the basics of business, and how the interlinking and mechanics of social and messaging allows you to accelerate growth and consolidate your sustainability.

Master your pirate metrics, AARRR

Pirate metrics are business KPIs for product or service marketing, sales and more generally product management. It is a big funnel of quantitative data telling the story of your customers’ journey. This data describes different stages of your relationship with the client: Acquisition, Activation, Retention, Revenue, Referral. Together these pirate metrics add up to a famous pirate battle cry - “AARRR”.

What are the metrics behind AARRR?

  • Acquisition: people who come to your product or service
  • Activation: people who actually do something with your product or service
  • Retention: people who continue to use your product or service regularly
  • Revenue: people who pay
  • Referral: people who talk (positively, hopefully) about your product or service!

More precisely, it is a set of critical engine parts of your growth machine. Each single value of these five metrics is important for your measure, so that you better understand your customer journey, and can optimise it.

The ratio of conversions for each step is also very important. But don’t lose sight of the bigger picture; it helps you identify what you are good at, and where to improve.

Going deeper, next we will focus on the organic aspects of Instant Messaging: Acquisition, Retention, Referral. We will not cover Activation, because it mostly belongs to your onboarding, neither will we cover Revenue because it mostly belongs to your business model. However, it is clear that Activation and Revenue are not fully disconnected from Acquisition, Retention, and Referral.

Here is how to boost the triplet “Acquisition, Retention, Referral”.

Features for Acquisition and traction

There are a number of generic chat features available that appeal to your potential users and thus contribute to Acquisition. One-to-one chat or interpersonal messaging obviously comes to mind first. Then group chat is definitely contributing a lot to your traction, as it is more fun and collaboration for users, the generation Slack/HipChat and their dozens of followers showed that massive enthusiasm and need. And finally, social networking is taking all of that to the super next level.

Then you can consider secondary features, such as presence, status, availability, profiles, avatars, and contact management, including blocking. There are even more features, such as typing notifications, last message correction, sent/received/read receipts, pictures/sounds/video/location messaging, archiving, mentions, stickers/emojis, integrations, chatbots, full-text search, the stories craze, and of course end-to-end encryption.

Let’s not look too deep into all the features on offer for now, you should focus on creating your own subset, based on your customer demand, and the problems you are trying to solve. Your unique custom features will be your differentiators.

Warning: carefully craft and tailor key distinctive features for your audience. Do not use ALL the commodity features. The goal is to avoid feature factories, making your app look like blinking Christmas decorations. “It seems that perfection is attained not when there is nothing more to add, but when there is nothing more to remove.” (Terre des hommes, Antoine de Saint-Exupéry, 1939)

Activities for Retention and engagement

Here you will use mechanics that will not add friction, nor will you focus on the features that “just add value” for individuals. You will focus on conversation (re)activators, such as chatbots, integrations, group chat and social chat (natural user feature, not marketing features to synthetically force the use of the app).

These “wake up” conversations are to be considered in the perspective of the user. These simple tricks allow you to re-capture a significant ratio of dormant users, and greatly improve user engagement with your app.

Warning: be careful of notification fatigue, and information overload. Of course you cannot control your audience’s activity. So be wise in buffering, aggregation, and re-activation. “A wealth of information creates a poverty of attention.” (Designing Organizations for an Information-Rich World, Herbert Alexander Simon, 1971)

FOMO for Referral and going viral

A highly interconnected community will naturally, organically pull the missing people in, and bring more nodes and interconnections into the network. This relies on a very simple psychology trick: FOMO (or the Fear Of Missing Out). If a group or community is almost fully present on your app, having fun with all the content and interactions, then the elements that are still outside this circle will be magnetically attracted.

Warning: do not expect virality to spontaneously generate. The ecosystem will grow starting with much seeding effort. This is why you need to focus on two major tasks: capture a niche first in order to jump into another one, and ignite a viral wildfire on social media using best practices, i.e. prioritising micro-influencers. “A referral is the key to the door of resistance.” (Bo Bennett)

Each one of the organic triplet “Acquisition+Retention+Referral” feeds each other:

  • Acquisition+Retention: an app user seeing new friends joining in will engage and explore even more with the network
  • Acquisition+Referral: virality reduces your cost of acquisition
  • Retention+Referral: missing elements of an active and consistent group or community will be invited to join in

Interested in learning more about the power of social messaging and how to successfuly expand your app engagement? Read the full article: Boost your engine of growth with chat and social value by Nicolas Vérité and get practical advices on how to combine the forces of chat and social to increase the network value of your product.

Subscribe to our newsletter for the latest Instant Messaging news, visit our webpage or contact us directly to discuss your project or simply to ask a question.

Peter Saint-Andre: Internationalized RFCs

5 October, 2017 - 00:00
Ever since the first "Request for Comments" (RFC 1) was published in 1969, the RFC series has been typeset exclusively in ASCII text. It's almost a running joke among technologists and programmers. Yet that is finally changing. The recently-published RFC 8187 marks the first time that RFCs have included Unicode characters and an encoding other than ASCII (i.e., UTF-8). Today, RFCs 8264, 8265, and 8266 take that a step further by using non-ASCII characters in a more thorough-going way; appropriately enough, these three RFCs define revised versions of the PRECIS specifications for the preparation, enforcement, and comparison of internationalized strings in application protocols (thus replacing RFCs 7564, 7613, and 7700, which I authored in 2015). I'm sure many readers never thought they'd see a symbol like ∞ (INFINITY, Unicode code point U+221E) in an RFC, but we did it! Many thanks to the RFC Editor team for making this day possible, and to my co-authors Marc Blanchet and Alexey Melnikov for making this day necessary. ;-)...

Tigase Blog: XMPP Meetup Recaps

3 October, 2017 - 21:09

Recently the XMPP community had has a number of meetups across Europe. Working to improve and expand the scope and visibility of the platform, these meets have been held independently and during other conferences.

Prosodical Thoughts: Prosody 0.10.0 released

2 October, 2017 - 15:35

It's not 1st April, it's 2nd October. Which means the rumours you heard were true. Prosody 0.10.0 is released!

This is the first release of our 0.10 branch. All of our recent releases have been from our stable 0.9 branch, which has served us well since the initial release of 0.9.0 back in 2013.

However time marches on, and we have a long list of new features and modules that we want to share with you.

This release contains over 1500 new commits from many contributors, adding and modifying over 30,000 lines of code.

Features Carbons

While it has been available in our community modules repository for some time, this release brings official support for Message Carbons (XEP-0280).

This feature allows multiple clients connected to the same account to see the same view of a conversation, making it easy to hop from device-to-device during an ongoing conversation and not worry about missing any messages.

Message Archive Management

Also becoming official is our support for XEP-0313: Message Archive Management.

Like Message Carbons, this feature allows clients to synchronize conversations. However thanks to the server-side archive, it also allows clients that have been offline to "catch up" on conversations that they might have missed. Combined with Message Carbons this provides a complete solution for "every message on every device", which is a key feature expected of modern communication platforms.

Our implementation is flexible, allowing configurable retention times and selecting whether you to store archives in memory, files, an SQL database or anything else that you care to plug into our modular storage API.

Security: Channel binding for SCRAM

Using technological cryptographical wizardry, this new authentication mechanism allows a client to verify that it is speaking to the correct server even if it doesn't recognise the TLS certificate. This is made possible via a feature in the SCRAM authentication protocol that forces the server to prove that it also knows the client's password.

Many thanks to Tobias Markmann for contributing this.

Built-in configuration checker

Prosody now has a very handy utility that attempts to identify common issues with your server setup. This includes checking your config file for syntax errors, but also checks your DNS, certificates and other aspects of your server are looking good.

It's a great first place to check if something isn't working the way you expect.

Metrics support

This release also adds built-in support for gathering metrics about the server operation. Although we've had some community modules capable of measuring various things in previous versions, they were limited by a lack of support in our core code.

The new API is a core part of Prosody, and although it is early days (many more metrics to be added in future releases), the basis is there and module developers are able to start using it today.

Currently the metrics can be aggregated internally, or sent externally to any statsd-compliant server. Other backends are possible via external libraries, for example we have a Datadog integration.

Simplified certificate handling

One of the trickiest parts of setting up a new XMPP service has been setting up certificates. Excluding certificate handling, setting up a new Prosody instance on a Debian/Ubuntu server is as simple as one command (apt install prosody) and editing one line in the config file (change "localhost" to your domain name). But obtaining and configuring the certificates, figuring out whether you need to add in an "intermediate" certificate or not, that was not so simple.

But thankfully new projects like Let's Encrypt and the ACME protocol are solving the problems associated with obtaining and managing certificates.

We have made similar progress in simplifying Prosody's certificate configuration as well. For example, if you use Let's Encrypt, you do not need to add any certificate configuration to Prosody's config file at all! A single command will automatically "import" new/updated certificates for the hosts in your Prosody config file, and instantly activate them in Prosody without a restart.

We expect this new feature to be usable by the large majority of setups. However for those who need a different configuration, the old "manual" method still works to give fine-grained control over the certificate configuration.

Everything you need to know about Prosody's certificate configuration can be found in our documentation.

Lua 5.2 support

Lua 5.2 was a major step in the language's evolution. It has been around for a while, but for a number of reasons (including a desire to stay compatible with LuaJIT), Prosody stuck with Lua 5.1 for a while. But it's time. This release adds initial support for running under Lua 5.2. There may still be some edge cases, so while we encourage people to use Lua 5.2 and report any issues, a stable production server may want to stick with Lua 5.1 for now.

Native websockets

This release also adds official support for websocket connections. Many web clients are already able to take advantage of this, connecting directly to Prosody from Javascript without needing to implement BOSH.

Many thanks to Florian Zeitz for the initial contribution of this module.

Other improvements

Finally, we've made countless other improvements and fixes in this branch. These include support for the newer and simpler, blocking protocol (mod_blocklist), and numerous improvements to our internal APIs for module developers to take advantage of.


If you are upgrading from a previous release, your life will be made easier by reading the release notes!

The Prosody 0.9.x series will continue to be maintained for major bug fixes until at least June 2018.


As usual, download instructions for many platforms can be found on our download page

If you have any questions, comments or other issues with this release, let us know!

ProcessOne: ejabberd 17.09

29 September, 2017 - 14:27

ejabberd 17.09 is out! This release mostly contains bugfix and adds few improvements.

New feature New mod_avatar module

The purpose of the module is to cope with legacy and modern XMPP clients posting avatars. It automatically converts vCard based avatars (XEP-0153) to PEP based avatars (XEP-0084) and vice versa.
Also, the module supports conversion between avatar image formats on the fly: this is controlled by convert option. For example, to convert all avatars into PNG format, configure the module as:

mod_avatar: convert: default: png

In order to convert only webp format to jpeg, set the following:

mod_avatar: convert: webp: jpeg

Note: the module depends on mod_vcard, mod_vcard_xupdate and mod_pubsub. It’s not working on Linux-armhf and Windows yet. If you compile from sources, ejabberd should be configured with –enable-graphics option.

Updated OpenSSL libraries

Our installers now include OpenSSL 1.0.2l. These libraries are used as a fallback only if you don’t have them on your system, else the system wide version is used.
On Very old Linux systems (Debian wheezy with older glibc for example), ejabberd will fail to load them. In this situation, you have to remove libcrypto and libssl installed in lib/linux-x86_64 of your installer, and ejabberd will use older OpenSSL 1.0.1 from your system. We highly recommend to plan a system upgrade in this case anyway.

Changes Admin
  • Harden ejabberdctl
  • Fix ejabberdctl quoting when using iex
  • Call earlier deps configure scripts during compilation
  • Fix iexdebug and iexlive commands
  • Quote $PEER in ping command to avoid hostnames containing “-” being interpreted as arithmetic
  • Docker: Sync containers from rroemhild and add instructions in README
  • Use eimp instead of ImageMagick calls for thumbnails creation
  • Add forgotten caching options to the validator
  • Fix ‘make install’ to work with new output from rebar list-deps
  • Rewrite muc_register_nick and muc_unregister_nick to be DB independent
  • WebAdmin: Fix deletion of multiple offline messages
  • Add support for XEP-0368 in outgoing s2s: SRV records for XMPP over TLS
  • Deprecate s2s_use_starttls: required_trusted
  • Don’t attempt to access(2) a certificate file
  • Let ‘domain_certfile’ take higher precedence instead of s2s_certfile or c2s_certfile
  • mysql.sql: Use multi-column index on username/ID
  • Use forked repo of Riak Erlang client to support OTP20
  • mod_avatar: New module with support for legacy and modern clients
  • mod_block_strangers: Introduce option ‘allow_transports’
  • mod_block_strangers: Block messages from strangers before mod_mam/mod_offline processing
  • mod_http_upload: Don’t ignore ‘custom_headers’
  • mod_muc: Improve presence-error and unavailable of multi-session occupants
  • mod_multicast: Fix start and reading of configured limits
  • mod_mam: Simplify check for anon MUC JID filtering
  • mod_mam: Refuse filtering anon MUC queries by JID
  • mod_privacy: Explicitly match against
  • mod_register: Introduce ‘redirect_url’ option
  • mod_stream_mgmt: Delete ‘c2s_init’ hook
  • mod_vcard_xupdate: Also replace vcard-x-update in direct presences
  • Fix get_items/get_item calls
  • Add correct order when requesting all items
  • Implement ‘6.5.7 Requesting the Most Recent Items’
  • Fix RSM support on SQL
  • Add RSM support on mnesia
  • Fix node_options: default options only apply on first plugin
  • Broadcast updated node configuration
  • Enforce controls on publish and delete items
  • Preserve correct order of deserialized XML elements
  • Suppress push notifications for online clients
  • Extract strings and prepare translation files works again

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 that you’ve found a bug, please search or fill a bug report on Github.

The XMPP Standards Foundation: Return of experience on XMPP meetup in Krakow

28 September, 2017 - 09:29

In May of 2017 a meetup was organized in Krakow, Poland. We announced it on the XSF blog, and on (also a few social networks).  The response from the XMPP/Jabber community was very positive, as we were fresh off the heels of FOSDEM and many members had just recently met at the XMPP Summit.

Philosophy & goals

Firstly, it was a cooperation between Tigase and MongooseIM. Both organizations provide open source XMPP server software and bring professional expertise to the protocol and its ecosystem.  However, we wanted it to be a humble and rapidly organized meetup, rather than a meticulously planned event. The meeting was planned with the adage 'done is better than perfect' in mind. The ultimate goal of the meetup was to meet colleagues of the XMPP and Jabber community, brainstorm, and overall improve communication between users and developers of the protocol.  An additional benefit from the meeting so soon after the Summit was to strengthen the trend and popularity of XMPP meetups in the European Union.

Speakers and presentations

Two speakers from Erlang Solutions and one from Tigase were on hand to make presentations.

Andrzej Wojcik of Tigase gave a presentation titled "Why use XMPP for IoT?". It was a factual comparison, efficient and straight to the point, as to why other options do not provide a proper solution. The alternatives, such as HTTP, AMQP, MQTT all have their advantages, but none bring a global solution as exhaustive as XMPP's. A demonstration was shown of a proof-of-concept of IoT devices being controlled via XMPP commands.

Szymon Mentel from Erlang Solutions, exposed the "ICE, STUN, and TURN" open standards implemented in MongooseICE, an open source server written in Elixir. The demo showed a movie and a camera stream from a Raspberry Pi. The stream was provided using Mangosta Android software, an open source XMPP client.

Piotr Nosek from Erlang Solutions, interacted with the audience around "Fantastic XMPP use-cases", showing the near-complete feature coverage of the open standards protocol and exploring what's missing or could be improved.  We hope that this discussion led to participant brainstorming and even more use cases for the protocol.

Feedback and outcome

We received nice feedback from all attendees, all were happy to have attended. There were some interesting question and answers following the presentation.  Followup discussions indicated that participants were engaged and were eager to contribute to the session.  It’s clear that these meetups can be far more engaging than a traditional chat session.  Being physically present seems to bring more wild and bright ideas to the front.

After the meetup, we all went in an underground bar to share some stories and beverages, near the old market square in the city center of Krakow.  It is hoped that this post-meetup tradition can be continued for the next session.  Ideally we’d like to host another in the autumn, please suggest topics and times and share your thoughts with us!

Follow us on

ProcessOne: Real-time Stack Issue #2

26 September, 2017 - 14:43

Here are the technology articles we found interesting in Issue #2. You can subscribe to this newsletter here.

Riot/Web 0.12 is Released

Riot developers announce another major update to Riot on Web & Desktop: v0.12

Run ejabberd as an Elixir Application Dependency

It wasn’t so easy to make it works on OS X, so I would like to share the list of challenges I faced during the installation. After this, I was able to run it locally, register a new user and connect via XMPP client!

Deep Look Into Matrix Protocol

Matrix is primarily characterised as a chat protocol. This protocol is designed to link up existing chat solutions such as XMPP (Jabber), IRC or Mattermost. XMPP originally had the same idea. But it lacked the various connections to the other protocols.

Time to Replace Slack! Who Will Win, MatterMost or Riot/Matrix?

Slack is the prodigy of the revival of team communication. This is an awesome development. In the begin days of the internet IRC (the grandfather of chat channels) was the way for nerd to have non stop communication with each other.

Gmail Chat was a Much Better Hangout

I remember the time I discovered Gmail’s new “Chat” feature. The small menu at the side of my inbox, with a list of friends I contacted most often. Occasionally, one of those people would become “green” and start a chat. It was like meeting each other, only it happened online.

An Analysis of Criminal Communications Strategies [PDF]

In the continuous game of cat and mouse between cybercriminals and the information security community, the criminals have long understood that they can act much more effectively together than they can individually.

Peter Saint-Andre: Asymmetries

23 September, 2017 - 00:00
Having done a lot of hiring and recruiting lately, I've been struck by the deep asymmetries of information and power involved in the process of building a team. Because the organization has the money, it can compel the applicant (supplicant?) to complete intelligence tests and personality assessments, ask lots of questions about background and knowledge and experience, require completion of a sample work task or delivery of a short-term project, perform background checks, call character references, and just about whatever else the hiring manager or HR department can dream up. Yet how much information does the applicant get to truly learn about the organization or, especially, the hiring manager? Consider that, supposedly, 50% of voluntary terminations occur because the employee does not like or agree with or get along with the employee's manager - yet the fundamental asymmetry of the hiring process means that the employee is mostly in the dark about potential problems in this key aspect of the employment relationship....

ProcessOne: Server-to-Server Stream Management Support

22 September, 2017 - 12:28

Last week we presented the first ejabberd project that participated in this year’s Google Summer of Code (GSoC) through the BEAM Community. Now let’s look at the second one.

This project aimed at implementing XEP-0198 for “Server-to-Server Stream Management Support” in ejabberd. It is developed by Anna Muharram, with Holger Weiß as the mentor. Reliability is essential for communication using XMPP. This extension allows to request stanza acknowledgement and quickly resume session. Any messages that were not delivered over previous connection will be retransmitted during session resumption without duplication.

Anna’s pull request is available on GitHub. It was a good experience for me, she says, and at the moment there are some issues that should be solved for the full functionality of server-to-server part of XEP-0198. I want to solve these problems.

The code will require some additional work before it can be merged, Holger acknowledges, but I’d say it’s a success. I’m interested in this feature and I want to see it completed.

Anna hopes this project will be useful for the community, and plans to be involved with it more. It’s not her first time with ejabberd and GSoC. Last year, she implemented “Privileged Entity Support to Write Powerful External Components” for ejabberd.

ejabberd is the first open source project I have been involved with. Furthermore, it is my first real world Erlang project. Both these projects are important to me.

ProcessOne is happy to support the Erlang & ejabberd development community. We are glad to see developers take on difficult issues, gain experience and solve problems for the benefit of all ejabberd supporters. We hope the next GSoC edition will bring even more ejabberd-related implementations.

Fanout Blog: Taking user experiences to the next level (with realtime)

22 September, 2017 - 01:40

Realtime is increasingly becoming table stakes for messaging, collaboration, or event apps. But this doesn’t mean there isn’t room for improvement – and there are all sorts of engaging ways to add realtime to apps that don’t have it yet. We’ll dive into some examples and best practices.


ProcessOne: Let’s encrypt ejabberd

15 September, 2017 - 07:33

Back in May we announced that 2 ejabberd projects will participate in this year’s Google Summer of Code (GSoC) through the BEAM Community. The summer has ended and now it’s time to see the results!

Today we will look at the first ejabberd project, aimed at implementing ejabberd support for “Let’s Encrypt” ACME protocol. It is developed by Konstantinos Kallas, with ProcessOne’s Evgeny Khramtsov as the mentor. In the days when encryption should be widespread, it certainly would be convenient to be able to create certificates for ejabberd quickly, easily and for free.

The outcome of this project was quite successful. The pull request in question is available on GitHub. “We will merge it for sure (modified or not), because we’re interested in having this feature” Evgeny says. For Konstantinos, it was his first GSoC. “I would sure like to participate again next summer” he says. “The ability to discuss with an experienced developer and ask them questions about issues is the most interesting and beneficial part of it. It is also very pleasing to see that your work is integrated in a real life open source project.”

Konstantinos was also keen on continuing his participation in open source projects and being active in the community. This sentiment is exactly what GSoC is all about.

“The whole GSoC experience was fascinating. I never had the chance to work on such a big and interesting project collaborating with experienced people. The development went pretty smoothly after the initial period that I had to absorb a lot of new information. My mentor, Evgeny Khramtsov, helped me a lot especially with all the technical issues that appeared throughout the process.”

When I asked Evgeny, he was happy with the experience as well, saying “This is my first GSoC project. The student asked the questions, I answered them :)”

Here at ProcessOne we believe open source software and open development communities benefit everyone. We will continue to support BEAM Community and Google Summer of Code, and keep ejabberd community strong.

ProcessOne: Real-time Enterprise Issue #3

12 September, 2017 - 16:07

Here are the articles concerning business aspects of real-time enterprise we found interesting in Issue #3. To receive this newsletter straight in your inbox on the day it’s published, subscribe here.

Automating really big ideas

We have many problems, few apparent solutions, and could use some novel ideas about what to do next. Among inventors, the flash of genius comes not from nowhere, but usually by analogy — one thing is so, so why not another?

What football site Goal has learned from its Messenger bot

U.K. football site Goal is convinced of bots ability to build brand awareness, spending the last six months refining its bot strategy.

The enterprise need for speed: real-time meets its mandate

Economics 101 teaches us the concept of perfect information, that is, that the markets function best when everyone has access to the same information. In this scenario, no party has an unfair competitive advantage.

Building the digital enterprise

As digitisation matures, organisations are increasingly finding themselves part of a digital ecosystem — which encompasses business partners, competitors, customers, regulators and other stakeholders that exchange information and engage digitally.

Welcome to wireless collaboration

Have you noticed that across the enterprise – from Ethernet to headsets – we’re ditching cables? The ‘wireless office’ is a little like the ‘paperless’ equivalent, something that we aspire to and can continuously work towards.

The business case for customer service chatbots

Chatbots can provide real value to companies when properly conceived and have a tremendous amount of potential to support a business’ customer service efforts.

ProcessOne: Real-time Stack Issue #3

11 September, 2017 - 11:32

Here are the technology articles we found interesting in Issue #3. You can receive this content in your inbox on the day it’s published by subscribing here.

The challenges of easy XMPP

Over the last years, the XMPP community has had a hard time competing with other Instant Messaging implementations, especially in the mobile / smartphone ecosystems. By focusing a small part of our resources on user experience (UX), we can gain significant improvements.

Introducing (n+1)sec – a protocol for distributed multiparty chat encryption presents “(n+1)sec”, a free (libre), end-to-end secure, synchronous protocol for group chat developed with support from the Open Technology Fund.

diaspora* version released

August 27th marks five years since diaspora*, the open, privacy-oriented social network, was placed into the hands of its community by its founders. One year ago the community released diaspora* version 0.

Power of in-house chat

One of the key things to the success of a service professional marketplace like Urbanclap is the seamless communication between customers and professionals. One of these channels is via in app chat.

Disney uses Big Data, IoT and Machine Learning to boost customer experience

In 2013, after years of development and testing, Disney World launched its MyMagicPlus program. Now, every guest to Disney World gets a MagicBand, a wristband that is equipped with RFID technology and a long-range radio.

Smart factories will deliver $500B in value by 2022

These and many other insights are from Capgemini’s latest market analysis, “Smart Factories: How can manufacturers realize the potential of digital industrial revolution.” A PDF of the report is available here (32 pp., free, no opt-in).

Enterprises are leading the Internet of Things innovation

The number of connected devices on the Internet will exceed 50 billion by 2020, this according to Cisco. By 2022, 1 trillion networked sensors will be embedded in the world around us, with up to 45 trillion in 20 years.

ProcessOne: Real-time Enterprise Issue #2

11 September, 2017 - 11:29

Here are the articles concerning business aspects of real-time enterprise we found interesting in Issue #2. To receive this newsletter straight in your inbox on the day it’s published, subscribe here.

Why Amazon is eating the world

Consensus is that we’ve hit a tipping point and the retail industry is finally seeing some major collateral damage from Amazon’s monster growth — and mainstream/non-tech news has started giving this a lot of coverage.

Can we chat? Instant messaging apps invade the workplace

New communications tools are on the rise, including instant messaging applications. 43% of respondents said they used these tools at work. Not surprisingly, instant messaging is widely popular in the tech industry, where 71% percent of employees rely on the application.

AI and chatbots are transforming the customer experience

Artificial Intelligence is dramatically changing business, and chatbots, fueled by AI, are becoming a viable customer service channel. The best ones deliver a customer experience in which customers cannot tell if they are communicating with a human or a computer.

UK ‘wastes billions every year’ on failed agile projects

The company questioned 300 CIOs about how they’re using agile project management methodologies and their successes and failures.

How to determine when and why to use microservices

The wave of hype and excitement about microservices continues unabated. Understanding exactly why and how your organisation will benefit from a microservice architecture is an important first step to adoption and shouldn’t be left as an afterthought.

Why open source projects favor new users, and what you can do about it

Every now and then, all developer products (SDKs, frameworks, APIs) will have to choose between favoring their existing ones or new ones. Make the initial app “just work” for beginners with some default magic? You hurt the debuggability of large apps.