Listen for offline messages

How would one listen for offline message creation in a plugin so one could decide to email it or do something else interesting with it?


I hunted through the code and don’'t see any listeners for new offline messages. It seems like a good idea for a new feature, though. I filed this as JM-912.



I remember submitting some code for this a long time again so JM-236 could be implemented.

I’'ll do some digging to see if I still have it around somewhere…

I certainly hope you can get this feature added as I think it will be very useful.

I suppose an event for addOfflineMessage and removeOfflineMessage would be good.

The plugin attempts I have seen by following the links given seem to just listen for every mesage and do a presence check which is obviously not the best solution.

Maybe this can help you out… i had it done for myself but you can have a use for it altogether… or you can extend to process the messages collection or anything else you should need on it… major problem with this is just it is a pull service not a push (I used it for a general pending messages notification on a one-to-one IM with non-mandatory open window)

In UserService I added the following:

public int getMessages(String jid)


OfflineMessageStore offmessage = server.getOfflineMessageStore() ;

Collection messages = offmessage.getMessages(jid,false) ;

return messages.size() ;


else if (“getmessages”.equals(type)) {

int temp=plugin.getMessages(jid);

Integer res = new Integer(temp) ;


//xmlProvider.sendInfo(request, response, presence);