Frequently Asked Questions (FAQ)
Table of contents
When we tried to onboard users in the past, there were different but similar bad stories: We usually did not know if we suggested the best provider to that person. After a couple of registration attempts, we found out that the provider did not provide registrations via the user’s app.
So, we switched to another one we recalled to be a good one for previous registrations. The registration was finally successful but the user told us that some functionalities did not work. After some hours of investigation, we found out that the provider did simply not support all features the user’s app supported.
There were similar situations each time we wanted to help people using XMPP. Thus, we decided to collect all data we could find about several providers. We categorized them to quickly find providers with properties users would expect nowadays.
XMPP Providers is a project made to simplify the users’ onboardings. Therefore, the criteria we use for the categorization are from a user’s perspective. We evaluated all of them with an ordinary user without XMPP experience in mind. That should help more people to find their way to free communication via XMPP.
The category of a provider is determined by its properties. Those properties must be verifiable.
In case of the compatibility or security ratings, that means that there have to be results for the providers. The account registration via an app has to work without complications. For properties such as the web registration or the website language alternatives, there must be links. And there have to be statements e.g. about the service price or the support channels on the provider’s website.
The criteria are used to answer different questions. Here are some of them: Does the provider have good security settings? Does it support all common features of modern XMPP apps? Does it allow to share files up to a specific limit?
If a provider meets all criteria of a category, it is part of the providers in that category.
Here are all categories from best to worst. If you want to integrate XMPP Providers in your app, have a look at the category details.
Providers in this category can be used for registrations without user interaction. Users can simply confirm to register on a randomly chosen provider and start to chat right away. Those providers must have the best properties. They have to support registrations via XMPP apps and be free of charge.
Providers in this category can be used for registrations with user interaction. Users can select a provider based on individual preferences (e.g., the provider’s name). Those providers must have the best properties. But they only need to support registrations via a web page and their service does not need to be free of charge.
Providers in this category can be used for registrations with user interaction but provide only average properties. Those providers should only be offered to users if there is a certain reason for it.
Providers in this category cannot, if no registration is supported, or should not, because of bad properties, be used for registrations. Those providers should only be used for autocomplete (e.g., while adding a contact).
Each property is retrieved by one of the following methods:
- A rating service’s HTTP server is requested to gather a provider’s rating.
- A provider’s XMPP server is requested to gather data specified by an XMPP Extension Procotol (XEP).
- A provider’s HTTP server is requested to gather data via a provider file.
Those methods define a property’s source. A source is needed for transparency and maintainability of the data.
Furthermore, several properties are updated automatically on a daily basis. E.g., our web bot retrieves ratings from rating services and a provider file from a provider’s web server while our XMPP bot retrieves registration support and upload limits from a providers’ XMPP server. The specific update methods for both basic information and criteria are denoted in the Automatic Updates column.
All sources are stored in the providers file. That file is the data source of all provider properties. This website’s provider listings and details are based on it.
Our XMPP bot requests many properties via XMPP from the providers’ servers. Here are some hints on how to configure the server to provide the properties.
For determining whether a server supports the creation of accounts via XMPP apps, XEP-0077: In-Band Registration is used.
Please enable that feature to simplify the onboarding process for new users:
For retrieving a web page that can be used to create accounts, XEP-0077: In-Band Registration - Redirection is used.
Please use that feature to either provide an alternative way for users to create an account or if your server does not support account creation via XMPP apps:
- ejabberd: mod_register -
- Prosody (alternative modules):
For determining which software (including its version) a server runs, XEP-0092: Software Version is used.
Please enable that feature for checking whether your server runs the software desired by the user and whether it is up-to-date:
For retrieving the support addresses of a provider, XEP-0157: Contact Addresses for XMPP Services is used.
Please provide those addresses to enable users and our upcoming support bots to reach you (Important: Append
?join to group chat addresses):
- ejabberd: mod_disco -
server_info, entry with
- Prosody: mod_server_contact_info -
For determining how much users can upload to a server and how long those files are stored, XEP-0363: HTTP File Upload - Discovering Support is used.
Please set those limits as high as possible to enable users to share large files (such as videos) over a long period of time (e.g., if the recipient is offline on vacation):
- Prosody: mod_http_file_share -
Our web bot requests several properties via HTTP from the providers’ servers. For that purpose, a provider file is used.
Unfamiliar terms are explained here.
A property is called unknown if no source is available.
A provider file is a JSON file containing only the provider properties that cannot be retrieved via other methods. Each provider can generate a provider file and supply it via its web server.
The term bus factor describes the minimum number of team members that the service could not survive losing.
A provider’s service is seen as professionally hosted if it has a good internet connection speed, an uninterruptible power supply, access protection and regular backups. That is usually the case if the service is hosted in a data center.
thegreenwebfoundation.org offers a Green Web Check which enables you to check if your provider’s servers run on green energy. Please note that we use the provider’s XMPP host for checking, which might differ from the provider’s public internet address.
The client-to-server (C2S) connection is used for the communication between your app and your provider.
XEP-0363 HTTP File Upload is a standard for sharing files between you and others.
Server-to-server (S2S) connections are used for the communication between your provider and the provider of your contact.