Openfire and Spark — installation, the configuration in 2022. A review and recommendations on switching to another software

Sailor hat

In a corporate environment, among old-fashioned system administrators, there is an opinion that the most secure and flexible messenger is Openfire. But, unfortunately, the main advantage of this product is it's free. When we speak about real tasks, the program solves it either not good enough, or skips it due to lack of necessary tools.

It looks like people do not know about other products that do the same tasks but successfully: own server, secured messages, traffic encryption, a non-public messenger that does not depends on cloud services; media calls and file exchange, support for various operating systems and mobile devices; decent integration with other software used in a company.

Our company has been deploying and configuring corporate messengers in different companies for 18 years. Year after year we are dealing with misunderstandings from administrators, technical directors, and IT managers of various levels in this field.

Corporate messenger? Use Openfire! It's free and has everything! Administrators told me, and I saw it on the forums. Jabber forever! A lot of clients for all OS, unlimited options, flexibility, open-source, security, and blah-blah-blah.

After years of work, we build the list that we share with our current and future customers to save time and not repeat the same mistakes.

The article describes issues that people face when using Openfire corporate server and its client application Spark.

Our main work product — MyChat secure messenger. It also works on the open protocol, but this is not XMPP. That is why we tell about Openfire and compare it with MyChat — to show how it should work. In this article, we review the latest version of Openfire 4.7.0 (x64) from 01.19.2022 and MyChat corporate messenger 8.14.4 from 02.01.2022.

  1. Openfire + Java + XMPP = is it good?
  2. Huge traffic consumption, redundant protocol
  3. Restoring admin's password in Openfire
  4. Issues with localization
  5. No options to delete messages
  6. Issues with Cyrillic when logging into Active Directory
  7. Common tree-like contact list
  8. File transfering: pain and suffering
  9. How to connect to Openfire from different devices simultaneously
  10. No read statuses for private messages and conferences
  11. Multi-user conferences in Openfire
  12. No system of rights and restrictions
  13. Installing Openfire server on Windows
  14. Spark Client for Openfire
  15. Spark 3.0.0 beta
  16. iOS + Android + Openfire?
  17. Voice and video calls
  18. No technical support from a vendor
  19. Comparing Openfire with MyChat corporate messenger
  20. Recommendations on switching to MyChat

1. Openfire + Java + XMPP = is it good?


So, OpenFire is a server written on Java that works XMPP (Jabber) protocol. Nothing's wrong with that, right? Java is a cross-platform technology, and you can run a server on any operating system. Jabber is an open protocol. There are numerous applications for any supported OS.

Due to the fact that Java consumes a lot of operating memory be ready to load 2 gigabytes per 800 online users. It's approximately 2-3 megabytes per user online. The calculation is not precise because memory consumption increases non-linear: from high to low. Expect this scenario as it's impossible to make any optimizations. Be attentive when launching Openfire at the same time as other services on one physical or virtual server.

If you can handle increased traffic consumption by a server, a zoo of client applications that work on XMPP protocol is going to add some stress to your life. We tested the latest versions of Miranda, Pidgin, QIP Infium, Pandion, Psi, Conversations, Adium, Vacuum-IM, and, finally, Spark of the two latest versions (official client for Openfire).

All these applications serve one purpose but make mistakes own way. If your company works not only on Windows but Linux, macOS, Android, and iOS (show me a person without a phone), you probably need to install different client applications on different systems' various interfaces.

Besides, you won't get the full set of features for your Openfire server, because all these applications implement XMPP features partially, or with your own special vision. That's logical because these are completely different free software products and they don't oblige to anyone.

Spark is the strongest out of all other clients. It is an official application for Openfire but there is a fly in the ointment too.

First. It consumes memory a lot. If you want to deploy the program on a terminal server, expect troubles.

Actually, there are no surprises. Spark is written on Java, so it occupies memory as crazy. The funny thing is that a new beta version consumes memory 9 times more than the native application of MyChat Client can do more tasks and work faster:

Memory consumption Openfire and MyChat

If you have a terminal server then using Spark on it is a bad idea. Use MyChat in a terminal. You will save memory, increase performance, and get more features for work.

Second. No versions for mobile platforms. You will have to use a third-party product.

Take a look at MyChat again, it supports all the platforms — Windows/Linux/macOS, iOS/Android, and browser versions.


2. Huge traffic consumption, redundant protocol


The quote from the IBM website: "Perhaps, the main disadvantage of the protocol is that transferred information is redundant, as more than 70% XMPP traffic consists of presence status messages".

Another problem can be the impossibility to transfer non-modified binary data via this protocol. File transfer requires additional protocols.

This is not a problem for a network with gigabit network interfaces. But when you face the task when you need to connect people with external phones to a corporate chat, traffic becomes a crucial point. And it's expensive.

MyChat has no issues with traffic. First of all, its protocol is more economical and built on JSON. Secondly, all messages are compressed by GZIP, and besides a server and client decide if there is any point in doing so. For example, if a message is too short, compression is not effective.

A simple example of average server work:

MyChat Server

11 days of work, 60 users, 5 conferences, almost 3 000 messages, 28 megabytes of traffic in total. There is nothing to argue about.


3. Restoring admin's password in Openfire


There is no proper way for restoring or replacing a lost admin's password (admin/admin). You have to edit XML settings files or work with utilities such as phpMyAdmin to edit a database with the help of SQL scripts.

MyChat does not have issues like this at all. You always have an option to enter Admin Panel via MyChat Client token, for example, to change an administrator's password, open Admin Panel directly on the server, or use password restore options.


4. Issues with localization


When changing the language to English, Openfire acts weirdly. We changed our computer system and browser language to English and set the region to the USA to make screenshots in the English interface but that did not help, and the interface is displayed both in Russian and English. Somehow the program knows we are not from the USA :) People recommend editing plugin source texts (!) and compiling everything on your own.

Openfire language


5. No options to delete messages


This is a big issue that is not solved in Openfire. There are a lot of reasons for deleting messages in a corporate environment: when sent incorrectly, or for conscious deleting of confidential data. Yes, such a task is complicated. This technology must be supported both by the server and client application on all operating systems, and messages should be deleted from the history, and then synchronized as is done in the older version of MyChat in 2017.

Generally, this is an unsolved issue because it deals with XMPP. It is possible to make a protocol extension, but nobody is going to support it, and consequently, features won't work.


6. Issues with Cyrillic when logging into Active Directory


A traditional problem in Openfire. Perhaps, the developers think that domain logins can only be in ASCII.

MyChat does not have an issue like that, and it works with a domain via LDAP as Openfire does. Besides, the program supports several domains at the time, transparent authorization, etc.


7. Common tree-like contact list


Let's start with MyChat first. Later we will explain why. Imagine a company that uses several domains, 400-500 employees, various OU, nesting departments, and detailed information about people (names, phone numbers, photos, positions, email, etc.).

Open domain integration, connect, import users with departments on the server. A common contact list forms automatically with any level of nesting.

One button, Carl!

Moreover, there is a scripting engine for adding more features.

What does Openfire offer?

Manual forming for a contact list with one nesting level. Importing from a domain is chaotic. No style for displaying users in the chat. If you have a domain display name — it's enough.

Why not make it as it is done in MyChat? Names, surnames, internal phones, emails, domain logins — whatever you want. Do you want a nickname with a work position or a full name? Yes, please. Notice, you do not have to change anything in user accounts. No server restart is needed too :)

And yes, two domains need two servers that are possible to link. Openfire can't handle several separate domains.

Openfire periodically loses connection with Active Directory. It's not a big deal, but stability is still most wanted, especially when the developers claimed that synchronization is available. And when changing a password for a user in AD, then after some time it stops connecting to Openfire. Coincidence? (с)


8. File transfer: pain and suffering


It is hard to set up a file transfer in Openfire. It is impossible to send files via attachments or the icon above. When sending via attachments, the chat shows a message about failure. Using the button is also not helpful — the result is dev/null :)

Besides, the port TCP 7777 for file transfer is busy by the Openfire server and checked by Telnet:

Openfire proxy server

It does not work in Spark, and it won't work in any other client compatible with Jabber (Miranda, PSI, or Pandion) because transfer options are not compatible with each other. This information is for those who believe that "there are a lot of Jabber clients, choose whatever you want and everything will work just fine".

With a "bunch of jabber clients", the situation is so terrible that there is nothing to comment on.

Attempting to transfer files between Spark of different versions:

Spark different versions

Sending messages does not work, the program "freezes" and does not show any diagnostic messages:

Spark

However, it worked in some cases, but it was in Miranda :)


9. How to connect to Openfire from different devices simultaneously


Or, in other words — multilogins. You never think about how it works when launching Telegram on a desktop and your phone simultaneously.

But it is complicated on the technical side. But it's all clear for a final user.

But Openfire has another problem again: with one account, it is impossible to write from two different devices. More precisely, you can log in, but only the account which logged last will get the messages. As a result, the message does not reach both devices, but only one.

Synchronization? Never heard of it.

MyChat multilogins work perfectly, since v.8.2.


10. No read statuses for private messages and conferences


Well, just no. 2022, Viber, Whatsapp, Telegram, Signal... This is a regular feature, I have no idea how you can work without it.

MyChat has this feature. And not only in private dialogues, but in conferences too.

This feature works reliably.


11. Multi-user conferences in Openfire


Let's be clear, Openfire has them:

 Openfire conferences

They are not very convenient, there's not much you can do with them, but it's better than nothing. With a few of XMPP features, but still.

The only problem is that users will have to enter this conference on their own, there is almost nothing to configure. For example, logout prohibition, and automatic login by user groups, as it has been done in MyChat.

Rights are configured individually for each conference:

Openfire affiliations

But there are almost none, so the process is simple:)

But you can add a non-existent as a moderator:

Openfire Admin Panel

It is not very clear how the system understands who is the moderator of the conference, because Openfire does not have a system of rights and restrictions.


12. No system of rights and restrictions


Looks like Ignite Realtime do not know about user roles, groups of rights, and restrictions. Either a regular user or root. It turns out that if you need to send files and private messages to one group of users, and not to the other, then it will not work. Or you pick up a file, Intellij Idea, or source code, and do what you need. Yes, this is open source.

OK, again — user rights are not Openfire's strongest part of Openfire.

MyChat has rights groups, with a tree-like structure. You can customize any aspect of the program. There are more than two and a half hundred rights and permissions. If you want to forbid exiting the program — one checkmark. Allow must-read broadcast — another checkmark (do not bother, this super feature is not available in Openfire and is not expected in the future).

Permissions are applied on the fly, you don't even need to reconnect applications.

Even the nuances of the administrators' work can be configured. For example, give a young Padawan to read the system logs, and allow a security officer to check the messaging logs. In order not to break or bend something in the server settings. Allow deputy administrator everything except rights management.


13. Installing Openfire server on Windows


I intentionally moved this excellent procedure to the end of the article, because it is simply impossible to do serious enterprise-level software this way. And I'll show you why.

Download a 90 MB installer of the latest version of Java Runtime Environment (JRE x64, it is important because the OpenFire distributional file is also x64) from the Java official website.

Openfire won't install without it. OK:

Installing Openfire server

A reminder from Oracle that says if we use Java for commercial purposes, you should pay:

Oracle

Skip this step, install JRE, and re-install Openfire.

The installer without digital signature in 2022.

UAC Openfire

Ok, move on. Standard installation, license agreement, folder selection, launch at the end of the installation, everything is as usual:

Setup Openfire

The server launched as a service via TCP port 9090 (http://localhost:9090/setup/index.jsp), a browser opens the settings wizard for choosing language:

Openfire settings

We chose English, and our whole system is in English, but somehow it decides to display the interface in russian. Weird. The page design is kind of adaptive, but not really:

 Openfire adaptivity

Unfortunately, there is no Help to find the definition of "Property encryption key". Skip it and move on.

Openfire database

Select embedded database because we install the server from the very start and it's too soon for an external database.

Профили Openfire

Use default profile settings, but it's not clear how to use domain users and regular ones, or several domains at the time.

And this weird unchecked box:

Openfire hash

"Security" again. It means, by default, the Openfire database saves passwords publicly (!), and is not hashed. Moreover, a user must know how modern his client application is, and whether can it work with hashed passwords.

This is 2022. OK, I don't know, so I skip this box and move on.

Configuring admin's account:

Openfire admin account

Creators probably do not know how to use a hyphen instead of minus signs.

Why two fields to repeat a password if you can check it via the icon?

What happens if I specify an incorrect admin's email address or make a typo? Or don't even specify it at all?

Ok, skip this step too, and…

Openfire server error

Press the button "Back" in a browser, and it works?

Openfire server

There is nothing optimistic in "It appears". But the guide for reinstalling the server does not feel good. OK, go to the admin's console and enter login and password admin/admin:

Entering Openfire server

It works, it let us to the admin's panel. The interface is awful, only the bravest administrator can look at it after dealing with text XML setting files.

Bouncing text:

Openfire design

No text style:

Openfire style

6 (!!!) pages of text properties for editing variables. Why create a convenient interface, and let the administrator suffer instead, am I right?

Openfire system properties

The minimum screen resolution to use the admin's panel without a horizontal scrolling line is 1860 horizontal pixels. Sure, let's add a FullHD monitor to system requirements.

Openfire weird behavior

How can it be if I just logged into the admin's panel 20 minutes ago?

A user's profile almost has no properties unlike MyChat where you can find a lot of these fields, and it is possible to make custom fields (for future use or domain import):

Openfire user properties

The registration date is an outdated feature. But I registered on February 6, 2022. And I am online. Openfire thinks differently.

OK, again, a user profile is not the strongest side of Openfire.

Basically, when creating a user, you can specify only 4 fields and one checkbox — an administrator or regular user:

Свойства пользователей Openfire


14. Spark Client for Openfire


Download the latest available Spark version 2.9.4 from November 15, 2020. Without JRE (one and the same developer for the server and client application). Right here, on the download page, you see a distributional file with or without JRE. But it does not work for the server though:

Installing Spark

Another step on a rake:

Spark Wizard

The Openfire client is 32-bit. They forgot to mention it on the download page. Sure, we are very excited to go through these jungles and install JRE TWO times in a row, x32 and x64.

Download the x32 variant via Java interpreter, and launch the Spark installer again. Obviously, no digital signature:

Spark UAC

Spark wants to install into Program Files:

Spark процесс установки

It makes sense after it requested elevated privileges at the start :) This is the wrong solution. Users do not have the right to install the software in Program files on their client computers.

SW memeNo automatic domain installation because MSI package is not provided, unlike MyChat. But on the other side, it's very unlikely that Spark will be updated in the near future as the last update was almost 15 months ago.

If it updates, will the administrators manage to update 400 computers manually?

Logging in to the server:

Spark login settings

At least we tried. Very friendly interface. Obviously, the server search must work but it doesn't. MyChat finds all the servers in a local network, names, parameters, and versions. It can check the connection.

The port is correct. The server works.

Oh, we need to enter a domain manually. Hooray!

A lot of windows to open a conference:

Spark windows

Sending files does not work. Why display this information as a separate message?

Traditionally, it is possible to send messages to yourself, they are duplicated in the chat:

Spark text

But the photo is not displayed even though I downloaded it.

Setting up a tree-like contact list is a mystery. But it is possible to add users to a contact list manually:

Spark contact

Or do it on the server but without nesting, only group/users and nothing more.

Design is worth mentioning.

I am trying to download a photo to a profile and get the message that my photo is not square, and I have to reduce its size to 64x64:

Spark аватар

However, the program accepted the photo.


15. Spark 3.0.0 beta


Honestly, I am disappointed that there are no convenient and pleasantly-looking clients for Jabber on Windows. Perhaps, it's because companies such as Google developed their own clients. There was a cool MDC, but, unfortunately, it's abandoned. The source code is available, but nobody wants to continue the work.

There was a hope that the third version of Spark is much better. But, unfortunately, that's not the truth.

All the troubles started after downloading the distributional file:

Spark 3.0.0 installation

Spark installer still does not have a digital signature.

A lot of bugs compared to previous Spark versions, you do not even have to search for them:

Spark 3.0.0


16. iOS + Android + Openfire?


There are third-party applications for Android, but nothing is convenient for iPhone.

MyChat supports these mobile platforms, and Huawei too. PUSH messages and video calls are provided.


17. Voice and video calls


If you read all the manuals, and edit XML in Vim with closed eyes, then you have no problems with setting up calls in Openfire.

But honestly, there are no integrated calls in Openfire. Only some questionable solutions that use the internet (e.g. Jitsi).

What about MyChat? Voice and video calls, screen sharing, WebRTC technology. Everything is ready to work right after installation on various operating systems and devices. Even in a browser.

Own TURN server for working with NATs.

Calls work in LAN without an internet connection and do not consume too much traffic as algorithms adapt to bandwidth automatically. No echoes or other unnecessary sounds.


18. No technical support from a vendor


A quote from the official forum. Openfire provides support via several volunteers. You may find someone on a paid basis. This is the reality of open-source free software. Nobody owes you anything when something gets broken or needs maintenance.

MyChat support service consisting of developers themselves is always ready to help.

19. Comparing Openfire with MyChat corporate messenger


We compare the latest version of Openfire 4.7.0 (x64) from January 19, 2022, and MyChat version 8.14.4 from February 1, 2022.

Ability Openfire MyChat
Installation, uninstallation and update system
1.1 Installer Yes Yes
1.2 Uninstaller Yes Yes
1.3 Automatic Installation No Yes
1.4 Automatic updating system No Yes
1.5 Automatic updating and saving of all the data when installing the latest version over the old one Yes Yes
1.6 Portable version No Yes
Network settings
2.1 Work in large networks Yes Yes
2.2 Work in complex networks and via the Internet Yes Yes
2.3 Guaranteed message delivery Yes Yes
2.4 Work in terminal sessions Yes, huge traffic consumption Yes
2.5 Traffic encryption Yes, but not supported by all clients Yes
2.6 Work in very bad networks (satellite connection, "long" pings) Depends on client application Yes
Default functions
3.1 Private messages Yes Yes
3.2 Message statuses (received, seen) No Yes
3.3 Text conferences Yes Yes
3.4 Notifications with a return receipt No Yes
3.5 Common Bulletin board No Yes
3.6 File transfer Depends on client application Yes
3.7 Images transfer Depends on client application, sent as a file Yes
3.8 Automatic backlight for links in a text Yes Yes
3.9 Messages history view Yes Yes
3.10 Event sound notification Yes Yes
3.11 Personal contact list Yes Yes
3.12 Sending messages and files to offline users Yes Yes
3.13 Graphic smileys Yes, but not emoji Yes
3.14 Voice calls No Yes
3.15 Video calls No Yes
3.16 Screen sharing No Yes
3.17 Multi-logins Yes, but messages are sent to one account only Yes
3.18 PUSH service for Android/iOS devices No Yes
3.19 Message history synchronization from the server No Yes
Active Directory integration
4.1 MSI package to deploy users via Group Policy No Yes
4.2 User transparent authorization No Yes
4.3 Importing users from the Windows domain Yes, limited Yes
4.4 Support for any amount of various domains No Yes
4.5 Collaboration between common and domain users Yes Yes
4.6 Login under domain users in MyChat applications for other operating systems: Android/iOS/Linux/macOS/WEB No Yes
Appearance configuration
5.1 GUI languages Yes Yes, UNICODE
5.2 Appearance customization Yes Yes
5.3 Font changing Yes Yes
Administration
6.1 Centralized configuration of user rights and restrictions Yes, very limited Yes
6.2 User Groups Yes Yes
6.3 Obscene words filter No Yes
6.4 IP, MAC, Hardware ID filters No Yes
6.5 Anti-spam and anti-flood filters No Yes
6.6 User management system Yes, limited Yes
6.7 Detailed reference information about users (Full name, email, phone numbers, date of birth, photo, etc.) Yes, but the number of fields is small Yes
6.8 View message logs on the server Yes, but the number of fields is small Yes
Operating systems
7.1 Windows Yes Yes
7.2 Android No native Yes
7.3 iOS No native Yes
7.4 Linux No native Yes
7.5 macOS No native Yes
7.6 WEB No Yes
Additional abilities
8.1 User network status "free", "busy", "away" Yes Yes
8.2 Scripting language to write simple programs which extend chat abilities No Yes
8.3 Integration with external services Yes Yes (1С, phpBB, REST, php, C#, Delphi, Python, etc.)
8.4 User search system Yes, limited Yes
8.5 Tree-like contact list that is common for the whole network with an unlimited nesting level No Yes
8.6 Account manager for several users who work on the same program Yes Yes
8.7 User ignore system No Yes
8.8 Plug-in system to extend program abilities Yes Yes
8.9 Company department list No Yes
8.10 Company work position list with the sorting "superiors from above" in the contact list No Yes
8.11 Built-in forum No Yes
8.12 Task management No Yes, Kanban
8.13 Website chat No Yes
8.14 Distrib Maker No Yes
8.15 Inviting users into chat via email or link without registration and application installation No Yes
Technical support
9.1 Built-in Help system No, one page on the forum Yes
9.2 Community support forum Yes Yes
9.3 Developers support via email No Yes
9.4 Additional reference information, articles about the program use on the website, blog, etc. No Yes
9.5 Developers support via Skype, Viber, Telegram, WhatsApp No Yes
9.6 Premium technical support No Yes
9.7 Paid improvements for a messenger No Yes

3. Recommendation regarding switching to MyChat


Why? Openfire messenger is only suitable for companies that do not need mobile applications. The program development is too slow; there is no versions for Android/iOS.

The main disadvantage is the absence of the centralized server and system for user management. No calls and a reliable system for storing and synchronizing message history. You can set up something but there is no ready solution "out of the box". No technical support for the Jabber server and clients because this software is developed by different people. That means no convenient compatibility. Issues with client applications for Android/IOS.


How to switch to MyChat? For small companies and budget-limited organizations such transfer from Nassi to MyChat is a logical move. It is completely free. The default license of MyChat up to 20 online users is free, with no trial period. MyChat updates are free too.

For organizations with a limited budget, it is a good decision. You can save money on licenses and the administrator salary. You can always upgrade to a commercial license.


Prices. The commercial version is for those who have more than 20 employees in a team/ The client applications are free. One concurrent connection costs $6. One year of updates is included in the license price. Programs that are purchased individually is MyChat Guest and Distrib Maker for custom setup files and the Quiz bot.


Decent support service. We provide support during the business day via email and popular messengers. Our official support forum.


How long you've been working? MyChat enterprise messenger development started in 2004. During this time we developed voice and video calls, applications for all popular OS, Kanban project management, internal forum and file server. We implemented integrations with 1C, Telegram, phpBB, Asterisk, TurboSMS, and popular programming languages. Updates are stably released up to 12 times a year.

More than half a million real users from Ukraine, Belarus, Kazakhstan, USA, Canada, Australia, India, Poland, Great Britain, etc.



Служба поддержки