Logging all and actual participant times

For regulatory reasons I need to know when each user joins and leaves a room. This is mostly stored in ofConParticipant, but there it’s not quite what I’m looking for.

The join is not logged until a message is sent in that room. So if I join a room and exit without seeing any new messages, my presence is never logged. Is there a way to get openfire to write to ofConParticipant when the user actually joins? Is there something else I can be looking at?