dombiak_gaston's Profile

  • Name: Gaston Dombiak
  • Email: gaston@jivesoftware.com
  • Member Since: Sep 26, 2001
  • Last Logged In: May 17, 2008 12:50 AM
  • Status Level: Jiver Jiver (4,941 points)

dombiak_gaston's Latest Content

It took us some time but we finally made it. The Enterprise Edition plugin has been broken into smaller open source plugins as mentioned in the Turning Openfire Enterprise into an open source product blog post.

The new plugins can be found here:


With these new plugins the total number of official open source plugins is now 17. If we add the clustering plugin that is commercial and the 3 beta plugins that includes the popular Red5 plugin the total number of plugins comes up to 21. Finally, more plugins can be found in the Non-Jive Openfire Plugins document.

Enjoy,

The Openfire Team

24 Comments Permalink

We're in the process of making the Openfire Enterprise module Open Source (see Matt's blog). The Enterprise module provided several areas of functionality that were available as a single plugin. A quick list:

Reporting - a dashboard with statistics about server load, user sessions, chats, groupchats, etc. and support for executing reports.
Chat archiving - support for tracking conversations taking place on the server. Both one-to-one and groupchat conversations can be archived.
SparkWeb client - the web-based version of the successful Spark client.
Clustering - support for running several machines hosting the same domain. Thus adding fail-over and better scalability of the server.
Client control - controls whether certain features are available or not in the Spark client (e.g. file transfer, broadcast, groupchat, etc.). Moreover, it is also possible to specify which clients can connect to the server, push new versions of the Spark client and populate rosters with groupchat bookmarks.
Fastpath - provides rich web-based click-to-chat functionality with support for requests to the best available operator in queues. It's ideal for web-based realtime helpdesks.

Turning a commercial product into an open source product implies more effort that one would initially estimate. Therefore, we are going to break this process in two stages. During the first stage we will offer several plugins that will include the features listed above (with the exception of clustering). Our clustering solution relies on a commercial product and will not be made Open Source. The output of the first phase will be:

  • Reporting and Chat transcripts plugin - this plugin will include the reporting and chat transcript functionalities
  • SparkWeb - SparkWeb will be available as a separate project and not as an Openfire plugin
  • Client Control plugin - the ability to manage clients will be available as an Openfire plugin
  • Fastpath plugin - the Fastpath application will be composed of an Openfire plugin and the WebChat plugin. The webchat.war plugin can be deployed to Openfire as a plugin or can be deployed to your application server (e.g. Tomcat) of choice.

The second stage of this process will include:

  • Reporting and chat archiving - This functionality was available as a plugin in stage one. For stage two we will evaluate making it part of the server itself.

Stage one is planned for April 27th, 2008. That means that two weeks from now we will have most of the functionality included in the enterprise edition available as open source plugins. No clear date has been assigned to stage two but it should take place a few months after stage one.

23 Comments Permalink

The next major release of Openfire is going to be 3.5.0 and it will be released on March 6th. Daniel and I are very happy with this new release since it has lots of new features and improvements. Today I will explain how you can be connected but invisible to all or some users. This has been a very popular request in Openfire and in XMPP in general.

CASPER1.PNG

A few XMPP extensions were created for invisibility using different strategies (and may be goals). Some of them focused only in blocking your presence to other users while others were blocking incoming/outgoing presences, messages and IQ stanzas. But they have something in common that jeopardized their success. In a nutshell, they not only required server side changes but also client side changes thus making it hard for a user to find a server and a client that supports them.

As of Openfire 3.5.0 there is a very easy way to be invisible and at the same time be able to maintain a one-to-one chat, a group chat or appear visible to the users of your choice or gateways of your choice. The best part of it is that we are not relying on any XMPP extension but just using the XMPP RFC core.

Usually XMPP clients follow these steps while logging in:

  1. Connect to the XMPP server
  2. Secure the connection with TLS
  3. Authenticate with the server using SASL
  4. Send available presence to the server indicating that the client is now publicly available (e.g. <presence><priority>1</priority></presence>)
  5. Request their roster

The forth step is actually optional so if clients do not send an available presence then they will be connected to the server but will not appear available/online to other users. Unavailable users cannot get messages from other users unless they made available to them.

When the user decides to appear as online to someone in particular he can send an available presence to that user (e.g. <presence to='joe@myserver.com/Spark><priority>1</priority></presence>). Being available to a user means that the user will see you online and you can now chat with that user.

Users that are publicly unavailable can also join a room and have a groupchat. However, if the room is not anonymous (i.e. real JIDs are sent to room occupants) then the other users will know that you are connected and chatting. But probably you won't care about that unless you wanted to chat without anyone knowing that you are you. :)

Currently our Spark and Sparkweb clients are not able to join in invisible mode but implementing invisibility this way should be a lot less work for clients than implementing some XMPP extension.

15 Comments Permalink