Newer posts are loading.
You are at the newest post.
Click here to check if anything new just came in.

February 20 2020

Monal IM: Removing Google talk

I am planning to remove Google talk support from 4.4 onwards for Mac and iOS. Its an sad milestone because Google talk was why I made Monal in 2008. However, given google themselves have deprecated it twice and even its replacement google chat has been deprecated, it seems increasingly less important. Additionally, the fact that it does not support any modern xmpp specs and doesn’t work with push means it is barely usable in current versions of Monal. I don’t track user stats but I suspect everyone who used to use this for google has moved on to other clients or slack.

If you *REALLY* need Google talk the legacy mac client will still be around for a little bit.

Monal IM: New Mac and iOS beta bre updated

There was a bug in last nights iOS and Mac builds that caused it to crash on group chats. I have updated both clients now. I have also linked the old file to the catalyst version. Catalyst is the mac client now. This should allow brew users to get it as well. Unlike the old Monal for mac, the new one is sandboxed, hardened runtime and notarized.

Monal IM: XMPP is weird

There are many weird things about xmpp. The contact approval system and the need to approve a contact to send encrypted messages is probably one of the best examples. A lot of OMEMO issues can probably be traced to your contacts subscription either being to, from or none. Those words alone don’t make much sense so I have added some “debugging” text for users in contact details.

February 19 2020

Monal IM: Monal iOS is available in France

Monal 4.3 if out for iOS. Mac os will come soon. It’s taking longer because it is treated as a new app. I am leaving the other mac app in the app store for older macs. This change in 4.3 also means it is now available in france.

On a related note the first build of 4.4 for Mac is in beta. This has some fixes for message duplication as well as OMEMO device and key discovery. iOS will come soon.

ProcessOne: ejabberd on macOS with Homebrew package manager

Homebrew is now the de facto package manager for open source software on macOS. Thus, we have discontinued our macOS binary installer to focus on improving further ejabberd experience on macOS by polishing Homebrew ejabberd package.

We recently updated ejabberd on Homebrew and we will keep it in sync with ejabberd official releases. As of today, if you install ejabberd with Homebrew, you will always get the latest release.

If you have any suggestion on how to make ejabberd with Homebrew experience better, please open a Github issues, with the tag Packaging:Homebrew.

We have not yet tested it with Homebrew on Linux or on WSL, but still, pleae submit issues if you find some.

Here is the cheat sheet regarding ejabberd management with Homebrew.

Installing ejabberd

The following command will install ejabberd and its dependencies:

$ brew install ejabberd

Starting ejabberd and launching it on macOS start

brew services start ejabberd

Starting ejabberd

Alternatively, the following command start ejabberd in background, with trying to restart it automatically after reboot:

$ /usr/local/sbin/ejabberdctl start

You can check the status with the command:

$ /usr/local/sbin/ejabberdctl status
The node ejabberd@localhost is started with status: started
ejabberd 20.01 is running in that node

If ejabberd is not running the status command will display a nodedown error:

$ /usr/local/sbin/ejabberdctl status
Failed RPC connection to the node ejabberd@localhost: nodedown

Commands to start an ejabberd node:
  start      Start an ejabberd node in server mode
  debug      Attach an interactive Erlang shell to a running ejabberd node
  iexdebug   Attach an interactive Elixir shell to a running ejabberd node
  live       Start an ejabberd node in live (interactive) mode
  iexlive    Start an ejabberd node in live (interactive) mode, within an Elixir shell
  foreground Start an ejabberd node in server mode (attached)

Optional parameters when starting an ejabberd node:
  --config-dir dir   Config ejabberd:    /usr/local/etc/ejabberd
  --config file      Config ejabberd:    /usr/local/etc/ejabberd/ejabberd.yml
  --ctl-config file  Config ejabberdctl: /usr/local/etc/ejabberd/ejabberdctl.cfg
  --logs dir         Directory for logs: /usr/local/var/log/ejabberd
  --spool dir        Database spool dir: /usr/local/var/lib/ejabberd
  --node nodename    ejabberd node name: ejabberd@localhost

Stopping ejabberd

/usr/local/sbin/ejabberdctl stop

Configuration file

To change the configuration file, you can edit /usr/local/etc/ejabberd/ejabberd.yml

If you have upgraded ejabberd and want to apply possible change to config file, you can check the new ejabberd.yml default file ejabberd.yml-new in the same directory.

Checking the logs

To troubleshoot ejabberd, you can check the logs in the directory /usr/local/var/log/ejabberd/

February 18 2020

Tigase Blog: BeagleIM 3.6 and SiskinIM 5.6 released

New versions of XMPP clients for Apple’s mobile and desktop platforms have been released.

Common changes

  • Improve DNS SRV resolver reliability
  • Added support for preauthenticated subscriptions and registration
  • Improve bookmarks support (Workaround for buggy PEP implementation in some servers)
  • Added conditional support for sending files for which HTTP File Upload server returned code 200

BeagleIM 3.6

The stable release of BeagleIM 3.6 contains the following changes

  • Fixed an issue with VCard editing
  • Fixed count of unread messages after restart of the app
  • Prepend groupchat items in chats list with sender nickname of last message
  • Minor changes to displaying subject of MUC room
  • Fixed crash on emoji in input field in MUC rooms
  • Fixed a crash while searching the messages

SiskinIM 5.6

The stable release of SiskinIM 5.6 contains the following changes:

  • Add QR code for accounts #siskinim-187
  • Fixed an issue with files not being encrypted when only global encryption is enabled
  • Improved support for handling XMPP URI and account handling
  • Enable file transfer button and ask user for consent if he was not asked yet
  • Fixed crash related to keyboard animation
  • Fixed crash when rows are disappearing from the screen
  • Fixed crashes on iOS 11
  • Fixed a crash within roster view


You can download both application from their respective app-stores: Beagle IM from macOS appstore and Siskin IM from iOS appstore and star them on GitHub: Siskin IM on GitHub and Beagle IM on GitHub

Jérôme Poisson: SàT progress note 2020-W08

Hello everybody,

it's been a while since the last progress note, that's because I have very little free time at the moment, and I use it to code instead of writing blog posts.

So I'll try to summarize the last weeks progress without going too much into details.

Continuing my work on improving Cagou usability, I've added a panel which shows open chat rooms, all your contacts, and bookmarks. It was necessary to have a way to select easily a contact or room, as so far you add to enter part of the name and count on autocompletion. So now, by default you land into a screen showing you icons of contacts/rooms, and you just have to click on them.

chat selector demo

In chat mode with Cagou, you can slide between open discussions without having to go back and forth in the menu. The order in which you do the slide correspond to the order in which icons appears in the "chat selection" panel. They are sorted by alphabetical order for the moment, but it will be easy to add other way to sort, for instance with time of last received message.

sliding between chats demo

I've added a notification counter, so you know immediately where somebody has talked to you.

A chat notification

For now the icons are arranged in a grid, but it may be possible to add other layouts in the future, like showing the chats entities in a list (which would give more room to display extra data like the last message).

On Android, opening a system notification for a chat message now opens the right chat widget in Cagou.

I've also improved session reopening: when the frontend is closed on Android, the last connected profile will be reconnected automatically, as well as the last selected mode. This was also the occasion to implement profile auto connection on backend startup, which is particularly useful for components.

I had to fix SRV records handling on Android: this platform doesn't use /etc/resolv.conf which Twisted expects, and finding the DNS servers used is not trivial. Thanks to some hints I've found (notably here), I could implement a decent solution to work around that and make SRV records looking work.

On desktop, I've removed the main top menu, as it is redundant with features available elsewhere. Instead there is a new "extra" button in mode selector, which open a side menu (this is how you open the "about" screen for instance).

There have been also a bunch of improvements like logging the path of parsed config file(s), the implementation of a stable resource instead of the one given by server (something like sat.[ID]), the handling of runtime permissions on Android, a better management of header's input in Cagou, many bug fixes, etc. I won't enumerate everything, this note is to have a global overview of the work done or in progress, the direction taken, and the reasons behind some decisions.

I'm currently finishing the handling of file attachments in chats, I will then move on Libervia.

That's all for today.

Monal IM: Expect to see 4.3 this week

Monal 4.3 will be in the app store this week. In conjunction with that I have updated the home page to reflect the app as it is going to be. Needless to say the front page is very non technical. On a related note, I now remember how making accurate screenshots for every iOS supported device, iPad and Mac is incredibly tedious. There is a reason I don’t do dramatic UI updates like this every day.

February 17 2020

Monal IM: Mac and iOS: improving error handling

As we march along to a release, I have added better error handling in the mac and iOS client. A lot of this is focused on OMEMO. The most recent update today includes these changes in addition to fixes to sending/receiving aesgcm images. In the new error messages I have tried my best to provide some debugging info or some action that could be taken to potentially resolve this issue. It also lets me know in user feedback where an error in Monal my be.

If someone sends a 16 byte iv message this is what you will see:

Encrypted message was sent in an older format Monal can’t decrypt. Please ask them to update their client. (GCM error)

If the key was decrypted but an error was returned by lib signal:

There was an error decrypting this encrypted message (Signal error). To resolve this, try sending an encrypted message to this person.

If the message was not encrypted for this device it would be nice ot know what this device meant for the other party to verify:

Message was not encrypted for this device. Please make sure the sender trusts deviceid 123456 and that they have you as a contact.

Paul Schaub: Smack: Some more busy nights and 12 bytes of IV

In the last months I stayed up late some nights, so I decided to add some additional features to Smack.

Among the additions is support for some new XEPs, namely:

I also started working on an implementation of XEP-0245: Message Moderation, but that one is not yet finished and needs more work.

Direct MUC invitations are a method to invite users to a group chat. Smack already had support for another similar mechanism, but this one is recommended by the XMPP Compliance Suites 2020.

Message Fastening is a generalized mechanism to add information to messages. That might be a reaction, eg. a thumbs up which is added to a previous message.

Message Retraction is used to retract previously sent messages. Internally it is based on Message Fastening.

The Stanza Content Encryption pull request only teaches Smack what SCE elements are, but it doesn’t yet teach it how to use them. That is partly due to no E2EE specification actually using them yet. That will hopefully change soon 😉

Anu brought up the fact that the OMEMO XEP is not totally clear on the length of initialization vectors used for message encryption. Historically most clients use 16 bytes length, while normally you would want to use 12. Apparently some AES-GCM libraries on iOS only support 12 bytes length, so using 12 bytes is definitely desirable. Most OMEMO implementations already support receiving 12 bytes as well as 16 bytes IV.

That’s why Smack will soon also start sending OMEMO messages with 12 bytes IV.

February 15 2020

Monal IM: New builds (again)

There is a new Mac and iOS build up for testing. The changes fix:

  1. Message duplication (Receiving)
  2. Crashing on ios12

February 13 2020

Monal IM: Monal 4.3 is coming out in about a week (even in France)

Monal 4.3 is going to be a huge update the iOS and Mac UI. It is feature complete and has been in testing for a few weeks. I expect to release it next week. When it comes out though, I will have switched to Apple’s GCM library this will also allow me to release in France. The change in libraries will prevent OMEMO from working with some other clients. Clients that send with a 16 byte iv will not be able to send to Monal anymore. Client that can’t accept the 12 byte iv will not be able to accept message from Monal anymore.

February 12 2020

Monal IM: New Mac and iOS builds

You may notice that the only mac builds are catalyst builds. I have removed the download links for the older versions. Catalyst is almost ready for release. There are new builds for both clients with the following fixes:

Unread/read status of chats fixed
Account selection for new contact
Account selection for new Group
Groups show up reliably when you join
Chats show up reliably when you add contacts

February 10 2020

Erlang Solutions: Improving push notifications with MongooseIM

Customised, scalable enterprise Instant Messaging.

MongooseIM offers a completely customisable enterprise Instant Messaging solution. This helps large organisations build solutions that meet the unique requirements of their users. As a result, we’ve built many best-in-class instant messaging platforms for household names in social media, telecoms and the health industry. In our latest release, MongooseIM 3.6.0, we’ve continued to empower our application owners, and their end users by improving and evolving the push notification functionality. Find out more about how MongooseIM can build a bespoke instant messaging solution for your needs, or read on to find out more about the improvements to push notifications.

Creating a better Push Notification Experience in MongooseIM

MongooseIM is continuing its evolution to improve the user experience for mobile applications. Push notifications aren’t just a standard requirement for instant messaging applications; they are also one of the most used features for end-users. As a result, there is an increased need to have a seamless experience for both application owners and the user themselves. Push notifications were added to MongooseIM 3 years ago. The implementation was based on an XMPP extension XEP-0357: Push Notifications and a dedicated, standalone component called MongoosePush. Since then, we have been lucky enough to work with several customers using this functionality. We have also been given great feedback from our community including people who use MongooseIM, MongoosePush or both in their projects. We listened to them, observed their issues and decided to create a better experience in MongooseIM 3.6.0 and MongoosePush 2.0.

How has the MongooseIM end-user experience changed?

Immediate push notifications

Push notifications are delivered when the server observes a message addressed to a user who is offline. What does this mean exactly? From the server perspective, it means that the user has no connected devices. This works well enough in cases where users only have one device and don’t use session resumption as described in XEP-0198: Stream Management. Today, this is not the most common use case when it comes to mobile applications. First of all XEP-0198 is used because it helps to make sure that stanzas are delivered from the server to the client and the other way around. What is also important to note is that mobile applications are not always active. People switch applications or put their phone down. In this case, the app goes into the background and the network communication is limited to save battery. This leads to a situation where a device may not respond to regular TCP communication (because it’s disconnected or in the background) and the server still thinks the user is online. Push notifications are often used to notify the user that there is new information for them to check, so it is important that the notification is delivered in seconds, not minutes. In order to solve the problem, MongooseIM 3.6.0 and later versions, can send push notifications to such user sessions which are in the “undecided” state. More technical details and information on how to configure this behaviour can be found in the push notifications documentation.

Fine grained push notifications priority control

Not all Push Notifications will have the same level of priority. Sometimes you will want to change the priority in order to have a different behaviour on the client device. Before MongooseIM 3.6.0 it was not possible to change the priority level, even though MongoosePush, which talks to FCM or APNS, has that functionality. In order to address this limitation, we decided to give the control of the priority to the application developer. Now the priority can be set while enabling push notifications. Take a look at the enabling push notifications documentation to see the possible values and the other options you can set while enabling push notifications.

How has MongooseIM changed from for the operator?

No PubSub

The other thing we learned from our users was that they always use MongooseIM as both the instant messaging server and the service responsible for sending push notifications. The XEP-0357: Push Notifications is very generic and allows you to configure a PubSub service responsible for delivering push notifications on a different server. This was not the case in all the installations we were aware of. Because of that, we decided to bypass the PubSub communication in a situation where we know MongooseIM is responsible for sending push notifications. This makes the MongooseIM configuration easier, with no need to configure the PubSub service. What is more important is that it reduces the load on the nodes and minimises delays in delivering push notifications. In the PubSub-less configuration, MongooseIM can talk directly to MongoosePush in order to deliver push notifications. This was implemented in a way that allows smooth migrations for older versions of MongooseIM where push notifications were already used in the full version. More details about all the possible setups, their advantages and drawbacks can be found in our push notification tutorial.

RDBMS backend

In production systems it’s more convenient to store persistent data in an external database. It makes life easier when it comes to clustering MongooseIM and using it in containers. One of the previous releases introduced an RDBMS backend for PubSub but this kind of backend was still missing for push notifications. Now we have it, so you can start storing all the details, passed from the app when enabling push notifications and required to deliver them in Postgres, MySQL or even MSSQL.

Inactive device id removed

The device ids (in other words device tokens you get from APNS or FCM) are not valid indefinitely. Generating push notifications to expired tokens doesn’t make sense and introduces unneeded load in the system. Thanks to integrating with MongoosePush 2.0 and it’s new API v3 for push notifications, MongooseIM can detect if a push notification was sent to a device token which is no longer active and remove it from its database. Thanks to that we eliminate stale data as soon as we know it is no longer useful.

MongoosePush 2.0.0

The last 6 months were also busy around MongoosePush development. It’s a standalone service written in Elixir. It exposes a simple HTTP (1.1 and 2.0) API which can be used to trigger push notifications to FCM and APNS. The recent version added support for new authentication methods to APNS, support for new FCM v1 protocol and unified error codes which allows for instances to detect if the device token is active or not.

More information can be found in MongoosePush 2.0.0 changelog and its documentation on GitHub esl/MongoosePush.

Other changes

Push notification improvements are not the only change in MongooseIM 3.6.0. Take a look at 3.6.0 changelog to learn more and give it a try and share feedback!

Help us improve the MongooseIM platform:

  1. Star our repo: esl/MongooseIM
  2. Report issues: esl/MongooseIM/issues
  3. Share your thoughts via Twitter
  4. Download MongooseIM 3.6.0 Docker image
  5. Download MongoosePush 2.0.0 Docker image
  6. Sign up to our dedicated mailing list to stay up to date about MongooseIM, messaging innovations and industry news.
  7. Check out our MongooseIM product page for more information on the MongooseIM platform.

Monal IM: Catalyst looks more like a Mac App

The neat thing about catalyst apps is that while it is the iOS code and UI you can also adjust it to add Mac functionality. Rather than having to rebuild a second app, I am able add on Mac features or tweak the iOS ones to work like a mac. The next catalyst build will show some of this. New features:

Unified title bar (like first party apps)

Fully functional Mac menus:

Yes, the keyboard short cuts worksThe ones here work as well and make editing the chats screen easier

Mac file dialogs instead of brining up the iOS photo selector/camera when you attach a file or change the background.

I will add drag and drop in a future update. This will also bring drag and drop and keyboard shortcuts to the iPad app. This is an example of how Catalyst has sped up development bu reducing the amount of code and testing needed. There is a lot to be excited about here for the Mac, I hope other developers are doing similar things.

February 09 2020

Peter Saint-Andre: Serenity

Just as people used to ask me how I accomplish so much, recently a few people have asked me how I stay so serene. Although this question is harder to answer, I'll give it a try....

February 07 2020

Monal IM: Sending Encrypted Images

There is a new iOS and Catalyst build up. This supports sending encrypted links with the aesgcm scheme.

February 06 2020

ProcessOne: Your Development Infrastructure Needs Green & Lean Computing

Software energy consumption is on the rise. The Internet and its online services now account for more than 7% of the planet’s electric consumption. Usage continues to grow extremely rapidly while energy consumption increases almost linearly with usage.

As developers, it’s not possible to ignore the problem of sustainability. As a company providing online applications and services for users, we must also make a commitment to reverse the trend.

However, CIOs are currently focusing on the use of data centres supplied with more renewable energy and limiting the usage by users. But in order to have a real impact, the scope of action must be extended:

  • to the design of applications.
  • to the choice of energy-efficient applications.
  • to development approaches that integrate energy issues from the design stage, with partners who are aware of this process.

How can you reduce the energy footprint of your application?

ProcessOne introduces a new offering aimed at helping you to act on several dimensions on the path towards the real Green IT. This new service consists of three elements:

  1. Benchmark and Diagnostic. In order to define a remediation strategy, it’s critical to measure the energy efficiency of an application and to map the most energy consuming areas.

  2. Optimization. This is an iterative process, carried out with the client’s development team.

  3. Measurement and Iteration. The benchmark must be repeated after optimization to measure the optical impact in terms of gross performance, energy balance and operating cost reduction.

Where to start?

First, learn more about our Green IT initiative and offering. Then, feel free to contact us and chat how we can make your IT systems more environmentally sustainable!

February 05 2020

Monal IM: iOS 4.3 beta in testing

Monal 4.3 drops support for everything but iOS 12 and 13 and has the new UI. I expect it to be available soon. This build will also be the fist mac catalyst release — hopefully also in France. Its going to be a big update. I hope to have it ready by the middle of the month

February 04 2020

The XMPP Standards Foundation: Full speed XMPP universe! 04 Feb 2020


Welcome to the XMPP newsletter covering the month of January 2020, which has seen a lot of activity!

Please help us on this community effort, which process is fully transparent and adaptable.


Ingo Jürgensmann has written two interesting articles:

David Wong wrote an insightful point by point piece: A history of end-to-end encryption and the death of PGP

This Twitter thread started by Thierry Stoehr shows various use cases of XMPP in Instant Messaging: healthcare, miltary, police and law enforcement, municipal services, intelligence agencies, in-games chat... Please "Like" and "Share", and even add the use cases you have seen in action.

Mike Kuketz started of a series about different messengers including XMPP: Die verrückte Welt der Messenger – Messenger Teil1 (German).


XMPP Newsletter translations

This month, the French version is available on


As usual in this period of the year, the community of protocol makers united in the XMPP Summit. Two days of sharing and building the future of XMPP. This year has been productive, we covered various subjects such as:

  • XMPP Shortage Audit
  • Easy Passwordless Onboarding and Account Management
  • Account Rich Presence in PEP
  • MLS
  • End-to-End Encryption Key Management
  • Palaver IM Client
  • Why Push Notifications are not good enough?
  • MIX when?
  • IM-NG
  • commTeam ("Lightning talk")
  • Inbox / Unread / Bind2
  • XMPP as mandatory standard? (Lightning talk)
  • Stickers
  • XHTML-IM2 / Rich markup

vanitasvitae has written a huge live thread on Mastodon:

We will probably cover all these in more depth next month.

Software releases


The Ignite Realtime community has announced a series of updates:

Prosody 0.11.4 has been released.

Erlang Solutions has released MongooseIM 3.6.0 and MongoosePush 2.0.0.

Process One has published ejabberd 20.01.

Clients and applications

The Dino team has announced version 0.1, with a "development process that started three years ago and already combined work of 30 contributors, including 4 summer of code students and multiple development sprints". The news has even been covered by Hacker News and


Tigase has released BeagleIM 3.5 and SiskinIM 5.5, respectively for macOS and iOS.

Beagle IM

JC Brand has announced the release of Converse.js 6.0.0.

Georg Lukas has released yaxim 0.9.9 - FOSDEM Edition.

In the latest newsletter, we wrongly announced the release of profanity 0.8.0 due to a misunderstanding. Please be aware that profanity 0.8.0 has been released on the 3rd of February. Also, a new blog has opened.

Monal has seen a lot of news in January, among which Catalyst progress, iOS 4.2.1 and 4.2.2, and 4.2.3 releases to Testflight, UI progress in upcoming 4.3.

Please also follow progress:


Remi Corniere has released go-xmpp v0.4.0.

Tigase has just introduced halcyon, a Kotlin multiplatform XMPP client library.


Mastodon is getting support for XMPP URIs.

The EU H2020 CPSwarm project has produced as one of its main outcome the CPSwarm Workbench, a toolchain to model, optimize, simulate and deploy a swarm of Cyber Physical Systems. One of its opensource components released on Github, is the Simulation and Optimization Environment, which is used to evaluate the performance of a swarm solution. This environment has a distributed architecture based on XMPP, allowing to execute in parallel simulations on simulators deployed on distributed machines.


Tigase has upgraded their public servers with SASL-EXTERNAL for federation, and MUC avatars.

Jonas Schäfer has described the first update on in 2020.

Extensions and specifications


  • XEP-0283 (Moved)
  • XEP-0313 (Message Archive Management)
  • XEP-0335 (JSON Containers)
  • XEP-0357 (Push Notifications)
  • XEP-0359 (Unique and Stable Stanza IDs)
  • XEP-0367 (Message Attaching)
  • XEP-0373 (OpenPGP for XMPP)
  • XEP-0384 (OMEMO Encryption)
  • XEP-0385 (Stateless Inline Media Sharing (SIMS))
  • XEP-0391 (Jingle Encrypted Transports)
  • XEP-0397 (Instant Stream Resumption)
  • XEP-0398 (User Avatar to vCard-Based Avatars Conversion)
  • XEP-0399 (Client Key Support)
  • XEP-0400 (Multi-Factor Authentication with TOTP)
  • XEP-0403 (Mediated Information eXchange (MIX): Presence Support.)
  • XEP-0404 (Mediated Information eXchange (MIX): JID Hidden Channels.)
  • XEP-0406 (Mediated Information eXchange (MIX): MIX Administration)
  • XEP-0407 (Mediated Information eXchange (MIX): Miscellaneous Capabilities)
  • XEP-0408 (Mediated Information eXchange (MIX): Co-existence with MUC)
  • XEP-0409 (IM Routing-NG)
  • XEP-0411 (Bookmarks Conversion)



  • Version 0.1.0 of XEP-0427 (MAM Fastening Collation) has been released.
  • Abstract: This specification proposes a mechanism by which MAM results containing fastenings can be collated effectively.
  • URL:
  • Version 0.1.0 of XEP-0428 (Fallback Indication) has been released.
  • Abstract: This specification proposes a mechanism by which message bodies can be marked as being purely for fallback purposes, and therefore to be ignored by intermediaries and anything that understands the remainder of the message.
  • URL:
  • Version 0.1.0 of XEP-0429 (Special Interests Group End to End Encryption) has been released.
  • Abstract: This document proposes the formation of a Special Interest Group (SIG) within the XSF devoted to the development of end-to-end encryption within the context of XMPP.
  • URL:
  • Version 0.1.0 of XEP-0431 (Full Text Search in MAM) has been released.
  • Abstract: This specification proposes a field in the MAM form for full text searching.
  • URL:
  • Version 0.1.0 of XEP-0430 (Inbox) has been released.
  • Abstract: This specification proposes a mechanism by which clients can find a list of ongoing conversations and their state.
  • URL:


  • Version 0.3.0 of XEP-0401 (Easy User Onboarding)
  • Version 0.2.0 of XEP-0426 (Character counting in message bodies)
  • Version 0.2.1 of XEP-0393 (Message Styling)
  • Version 0.10.0 of XEP-0363 (HTTP File Upload)
  • Version 0.2.1 of XEP-0425 (Message Moderation)
  • Version 0.2.0 of XEP-0429 (Special Interests Group End to End Encryption)
  • Version 0.2.0 of XEP-0431 (Full Text Search in MAM)


Last Call

  • This message constitutes notice of a Last Call for comments on XEP-0363. The Last Call was restarted after the Council election, because the previous Council did not vote on the ongoing LC.
  • Title: HTTP File Upload
  • Abstract: This specification defines a protocol to request permissions from another entity to upload a file to a specific path on an HTTP server and at the same time receive a URL from which that file can later be downloaded again.
  • URL:
  • This Last Call begins today and shall end at the close of business on 2020-01-28.
  • This message constitutes notice of a Last Call for comments on XEP-0402.
  • Title: Bookmarks 2 (This Time it's Serious)
  • Abstract: This specification defines a syntax and storage profile for keeping a list of chatroom bookmarks on the server.
  • URL:
  • This Last Call begins today and shall end at the close of business on 2020-02-12.

Thanks all!

This XMPP Newsletter is produced collaboratively by the community.

Thanks to MDosch, Vanitasvitae, Wurstsalat, Neustradamus, Jwi, geOrg, licaon-kter, guus, horazont for their help in creating it!

Please share the news on "social networks":


This newsletter is published under CC by-sa license:

Older posts are this way If this message doesn't go away, click anywhere on the page to continue loading posts.
Could not load more posts
Maybe Soup is currently being updated? I'll try again automatically in a few seconds...
Just a second, loading more posts...
You've reached the end.

Don't be the product, buy the product!