OpenArchive 1.0.4

As a follow-up, this is a new install (2 days old) that I have been experimenting with for potential implementation at the office.

I shut down openfire, removed the archive-1.0.4.jar and archive-1.0.4 files and directories from the plugins directory, restarted openfire, and, via the web upload utility, I re-uploaded the jar file after renaming the jar file to “archive.jar” (it was archive-1.0.4.jar).

That seemed to fix it.

That is definitely the fix for your issues. I would say that you may wish to wait on that product as the enterprise logging tools will be opensource very soon (maybe tomorrow). I have had many problems with this plugin.

Does it work now for you or did you encounter other issues?

It has never worked for me. The logs continued to be unthreaded. I have removed it from my testbed server long ago, as we were never able to resolve it. Plus we are not going to log chats so there was no point to continue pursuing it.

Maybe it makes more sense to port the XEP-0136 features to the enterprise archive and drop open archive.

It remains to be seen however how this could work as the entrprise archive only stores conversations once while open archive stores them per participant, so users can individually delete them.

Stefan,

I am currently implementing XEP-136 for the Red5 version of SparkWeb and tested against your OpenArchive plugin for Openfire. It works quite well for me and I can now get continuity in my conversations. Thanks very much for implementing this

I however have found an issue with version 1.0.4. The retrieve request always omits the very last message in every collection. The Search Archive tool in Openfire however works fine and shows all messages.

This would not be a design feature, would it?

Hi Dele,

Nice to hear you are adding support for XEP-0136 to SparkWeb.

If the last message is omitted that’s probably a bug. I’ll look into it.

Thanks for reporting.

=Stefan

I’ve released OpenArchive 1.0.5 that fixes the issue. It is available here:

http://maven.reucon.com/public/com/reucon/openfire/plugins/archive/1.0.5/archive -1.0.5.jar

Note: Rename the jar file to archive.jar before deploying it to Openfire.

Thanks for the quick fix Stefan. It works much better now.

For any one else following this discussion and wanting to try the changes I made to the Red5 version SparkWeb to support XEP-0136 and see conversation history, then pick it up from here _http://red5.4ng.net/red5-0.1.07.zip.

You will need OpenArchive version 1.0.5. Modify index.html if you wish to see more than the default previous two conversations.

You will need OpenArchive version 1.0.5. Modify index.html if you wish to see more than the default previous two conversations.

Thank you for putting Open Archive into SparkWeb. Tried it out and it works well.

A couple of questions here though.

  1. When does a “conversation” end? I was testing sending/receiving messages across several chat sessions (logging in and out repeatedly on several occassions), but all the conversations appear to go under the same conversationId.

  2. Do you have any plans to include a feature where you can search from the history, or look up conversations from certain date?

Thanks.

I can answer question 1:

A conversation is a set of messages exchanges between two jabber ids (excluding the resource). As soon as some time elapsed without any messages being exchanged (by default 30 minutes). The conversation is closed. The amount of silence required to create a new conversation can be configured in the settings. I voted against using thread id or resource as i find myself continuing conversations from my notebook on my main workstation and vice versa and never had two seperate conversations with one person at the same time.

Answering question 2 is up to dele but I guess it would be a great feature for a web based messenger.

but all the conversations appear to go under the same conversationId

I am not sure I fully understand. In my SparkWeb conversation history tabs, I see the history of the discussion as it was created in the first place. What is a conversationId ?

No plans to enhance it for now. I started work on a calendar plugin for Sparkweb, but seem to have abandoned it for now. One of its features is to be able to select see conversations within a date range. The openArchve search tool does a great job from Openfire. Not sure there is a need to replicate searching on the SparkWeb client.

On the other hand, someone could write a SparkWeb openArchive plugin to search from history

Understood.

Thank you for your prompt reply.

Thank you for your prompt reply.

I was referring to a field in DB that Open Archive uses. Stefan cleared up that part for me above.

As for searching the history from SparkWeb, it’ll be a great addition to audio/video features that you’ve managed to put together. It would make it much easier to dump the normal client and use web based one exclusively. If I had the coding skills to write such, I would have gladly contributed. Oh well…

Considering you think it is a great idea I took another look at XEP-0136 again, but I can’t seem to find anything about supporting a client side XMPP equavalent to your server side

findConversations(String[] participants, Date startDate, Date endDate, String keywords).

What would you recomend as the best way of acomplishing this?

XEP-0136 currently only supports retrieving conversations by date range and participant. If you consider adding searching by keyword we can think of a good way to add this, implement it in Openfire and pass our suggestion back to the xmpp standards council.

How about this?

30
<keywords>

    <keyword>love</keyword>

    <keyword>tragedy</keyword>

</keywords>

I am willing to support something like this this directly from SparkWeb

Hi Dele,

I got nothing from the link you posted http://red5.4ng.net/red5-0.1.07.zip

How i can retrieve last conversation and last message in conversation?

According to “XEP-0059: Result Set Management”, i need to send this requests:

For last conversation:

<list xmlns=‘urn:xmpp:archive’

    with='juliet@capulet.com'>

<set xmlns='[http://jabber.org/protocol/rsm](http://jabber.org/protocol/rsm)'>

1

For last message in conversation:

<retrieve xmlns=‘urn:xmpp:archive’

        with='juliet@capulet.com/chamber'

start=‘1469-07-21T02:56:15Z’>

<set xmlns='[http://jabber.org/protocol/rsm](http://jabber.org/protocol/rsm)'>

1

But both requests returns first record record instead of last…

Does your plugin handles XEP-0059 requests correctly?

After some kind of experiments i figured out that i can request last conversation using this request:

<list xmlns=‘urn:xmpp:archive’

    with='juliet@capulet.com'>

<set xmlns='[http://jabber.org/protocol/rsm](http://jabber.org/protocol/rsm)'>

1

999999999999

But i can’t retrieve last message using this method… It returns only empty answer.

PS: Please help me figure out how to retrieve last message in conversation using only one request. Thank you.