Ignite Realtime Blog: Denial of Service Vulnerability in Smack 4.4 if XMPPTCPConnection is used with StAX
The fantastic folks behind Jitsi have discovered a Denial of Service (DoS) vulnerability in Smack ( JSA-2022-0002, [JSA-2022-0003](https://github.com/jitsi/security-advisories/blob/master/advisories/JSA-2022-00 … ⌘ Read more
Gajim: Gajim 1.5.4
Gajim 1.5.4 comes with a reworked file transfer interface, better URL detection, message selection improvements, and many fixes under the hood. Thank you for all your contributions!
Gajim’s interface for sending files has been reworked, and should be much easier to use now. For each file you’re about to send, Gajim will generate a preview. This way, you can avoid sending the wrong file to somebody. Regardless of how you start a file transfer, be it drag and drop, pasting a … ⌘ Read more
Erlang Solutions: Advent of Code 2022 – Every Puzzle Solved in Erlang
Day 1Christmas is getting closer and with that, the annual Advent of Code begins. For those who do not know, Advent of Code is a fun and inclusive event which provides a new programming puzzle every day. The fun is that these puzzles can be solved in any programming language and are accessible for varying levels of coding experience and skills. The real test is in your problem-solving. This year, we’ll be solving each of the problems in … ⌘ Read more
Erlang Solutions: RabbitMQ – An Amazing Message Broker
In cloud architectures (or microservices), applications are broken down into smaller independent blocks that can be quickly developed, deployed, and maintained. Imagine you have a cloud architecture that has many services and many requests per second, you have to make sure that no requests are lost and your web service is always ready to receive new requests instead of locked by processing the previous request and must ensure that the servi … ⌘ Read more
JMP: Writing a Chat Client from Scratch
There are a lot of things that go into building a chat system, such as client, server, and protocol. Even for only making a client there are lots of areas of focus, such as user experience, features, and performance. To keep this post a manageable size, we will just be building a client and will use an existing server and protocol (accessing Jabber network services using the XMPP protocol). We’ll make a practical GUI so we can test things, but not spend too much time on p … ⌘ Read more
Ignite Realtime Blog: HTTP File Upload plugin 1.2.0 released
We have now released version 1.2.0 of the HTTP File Upload plugin!
This plugin adds functionality to Openfire that allows clients to share files, as defined in the XEP-0363 ‘HTTP File Upload’ specification.
This release primarily enhances functionality when running in an Openfire cluster. All changes can be reviewed in [the changelog for this release](https://www.igniterealtime. … ⌘ Read more
Prosodical Thoughts: Bringing FASTer authentication to Prosody and XMPP
As our work continues on modernizing XMPP authentication,
we have some more new milestones to share with you. Until now our work has
mostly been focused on internal Prosody improvements, such as the new roles\
and permissions framework. Now we are starting to extend our
work to the actual client-to-server protocol in XMPP.
Prosody and [Snikket](https://snik … ⌘ Read more
Jérôme Poisson: Libervia progress note 2022-W45
Hello, it’s time for a long overdue progress note.
I’ll talk here about the work made on ActivityPub (AP) gateway and on end-to-end encryption around pubsub.
Oh, and if everything goes well, this blog post should be accessible from XMPP and ActivityPub (and HTTP and ATOM feed), using the same identifier goffi@goffi.org.
The work made on the AP gateway has been possible thanks to a NLnet/NGI0 grant (w … ⌘ Read more
Ignite Realtime Blog: Openfire Monitoring Service plugin 2.4.0 release
Earlier today, we have released version 2.4.0 of the Openfire Monitoring Service plugin. This plugin adds both statistics, as well as message archiving functionality to Openfire.
In this release, compatibility with future versions of Openfire is added. A bug that affects MSSQL users has been fixed, and the dreaded “Unable to save XML properties” error message has been resolved. A few other minor tweaks h … ⌘ Read more
ProcessOne: ejabberd turns 20
ejabberd is a piece of software that was born 20 years ago. This is a long time, even at the scale of Internet. And yet, what ejabberd represents has not always been obvious. It took us a long time to realize what was so important about ejabberd. Why have we been developing it for 20 years? Why are we pushing it further even today? What makes it so special?
ejabberd is a scalable messaging server. That sum … ⌘ Read more
ProcessOne: ejabberd turns 20
ejabberd is a piece of software that was born 20 years ago. This is a long time, even at the scale of Internet. And yet, what ejabberd represents has not always been obvious. It took us a long time to realize what was so important about ejabberd. Why have we been developing it for 20 years? Why are we pushing it further even today? What makes it so special?
ejabberd is a scalable messaging server. That sums it all and that does not do justice to this critical piece of the Internet infr … ⌘ Read more
Ignite Realtime Blog: Spark 3.0.0 Released
The Ignite Realtime community is happy to announce the release of Spark 3.0.0 version.
We decided to increase major version to 3.x to coincide with a complete UI refresh of Spark which was contributed by Amos. Now Spark uses only FlatLaf Look and Feel. We are very much grateful for his incredible work. Along that Pade Meetings plugin was added by [Dele](https://discourse.igniterealtime. … ⌘ Read more
Dino: Stateless File Sharing: Source Attachment and Wrap-Up
RecapStateless file sharing (sfs) is a generic file sharing message which, alongside metadata, sends a list of sources where the file can be retrieved from.
It is generic in the sense, that sources can be from different kinds of file transfer methods.
HTTP, Jingle and any other file transfers can be encapsulated with it.
The big idea is that functionality can be implemented for all file transfer methods at once, thanks to … ⌘ Read more
Ignite Realtime Blog: Openfire 4.7.4 release
The Ignite Realtime Community is happy to announce the 4.7.4 release of Openfire. This release fixes a number of bugs and represents our effort to provide a stable 4.7.x series while work continues on the next feature release of Openfire.
Notable fixes include enhancements to cluster-specific implementation of Multi-User Chat functionality, improved websocket handling and improv … ⌘ Read more
Ignite Realtime Blog: Hazelcast plugin version 2.6.1 released!
The Ignite Realtime community is happy to announce the immediate availability of version 2.6.1 of the Hazelcast plugin for Openfire! The Hazelcast plugin is what allows you to deploy Openfire as a clustered solution.
This release includes only one improvement, but that one can bring a significant performance improvement as compared to older versions … ⌘ Read more
Ignite Realtime Blog: REST API Openfire plugin 1.10.1 released!
We are happy to announce the immediate availability of version 1.10.1 of the REST API plugin for Openfire!
This is a bugfix release, that will improve the endpoints that make modifications to MUC rooms.
The updated plugin should become available for download in your Openfire admin console in the course of the next few hours. Alternatively, you can download the plugin directly, from [the plugin’s archive page](https:// … ⌘ Read more
ProcessOne: Matrix protocol added to ejabberd
ejabberd is already the most versatile and scalable messaging server. In this post, we are giving a sneak peak at what is coming next.
ejabberd just get new ace in it sleeve – you can now use ejabberd to talk with other Matrix servers, a protocol sometimes used for small corporate server messaging.
Of course, you all know ejabberd supports the XMPP instant messaging protocol with hundreds of XMPP extensions, this is what it is famous for.
The second ma … ⌘ Read more
The XMPP Standards Foundation: The XMPP Newsletter October 2022
Welcome to the XMPP Newsletter, great to have you here again! This issue covers the month of October 2022.
Like this newsletter, many projects and their efforts in the XMPP community are a result of people’s voluntary work. If you are happy with the services and software you may be using, especially throughout the current situation, please consider saying thanks or help these projects! Interested in supporting the Newsletter team? Read more at t … ⌘ Read more
JMP: Newsletter: New Cheogram Android Release, Chatwoot Instance
Hi everyone!
Welcome to the latest edition of your pseudo-monthly JMP update!
In case it’s been a while since you checked out JMP, here’s a refresher: JMP lets you send and receive text and picture messages (and calls) through a real phone number right from your computer, tablet, phone, or anything else that has a Jabber client. Among other things, JMP has these features: Your phone number on every device; Multiple phone numbers, one … ⌘ Read more
Gajim: Gajim 1.5.3
Gajim 1.5.3 brings back a feature many of you missed: selecting and copying multiple messages. Emoji shortcodes have been improved and cover even more emojis now. Gajim also lets you mark workspaces as read, so you don’t have to go through all conversations. Thank you for all your contributions!
Since we changed the way Gajim displays messages in Gajim 1.4, selecting multiple messages to copy them was not possible anymore. With Gajim 1.5.3 you can now select multiple messag … ⌘ Read more
JMP: SMS Account Verification
Some apps and services (but not JMP!) require an SMS verification code in order to create a new account. (Note that this is different from using SMS for authentication; which is a bad idea since SMS can be easily intercepted, are not encrypted in transit, and are v … ⌘ Read more
ProcessOne: ejabberd 22.10
This ejabberd 22.10 release includes six months of work, over 140 commits, including relevant improvements in MIX, MUC, SQL, and installers, and bug fixes as usual.
This version brings support for latest MIX protocol version, and significantly improves detection and recovery of SQL connection issues.
There are no breaking changes in SQL schem … ⌘ Read more
ProcessOne: ejabberd 22.10
This ejabberd 22.10 release includes five months of work, over 120 commits, including relevant improvements in MIX, MUC, SQL, and installers, and bug fixes as usual.
This version bring support for latest MIX protocol version, and significantly improves detection and recovery of SQL connection issues.
There are no breaking changes in SQL schem … ⌘ Read more
Paul Schaub: Implementing Packet Sequence Validation using Pushdown Automata
This is part 2 of a small series on verifying the validity of packet sequences using tools from theoretical computer science. Read part 1 here.
In the previous blog post I discussed how a formal grammar can be transformed into a pushdown automaton in order to check if a sequence of packets or token … ⌘ Read more
ProcessOne: Matrix protocol added to ejabberd
ejabberd is already the most versatile and scalable messaging server. In this post, we are giving a sneak peak at what is coming next.
ejabberd just get new ace in it sleeve – you can now use ejabberd to talk with other Matrix servers, a protocol sometimes used for small corporate server messaging.
Of course, you all know ejabberd supports the XMPP instant messaging protocol with hundreds of XMPP extensions, this is what it is famous for.
The second ma … ⌘ Read more
Erlang Solutions: Learning functional and concurrent programming concepts with Elixir
If you are early in the process of learning Elixir or considering learning it in the future, you may have wondered a few things. What is the experience like? How easy is it to pick up functional and concurrent programming concepts when coming from a background in languages which lack those features? Which aspects of the … ⌘ Read more
ProcessOne: Matrix protocol added to ejabberd
ejabberd is already the most versatile and scalable messaging server. In this post, we are giving a sneak peak at what is coming next.
ejabberd just get new ace in it sleeve – you can now use ejabberd to talk with other Matrix servers, a protocol sometimes used for small corporate server messaging.
Of course, you all know ejabberd supports the XMPP instant messaging protocol with hundreds of XMPP extensions, this is what it is famous for.
The second ma … ⌘ Read more
Erlang Solutions: Everything you need to know about Phoenix Framework 1.7
It is an exciting time for the Elixir community. As you may have seen at ElixirConf or ElixirConf EU, we are celebrating the 10th anniversary of Elixir. Despite now being 10 years old, there is no slowdown in the number of exciting new features, frameworks, and improvements being made to the language.
One of the most exciting … ⌘ Read more
Prosodical Thoughts: Mutation Testing in Prosody
This is a post about a new automated testing technique we have recently
adopted to help us during our daily development work on Prosody. It’s probably
most interesting to developers, but anyone technically-inclined should be able
to follow along!
If you’re unfamiliar with our project, it’s an open-source real-time messaging
server, built around the XMPP protocol. It’s used by many organizations and
self-hosting hobbyists, and also powers applications such as [Snikke … ⌘ Read more
ProcessOne: Matrix protocol added to ejabberd
ejabberd is already the most versatile and scalable messaging server. In this post, we are giving a sneak peak at what is coming next.
ejabberd just get new ace in it sleeve – you can now use ejabberd to talk with other Matrix servers, a protocol sometimes used for small corporate server messaging.
Of course, you all know ejabberd supports the XMPP instant messaging protocol with hundreds of XMPP extensions, this is what it is famous for.
The second ma … ⌘ Read more
JMP: SMS Account Verification
Some apps and services (but not JMP!) require an SMS verification code in order to create a new account. (Note that this is different from using SMS for authentication; which is a bad idea since SMS can be easily intercepted, are not encrypted in transit, and are v … ⌘ Read more
Gajim: Gajim 1.5.2
Gajim 1.5.2 brings another performance boost, better emojis, improvements for group chat moderators, and many bug fixes. Thank you for all your contributions!
Generating performance profiles for Gajim revealed some bottlenecks in Gajim’s code. After fixing these, switching chats should now feel snappier than before.
Did you know that you can use shortcodes for typing emojis? Typing :+1 for example will ope … ⌘ Read more
Erlang Solutions: Pair Programming
As a junior software developer, finding the right tools and techniques to help you learn a new language or technology can make a huge difference. While spending the last few months learning Erlang and Elixir, one of the techniques that I have found really helpful is pair programming.
I will be breaking down the concept of pair programming and my experiences with it so far, including the benefits and different ways of utilizing this programming style.
**What is pair progra … ⌘ Read moreThe XMPP Standards Foundation: The XMPP Newsletter September 2022
Welcome to the XMPP Newsletter, great to have you here again! This issue covers the month of September 2022.
Like this newsletter, many projects and their efforts in the XMPP community are a result of people’s voluntary work. If you are happy with the services and software you may be using, especially throughout the current situation, please consider saying thanks or help these projects! Interested in supporting the Newsletter team? Read mor … ⌘ Read more
Ignite Realtime Blog: REST API Openfire plugin 1.10.0 released!
We are happy to announce the immediate availability of version 1.10.0 of the REST API plugin for Openfire!
This release will see the performance on lookups of MUC rooms based on case-insensitive room names, or non-existing rooms. This will be particularly notable in systems that hold many chat rooms.
Another feature that is added is that basic statistics on REST endpoint usage are now exposed. These can be viewed thro … ⌘ Read more
JMP: Newsletter: Voicemail Changes, Opt-in Jabber ID Discoverability
Hi everyone!
Welcome to the latest edition of your pseudo-monthly JMP update!
In case it’s been a while since you checked out JMP, here’s a refresher: JMP lets you send and receive text and picture messages (and calls) through a real phone number right from your computer, tablet, phone, or anything else that has a Jabber client. Among other things, JMP has these features: Your phone number on every device; Multiple phone number … ⌘ Read more
Tigase Blog: Tigase XMPP Client Apps
Our XMPP Chat Apps philosophyWeb based, JavaScript, React and so on app are great… for developers.
We do care about users and we understand that the only way to provide users with great experience is through native apps.
Therefore we have put a lot of effort and dedication to develop native client for each platform separately. Each of our
apps is tailored for the best experience and native feeling. Plus they are optimized for each platform, so they are
lightweight but also powerful and take … ⌘ Read more
Tigase Blog: Tigase XMPP Server
Tigase XMPP Server is Java based softwareTigase XMPP Server is a standalone application written in Java. It is not a “web server” system. It runs independently
from any other software. In most cases all it needs to run is Java Virtual Machine (JVM). For extended functionality
it may require a few external libraries for the most part it is all in-house developed software.
Java is known and infamous for it’s high resource requirements and slowness. This unfor … ⌘ Read more
Tigase Blog: Tigase XMPP Libraries
Our software philosophyActually nothing new and nothing surprising here. We want to have as much of a reusable code as possible. And this
reusable code should have a simple but powerful API to be useful for quickly creating software.
That’s it.
And this is how we design and develop our XMPP libraries. Check them out.
Documentation to all our projects is available online and sample codes? Take a look at our XMPP Chat apps which are
open source too. ⌘ Read more
Tigase Blog: Tigase Instant Communication, Presence and Messaging
What is “Instant Communication”First things first. What is this all about?
We say this is “Instant communication” or “Near real-time communication” and indeed, this is about communicating,
talking, sending messages, sending other information, documents. Instant or real-time means, whatever you send, is sent
right away, it is also delivered right away.
Would the receiving person get it right away too? Well, it depends, if the person is online, it … ⌘ Read more
JMP: Privacy and Threat Modelling
One often hears people ask if a product or service is “good for privacy” or if some practice they intend to incorporate is “good enough” for their privacy needs. The problem with most such questions is that they often lack the necessary context, called a threat model, in order to even begin to understand how to answer them. Understanding your own threat model (and making any implicit model you carry more explicit to yourself) is one of the most important steps you can take to im … ⌘ Read more
JMP: Privacy and Threat Modelling
One often hears people ask if a product or service is “good for privacy” or if some practice they intend to incorporate is “good enough” for their privacy needs. The problem with most such questions is that they often lack the necessary context, called a threat model, in order to even begin to understand how to answer them. Understanding your own threat model (and making any implicit model you carry more explicit to yourself) is one of the most important steps you can take to im … ⌘ Read more
Ignite Realtime Blog: New Openfire plugin: Push Server!
The Ignite Realtime Community is pleased to announce the 1.0.0 release of the Push Server plugin for Openfire. This plugin is developed by the company Busoft Teknoloji A.Ş. It is inspired by Conversations Push Proxy and developed for Openfire.
Your instance of Openfire should automatically display the availability of the new plugin in the next few hours. Alternatively, you … ⌘ Read more
Paul Schaub: Using Pushdown Automata to verify Packet Sequences
As a software developer, most of my work day is spent working practically by coding and hacking away. Recently though I stumbled across an interesting problem which required another, more theoretical approach;
An OpenPGP message contains of a sequence of packets. There are signatures, encrypted data packets and their accompanying encrypted session keys, compressed data and literal data, the latter being the packet … ⌘ Read more
Maxime Buquet: Versioning
I finally took time to setup a forge and some old drafts turned up. I am
publishing one of them today as is even though it’s 4 years old
(2018-08-07T13:27:43+01:00). I’m not as grumpy as I was at the time but I
still think this applies.
Today I am grumpy at people’s expectation of a free software project, about
versioning and releases. I am mostly concerned about applications rather than
libraries in this article but I am sure some of this would apply to libraries
as well.
Today we were discussing ab … ⌘ Read more
Arnaud Joset: Updates: chatty server and HTTPAuthentificationOverXMPP
It’s been a long time since I updated this blog. It will be a short update post about two projects.
The first is chatty_server, a small XMPP bot I use to interact with my server. It allows me to get information about the CPU load, traffic, weather etc.
It also has a small feature to get reminder messages. There was a bug that allowed anyone to spam reminders. Anybody can add the bot to their rooster and could create random reminders t … ⌘ Read more
Monal IM: Monal IM – project moved
We recently started to migrate the App from Anu Pokharel‘s Apple account to Thilo Molitor‘s Apple account.
Aspart of this transition we also deployed some new push servers to not let an old retired developer pay for the infrastructure needed for Monal.
Coming along with this transition from the old developer team to the new one is our new clean website at https://monal-im.org/. From now on, this blog will not be used for Monal anymore.
**Many t … ⌘ Read more
Dino: Stateless File Sharing: Async, Metadata with Thumbnails and some UI
AsyncAsynchronous programming is a neat tool, until you work with a foreign project in a foreign language using it.
As a messenger, Dino uses lots of asynchronous code, not always though.
Usually my progress wasn’t interfered by such instances, but sometimes I had to work around it.
Async in Vala
No surprises here.
Functions are annotated with async, and yield expressions that are asyn … ⌘ Read more
The XMPP Standards Foundation: The XMPP Newsletter August 2022
Welcome to the XMPP Newsletter, great to have you here again! This issue covers the month of August 2022.
Like this newsletter, many projects and their efforts in the XMPP community are a result of people’s voluntary work. If you are happy with the services and software you may be using, especially throughout the current situation, please consider saying thanks or help these projects! Interested in supporting the Newsletter team? Read more at the … ⌘ Read more
Kaidan: Encrypted Audio and Video Calls
Kaidan will receive a grant by NLnet for adding encrypted audio and video calls.
The calls will be end-to-end encrypted and authenticated via OMEMO.
Furthermore, Kaidan will support small group calls.
We strive for interoperability between Kaidan and other XMPP apps supporting calls.
In order to achie … ⌘ Read more