Blog Posts

Blog Posts: 112
Items per page
Statistics: Blogs: 6 Blog Posts: 112   1 2 3 4 Previous Next

We are very pleased to announce the release of Openfire 3.6.0!  It has been a long time coming and may well include the highest number of bug fixes and improvements we've ever had in a single release.  Don't quote me on that, but it's certainly the largest number I recall seeing.  =)  While the bulk of them are bug fixes, there are a couple of big improvements I would like to highlight!

 

Clearspace Integration Improvements

We've improved upon the integration between Openfire and Clearspace quite a bit.  Most are bug fixes and performance improvements, but also some new backend features that further solidify the bond if it is set up.  Openfire now includes a Clearspace tab when integration is enabled so help make sure the link is performing properly.  On top of that, there are a lot of features in place in preparation for the addition of real time chat support in Clearspace.  More information will come on that at a later date.  We've also renamed the tables Openfire uses to make it easier to install it alongside other products in the same database, if you so choose.  The automatic upgrade procedures will take care of all of the hard work for you, so you shouldn't need to give it a second though.

 

LDAP Support Improvements

Openfire's LDAP support had some holes in it here and there that should be filled now.  Altbasedn, for example, was not used everywhere.  There is now support for alias following (or rather, turning it off), paged results (to make sure to get all of the available results instead of a subset), and a number of bug fixes for existing functionality.  Internally, a lot of the code has been cleaned up.  I still have a couple of things up my sleeve here and there for a future release, but I'm quite pleased with how this is looking now.

 

Multiple Conference Services

Every wished you could have more than one conference service set up with different rules?  Maybe you wanted one for public access with no room creation rules and restrictions, but also wanted an internal "protected" service that abided by strict rules.  Maybe you just wanted to set up some sort of specialized set.  Maybe you never wanted -any- conference services and just wanted to delete them.  Whatever the reason you might have, you can now set up as many or as little as you want.  In some cases, plugins may even be able to take advantage of a specialized service setup.

 

BOSH (HTTP Binding) Improvements

With many thanks to our Google Summer of Code student, Safa Sofuoglu, we now have updated BOSH 1.6 support, and a ton of misc bug fixes and improvements.  Improvements in this area were also performed on the connection managers!  I encourage you all to read about it in his report:

GSoC 2008 Report: Openfire and SparkWeb

 

More Configuration in Database

The openfire.xml config file was getting bloated and a lot of the configuration in it could easily have been moved into the database.  As a result, we've moved just about everything that doesn't fall into a category of:

  • how to connect to the database itself
  • config info specific to host itself

 

Why you might ask?  In a clustered environment, it makes it so you can set Openfire up once and now have to reconfigure the providers and such for each cluster member individually.  It also paves the way for support for things like, admins stored in the database, which means you can update the admin list on the fly, instead of having to edit openfire.xml and then restart the server.

 

Plugin Updates

It's important to update the following plugins to account for changes in the 3.6.0 API:

  • User Search
  • IM Gateway
  • Fastpath
  • Monitoring

 

Where Do I Get It?

 

You can download Openfire 3.6.0 here.

You can see the entire changelog here.

You can view the documentation for 3.6.0 here.

Plugins can be downloaded from the admin console or here.

5 Comments Permalink

I am proud to announce that I have successfully completed my Google Summer of Code Project. As we hit the official pencils down date, I thought it might be good to publish results and final toughts.

 

I started the project in time and completed it 3 working days later than planned, though it could require more effort if we didn't change our goals. I cooperated with Tomas and Tobias to fix the flaws I couldn't notice during development. Changes I made to Openfire and XIFF are listed here and here. All changes have been imported into trunk and hopefully be included in next releases.

 

It was a wonderful experience to work on Openfire and SparkWeb, especially with my mentor Gaston. Even if my GSoC project is complete, I feel there'll always be something to do for me with Jabber. I am having fun with Jabber, and planning to continue working on Jabber development as a community contributor.

 

I would like to thank Google for giving me such a great opportunity. I also thank David Smith and Peter Saint-Andre for their excellent support.

 

See you around!

6 Comments Permalink

As you most likely already know, we upgraded Ignite Realtime to use the latest Clearspace pending release, version 2.5!  We also upgraded a few things on the rest of the site, but they were primarily backend things.  I'm very excited to finally get Ignite Realtime up to a recent version!  I've been using this for a while internally and also on one of my own sites, and have been eagerly awaiting it's arrival at Ignite!  So with the new site, I wanted to go over some of the new features of Clearspace 2.5, and also a few plans we have coming up!  First of all, 2.5 has a number of cool new features that I wanted to go over, those are as follows:

 

Social Groups

Ever wished you could set up arbitrarily groups of community members who share a similar interest?  Maybe you wanted to coordinate on a project or just have a little space to chat about something you all find interesting?  With the new Social Groups feature, you can create whatever groups you want, complete with their own discussion spaces, documents, etc!  You can browse all of the available groups under Browse -> Groups in your user toolbar, join ones you find interesting, create new ones from the New menu.  It's completely up to you what you might want to put together!  It's all separate from the primary spaces so you won't interfere with anything going on in the primary site.  I'm highly interested to see what you all come up with!  Want to create a group that no one knows about but you and other members?  You can also set up private groups!

 

 

Custom Views

Don't like the layout we've chosen for the main page?  Tired of our layout dictatorship?    Well with this version you can set up your very own "Your View".  You'll see a tab for this when you go to the main Community page, and from there can customize to your heart's content!  Completely messed up your view?  Please post in the forums so we can laugh at you!  Kidding.    Seriously, there's a "Default" button you can press to return yourself to the original setup.  Plus at any time you can view the regular view by simply selecting the All Content tab.

 

 

Rich Text Editor

The new version boasts a rich text editor that actually works great!  We received a number of complaints about the previous rich text editor and it's numerous issues and made sure to provide something that folk can actually use!  Part of the problem with the previous editor was trying to support both rich text and wiki markup and plain text and... you get the picture.. you end up having to cobble together things that aren't meant to work that way.  The rich text editor wanted to do regular HTML in the background, but that conflicted with wiki macro.  Now, I know a few of you have brought up wanting some of the wiki macros back, and I have relayed this back to the developers of the editor, so stay tuned!  I will say this though, I thought I would never like a rich text editor, I always felt they messed something up for me, and this one is the first one I've actually enjoyed using.  There's a couple of kinks we are still working out though, so please bear with us!

 

 

 

Regular Updates

Since we are now running the latest code, we can start performing regular updates again!  That means faster fixes for issues you all report and hopefully a lot of cool improvements along the way!  We are effectively running a beta right now, so updates will be fairly often for now.  Your reports will be invaluable in helping make sure this community runs super smooth!  And since we're not running a release right now, bugs should get fixed quite soon after being reported! 

 

 

 

So That's Great, What's Coming Up

One of the things we've been working on heavily lately has been integrating real time chat wih Clearspace.  In the near future, we will be adding the chat plugin to Ignite Realtime, which will provide a number of cool things such as real time chat in spaces and social groups, automatic chat transcript recording, and scheduled chat events (similar to our weekly developer chat that you are probably familiar with).  In fact, we may be migrating the weekly chat to a room provided by the plugin!  Does this mean you can't connect from an external server?  Of course not!  The JID might just be different.  =)  Gato been making a lot of posts about the new functionality in the Jivespace community, you can read more about them in the following posts:

 

 

 

I Found A Bug, What Do I Do?

Your help in reporting bugs you find in the new site is invaluable!  I am monitoring site bug reports regularly and am passing any feedback back to the Clearspace developers.  Please report any bugs, concerns, or thoughts in the Jive Lounge, or even as a comment here if you'd like.  I want to thank all of you for your assistance in helping not only Ignite Realtime be the best it can be, but Clearspace as well!  Don't be afraid to nitpick.  We'd love to hear anything at all that you have to say!  I can't guarantee that every single issue will be taken care of, but we'll sure consider anything we hear!  Also if you don't feel comfortable with posting publically, you are welcome to private message me directly.  Thanks everyone!

5 Comments Permalink

This weekend I jumped back into development of SparkWeb to reacquaint myself with the list of outstanding issues/bugs in order to set a course for fixes and improvements. As a result, I have updated SparkWeb's roadmap in its issue tracker, adding a handful of bugs to be smashed in the weeks ahead for the 1.0 release (and also closed a lot of outdated ones). Clearly the next release will be focused on bugfixes and stabilizations. However, let's look into the void a bit further and see what new features and enhancements are on the horizon.

 

 

Dynamic Theming and Skinning

 

After developing on and using SparkWeb for nearly a year now, I have grown tired of its current skin and icon theme. In the code we are actually hardcoding a lot of color values and of course hardcoding the skin images themselves. This is not ideal in the least. Let's work towards a skinnable SparkWeb with updated icons. What I have in mind is something less "heavy" on the eyes, something like Yahoo's Flex skin they released under the BSD license:

 

http://www.yswfblog.com/blog/wp-content/uploads/2007/12/yskin_401x235shkl.jpg

 

 

As for the icons, they should also be themable. Imagine SparkWeb with a beatifully clean flex skin matched with the IM-related icons from KDE's Oxygen icon theme. I would like to see that, myself.

 

 

TLS Support

Secure communications over XMPP. Enough said, right? I am sure a lot of you would like this feature.

 

 

Plugin Framework

Easy extendabilitiy with the option to disable/enable certain functions would be great. I am sure a lot of you saw Dele's manipulations of SparkWeb adding Audio/Video communications. That is an obvious use case of such a framework, and I image his code would serve as a good guide for determining "plug points" in the code to implement it.

 

 

Stay tuned, and don't be shy to report bugs and submit patches of course.

 

--Armando

7 Comments Permalink

Hey all.

 

I have been selected as the new project lead for both the SparkWeb and XIFF projects here at the Ignite Realtime community. For about half a year David and I were the only developers contributing code to those projects on a full-time basis -- before SparkWeb's source was even opened up. I added initial support for shared groups, group chat invitations, kick/ban/nick-change announcements in group chat, various bug fixes, and a bunch of other little features here and there. With my previous work on SparkWeb I have seen first hand how its code has matured over the year. I think it is in a 'good' state right now, but clearly there is always room for improvements.

 

David has made a lot of necessary refactorings in the past that have improved its performance and Safa is currently ensuring SparkWeb is fully compatable with BOSH 1.6. Also, we have various other patches containing excellent improvements from other people in the community that will be included in an upcoming release. These two projects now have a decent amount of activity from outside of Jive, which is great.

 

From some recent conversations in the weekly chats it is clear to us that people feel comfortable with Openfire, the server -- and that what they are expecting to see is a client evolve to the same degree. I would like to hear more about this perspective so I can focus to make it happen in SparkWeb's use-case.

 

Interested in getting involved yourself? Well, what are you waiting for? This is an open source community after all... grab the source and join the fun. Send any of your code contributions, ideas, or feedback to me and let's make the most excellent XMPP web app/lib out there!

 

--Armando

11 Comments Permalink

I have updated the XIFF library to be compatible with BOSH 1.6. As SparkWeb is based on XIFF, most of the information here also applies to SparkWeb. Main good news are:

  • Login phase and communication using BOSH is noticeably faster thanks to new overactivity rules of 1.6.
  • BOSH connection is tested and working with Openfire, Tigase and ejabberd.

 

Additional Work

 

  • Added logging support to XIFF using Flex logging API (mx.logging).
  • Moved SASL logic from XMPPBOSHConnection to XMPPConnection, so now both connection types (BOSH and socket) share the same authentication code. Previously, socket connection was using non-SASL authentication.
  • Cleaned up some dead code and made BOSH connection class more configurable.
  • Fixed a few Openfire BOSH issues that appeared when testing XIFF.

 

Known Issues

 

This updated version of XIFF will be fully compatible with the updated Openfire and Openfire's BOSH update will be included in version 3.6.x. However,  there is an issue with Openfire versions released before the update.

 

According to XEP-0206, after a successful authentication, clients should send a body with xmpp:restart attribute set to true. But older Openfire versions do not recognize xmpp:restart, handling the request as if it was a polling request. Thus, it responds to the client after 30 seconds.

 

If you use the updated version of XIFF or SparkWeb with a version of Openfire that does not support BOSH 1.6 (i.e. lower than 3.6), please be aware that you will be experiencing a latency of 30 seconds during logins.

0 Comments Permalink

When SparkWeb became open-source, I took a look at the source code and found it had more features than the Flex-based XMPP client I was co-developing for the Red5 Plugin. It therefore made sense to migrate the Flash audio and video features we had developed for our client to SparkWeb and make it compatible with the Spark and Openfire Red5 Plugins and package it as part of the Red5 plugin. The downside to this that the modifications to the Red5 version of SparkWeb makes it out of sync with the official SVN and it could possibly become a fork requiring a name change later on.

 

So what does the Red5 SparkWeb offer?

 

  1. A plugin container for SparkWeb. I noticed  that quite a number of users are asking for a plugin to deploy SparkWeb. My advice would be to try the Red5 Plugin.

    Configure  Index.html and point your users at

    http://your_server:nnnn/red5_webapp_name/sparkweb

    Where nnnn is your HTTP-BIND port number (default 7070) and red5_webapp_name is your default red5 web application name (default red5)

  2. Enables use of the Red5 plugin audio and video features with both Spark and SparkWeb. You can't do video messaging and the video roster is replaced with visual presence (see below). You can make audio/video calls and share your desktop with your contacts. Each call record is logged in openfire and can be queried by the administrator with the Openfire SIP plugin.

  3. Makes SIP phone calls between Spark and SparkWeb users. All SparkWeb SIP calls are logged with the Openfire SIP plugin as well.

  4. Provides webcam support. If you have a webcam installed on your PC, it will be automatically detected and will be used instead of your vcard photo. You can disable this in index.html. You can add or replace your vcard photo with a snapshot of your webcam when you edit your profile. You can also publish snapshots from your webcam as visual presence to all your contacts. What this means is that all your contacts will have  a snapshot of your webcam in their rosters. The interval between snapshots is 60 secs by default and can be modified in index.html. See a draft copy of my proposal to extend XMPP with visual presence. Please feel free to post comments at the bottom of the document.

I also made a few cosmetic changes to my taste and added sound effects for incoming calls and instant messaging. I added some code to improve the loss of focus detection by tracking Flash application activation/deactivation messages and mouse movement. If you use Internet explorer and enable pop-ups, you will get a pop-up in the bottom right corner of the screen with a photo, name and first line of the incoming messaging if you are outside of SparkWeb when a new message arrives.

 

I am hoping to add fastpath support and a calendar to SparkWeb next.

6 Comments Permalink

I am working on BOSH support of Openfire and SparkWeb as part of the Google Summer of Code 2008. As we got past the midterm evaluations, my mentor Gaston and I thought it would be good to inform the community about what I have done so far.

 

My proposal involved updating and improving Openfire's BOSH support by updating the implementation to BOSH 1.6, and migrating Apache MINA as its connection provider.

 

I started with creating a load test environment to see Openfire's current performance, and created a document explaining how to use it. Then I ran some load tests using that environment. Unfortunately, the test machines I used were not enough to produce desired results.

 

As the next part of the project, I updated Openfire's BOSH to support both 1.5 and 1.6. Here is a summary of the update:

 

  • Added 'hold' and 'ver' attributes to the session creation response.

  • Fixed version checking. Before it was done using a double variable, which  may show that 1.5 is newer than 1.10.

  • Script syntax support has already been added before. Finetuned it to prevent  caching of responses.

  • Implemented in-order message forwarding (JM-1412), because further work seemed to be depend on this implementation. This is the part that took most of my time, also which made me to get more familiar with the code  after long debugging sessions.

  • Implemented acknowledgements, which was intoduced in version 1.6.

  • Added support for session pauses, which was also new for 1.6.

  • Implemented overactivity checking. In 1.5, there was only 'polling  too-frequently error', and a little description about it. Version 1.6 introduced a new section for overactivity, and has a detailed description of which  circumstances should be considered overactivity.

 

With this update, I have seen that some BOSH issues I was not aware of (JM-1245, JM-1246) have also been resolved. The update has been merged into Openfire trunk, so you can grab and test it.

 

After the update, I started to investigate how to migrate to Apache MINA, and found out that it would be harder than we expected, because the version used by Openfire, 1.x, did not have any http support. We had also other alternatives, like Grizzly, so we deferred the decision about connection providers until we do some tests on them.

 

I am currently working on SparkWeb to make it fully compatible with BOSH 1.6. In the meantime, I am cooperating with Tomas Karasek, who is developing BOSH for Gajim, to resolve any BOSH related issues in Openfire.

 

I am open to any ideas/suggestions.

8 Comments Permalink

Whack 1.0 has been released. Whack is our Open Source XMPP (Jabber) component library for XMPP components. External components are processes that run outside of the Openfire's process but can connect to the server to register new XMPP service. Whack is an implementation of XEP-0114: Jabber Component Protocol.

 

Unlike the other igniterealtime products, Whack followed a different evolution path. We started coding Whack around November 2004 and after a few months it was operational. Openfire and Whack share the same component's API so around 2005 we were able to run Fastpath as an internal component (i.e. running in the Openfire's process) or just move it as an external component using Whack. It was impressive seeing the same code running as internal and external. Since then Whack continued to evolve but always at a very slow pace. Whack was always stable in each step but it was just not ready for prime time. We wanted to keep adding more things to it to reach a 1.0 release. Since our collaboration software Clearspace uses Whack to integrate with Openfire we needed to push the boundaries of Whack once again and I'm happy to say that we now reached the 1.0 release. And that is why we decided to make a public release in 2008 after 4 years of continuous but slow growth.

 

A few months ago we also released a new product called SparkWeb. SparkWeb is our Open Source web-based IM client. SparkWeb is based on XIFF just like Spark is based on Smack. Today we updated the products page to list SparkWeb as an official product. Welcome SparkWeb! The family has grown a little bit now.

 

You can get Whack from here. Questions could be posted to the Whack forum.

 

SparkWeb can be downloaded from here. If you want to build from the source code you can read the Getting and Building SparkWeb document.

7 Comments Permalink

The Fastpath product allows a company to provide support through the web. Users can use their own XMPP client or the provided web client to initiate a chat request. The request will be routed to the proper queue and agents will be offered the chance to answer the request.

 

Today we made the source code of the web client part of Fastpath available and a new version was released with the change in the license. You can download the new version from the plugins page.

 

Use the following SVN access to get the source code of the web client:

 

svn co http://svn.igniterealtime.org/svn/repos/fastpath/webchat/trunk webchat

 

The web chat client relies on the workgroup API that has not been moved to the open source repository yet. That is our last task in this long process of making Fastpath open source.

 

Enjoy,

 

  -- Gato

10 Comments Permalink

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

32 Comments Permalink

Just over a year ago, I blogged about using audio and video with openfire. At that time, I implemented a SIP based softphone in Adobe Flash using AsteriskWin32 and VAC4. My argument for an open-source, standards based, no-install web-based softphone as a requirement for Web 2.0 voice applications is still valid today and the emergence of Ribbit, TringMe, Zingaya (Flashphone) and others confirmed my thinking was not isolated.

 

It has however been a disappointment that all implementations I have encountered to-date have been closed, proprietary and inaccessible for integration (both client and server).

 

The latest release of the Red5 Plugin for Openfire features a completely open-source implementation of a web-based SIP softphone written in Flex3 and should work on both Windows and Linux. It uses MjSIP as the SIP user agent in the plugin and should work with most SIP proxies, but I have only tested with Asterisk. I have also only tested 2 simultaneous users, but there is no limit and will depend on how many users and media streams Red5 can cope with before it dies. Each telephone conversation consumes 2 user RTMP connections and 4 audio streams on Red5. All source code is provided and you are free to use it in your Openfire Red5 Plugin applications. Just confirm that the open-source licenses of MjSIP and Nelly2PCM are to your liking.

 

 

I have also integrated the softphone into SparkWeb and the Openfire SIP plugin. This will enable a user to make SIP calls from Spark and SparkWeb with the same user profile. The old Red5gateway will be depreciated and in a later release for window users, I will be adding AsteriskWin32 to the plugin and provide a complete SIP solution for Openfire.

 

As usual, any feedback will be appreciated.

For details of how this works read on.....

 

 

The red5Phone Flex3 client makes a NetConnection with the Red5 SIP application. When it recieves a success response, it makes a remote "open" method call in the Red5 SIP application which creates a pair of SIPUser and RTMPUser objects for that user and instructs SIPUser to register the user with the specified SIP proxy. When the NetConnection is closed by the Flex3 client, the pair of objects are destroyed and the user is unregistered from the SIP proxy.

 

When the Flex3 client invokes "call" remotely, SIPUser starts a SIP outgoing call with the SIP proxy and exchanges RTP audio streams. It invokes "connected" on the Flex3 client and informs it of what stream names Flex3 client should use to publish from the PC microphone and play to the PC speaker. It then resamples the incoming audio RTP packets from 8KHZ to 11KHZ, converts from ulaw to ADPCM and calls a method in the RTMPUser object to publish the audio to Red5 using the same name it gave to the Flex3 client to play.

 

The RTMPUser objects also plays the stream being published by the Flex3 client which is in the Nellymoser ASAO codec. It calls asao2ulaw (my modified version of the open source nelly2pcm) to convert the packets to ulaw and pass to SIPUser through a PipedOutputStream.

 

An incoming call follows the same pattern, the incoming SIP signal appears as a remote "incoming" call on the flex3 client. The user can then pickup the call and the Red5phone Flex3 client remotely calls "accept" in SIPUser to accept the call. The audio is setup the same way as an outgoing call.

45 Comments Permalink

We are pleased to announce the release of Openfire 3.5.1, now with even more openness!  This release represents the first stage of the Enterprise plugin split into open source plugins.  We're very excited to be able to provide these to everyone for free, and seeing what the community does with them, both in terms of contributed code and use case scenarios.  So lets talk about some specifics.

 

New Plugins!

 

  • Monitoring: Adds support for server statistics and chat archiving and reports.

  • Fastpath: Support for managed queued chat requests, such as a support team might use.

 

These are the first two pieces of the open sourced Enterprise plugin.  Client management is coming very soon, as is clustering.  SparkWeb will also be released tomorrow as a separate product.  So you might be wondering, hey, why is there an Openfire Enterprise 3.5.1?  Well, due to the lack of all of the plugins being available right now, we've provide 3.5.1 for existing enterprise customers to make use of.  It includes some important clustering fixes though!  (as will the clustering plugin when it is release)

 

Important, Seriously, Pay Attention, Read This

 

 

If you install the Monitoring and/or Fastpath plugin, make absolute sure that you read the readme first!  There are included instructions for how to migrate your database from the Enterprise plugin to the new plugin database tables.  If you have ever run the Enterprise plugin or the old Fastpath plugin before it was integrated with Enterprise, make sure you don't forget this or you will be unhappy!

 

 

Big Connection Manager Improvements

 

The connection managers have been updated to bring HTTP binding up to date and a couple of library upgrades that include a number of improvements.  It is important to note though that the conf/manager.xml file has been updated and you will need to update yours as well.  The new http binding section that you will need to add is described here.

 

Ok Fine, Where Do I Get It?

 

You can download Openfire 3.5.1 here.

You can see the entire changelog here.

You can view the documentation for 3.5.1 here.

Plugins can be downloaded from the admin console or here.

44 Comments Permalink

Earlier today I exported our svn repository for SparkWeb and committed the intial import to the new open source repository! Instructions for getting and building the source are available. Getting and Building SparkWeb. A chat room for discussion of SparkWeb development can be found at sparkweb@conference.igniterealtime.org. I'm looking forward to seeing what the community can do!

20 Comments Permalink

As you may have already seen, Openfire 3.5.0 was released today alongside it's good friend Clearspace 2.0!  We are excited to put out this release as it strolls alongside a number of new announcements, new features, and is sporting a brand new outfit in the form of a new look and feel for the admin interface.

 

Now, in light of the announcements regarding the Enterprise plugin becoming open source, you may be wondering why you can see an updated Enterprise plugin available.  We are providing this plugin for our existing enterprise customers until the separate split-up plugins are released.  T