History: Why Openfire
Preview of version: 39
Openfire has been selected as one of the Software Components for WikiSuite. Here are the general component criteria.
Why Openfire instead of the many options in this space? To properly explain this one, it's important to first distinguish the various "real time" use cases. All use cases need chat, most need audio and screensharing. However, there are some "key distinctive features" which make some tools great at one use case, but poor for another. Some solutions have variations. For example, Adobe has Adobe Connect Meetings, Adobe Connect Learning, Adobe Connect Webinars.
Realtime collaboration use cases chart
Type | Predominant mode | Key distinctive features | Typical app |
Ongoing Team collaboration on projects | 1 to 1, many to many or emergent | Presence, and can escalate to audio / video / screensharing as needed | Skype |
Meetings / conference calls | Many to many | Meeting notes (meeting agenda, and live collaborative note taking for decisions) | Etherpad + phone call, or Skype |
Webinars / Scheduled Course | 1 to many | Presentation and whiteboard | BigBlueButton |
Community presence and support | many to many | web interface and desktop/mobile clients | IRC |
Help desk for team members | 1 to 1, but can be transferred | Share screen and remote control. Easier to install software on their computer. | TeamViewer |
Help desk for customers | 1 to 1, but can be transferred | To route request to someone who is available. Canned responses. Difficult to install software on their computer. | Openfire Fastpath |
Remote Management | 1 to no one or 1 to 1 | Remote login and management, even unattended | VNC / Guacamole |
We picked Openfire for the following reasons:
- XMPP support, and thus presence (using standards)
- WebRTC support (via inclusion of Jitsi Meet)
- Great admin panel
- Vast feature set
- The community
- Generally satisfies the usual component criteria
We ultimately want WikiSuite to be awesome at covering all the use cases above, and we do so by mostly combining Openfire, with Jitsi Meet and Converse.js (which has both a pop up chat and a full page interface)
Why XMPP is important
https://xmpp.org/about/technology-overview.html
https://xmpp.org/about/myths.html
Why not BigBlueButton
While Openfire Meetings and BigBlueButton broadly share the same feature set (videoconferencing, screensharing, etc), there are fundamental difference.
BigBlueButton is a distance education tool.
- So the focus is one to many.
- No presence feature (it's for a scheduled class, and not ad hoc collaboration)
- No XMPP support
- Still in 2017, the Flash version is the main one, and the HTML5 version is not ready for prime time
Why not Etherpad or Hackpad
- Too few features
- No XMPP support
https://github.com/dropbox/hackpad
Why not Jitsi Meet (standalone)
- Jitsi Meet is part of the solution (WebRTC), but alone is not sufficient to cover the desired use cases, which is why WIkiSuite uses Jitsi Meet as part of Openfire. This is similar to how Jitsi Meet is part of Atlassian HipChat
Why not Apache OpenMeetings
Apache OpenMeetings is an interesting option with a diversity of paid support options and quite a few features, however, the focus is more about scheduled meetings or classes than ongoing collaboration. For example, XMPP is not supported.
Why not WebHuddle
Why not Spreed
No XMPP
Why not Hubl.in
Hubl.in as part of http://open-paas.org/ is a newer option. Social networking + videoconferencing + realtime collaborative editor + others.
This is WebRTC (which is great) but it doesn't handle XMPP.
https://github.com/linagora/hublin
Why not Tox
Tox is interesting
- But no XMPP
- Serverless aspect of Tox doesn't have huge value for us because WikiSuite is a server, and we have Syncthing for P2P file sync.
Why not Retroshare
Retroshare is very interesting
- But no XMPP
- Serverless aspect of Retroshare doesn't have huge value for us because WikiSuite is a server, and we have Syncthing for P2P file sync.
- Retroshare is more focused on disseminating files, than on collaborating on files
Why not Zulip
Not based on XMPP
Lots of chat features but what about videoconference?
Why not Otalk
Why not Tigase
Tigase is an XMPP server and it could have been the base
Why not ejabberd
ejabberd is an XMPP server and it could have been the base
ejabberd is written in Erlang (not a deal breaker, but less known than Java)
https://github.com/processone/ejabberd
Why not Prosody
- Prosody is an XMPP server. This could have served as the foundation.
Prosody is written in Lua (not a deal breaker, but less known than Java)
Prosody is lacking a web admin panel
There is no WebRTC support or plugin
Why not Mattermost
- Although there is a XMPP bridge, this is not a real XMPP server
Why not Matrix.org
- Interesting but not XMPP
Why not Rocket.chat
- not XMPP
Why not Let's Chat
- not XMPP
http://sdelements.github.io/lets-chat/
Why not CandyJS
CandyJS is interesting. And we experimented with it and contributed the conversion to Bootstrap for responsive design.
But:
- it's mostly designed for team chat (vs 1 on 1 chat)
- Converse.js has both a pop up chat and a full page interface
- activity level is low