Viewing Cisco Jabber local history file

I had to assist a few users with an odd local chat history issue with Cisco Jabber recently where some message history went missing. In working this issue, I had to engineer a method to read the local history database file and extract the chat history. This post covers how you can open and query this file if you find yourself in a similar situation.

The Jabber for Windows local chat history log is just a local SQLite database file. The .DB file is located in the following directory: %LOCALAPPDATA%\Cisco\Unified Communications\Jabber\CSF\History\

Jabber for Mac likely has a similar file, I just don’t have a Mac in front of me to confirm, but check here: ~/Library/Application Support/Cisco/Unified Communications/Jabber/CSF/History/

You can use an open source SQLite tool to open this file. The one I used is called DB Browser for SQLite. There are builds available for several platforms. Download and install the build for your OS; or compile your own — it’s open source.

Once installed, launch the SqliteBrowser application and select “Open Database”. Point it at your local chat history .DB file. Once open, you can see the relatively simple table structure for the Jabber chat history.

At this point, if you’re trying to just see the chat history messages, like I was, you will want to run a SQL query. To do this, select the “Execute SQL” tab.

SQLite-ExecuteSQL

What query do you run? Well this took me a little bit of trial and error, but here is what I settled on:

select datetime(history_message.date/1000000,'unixepoch','localtime') as time, history_message.payload, history_message.sender from history_message

The dividing the time by 1000000 was the hardest part to figure out. Without it, my timestamps didn’t make sense. If you are looking for messages to/from a particular user you can edit your query to something like:

select datetime(history_message.date/1000000,'unixepoch','localtime') as time, history_message.payload, history_message.sender from history_message where history_message.sender like 'userid@example.com'

Messing around with your SQL query can yield you all sorts of information that might assist in your chat history troubleshooting.

One thing to note is that local chat history is not meant to be a compliance or legal retention mechanism. If you have those requirements, it’s best to use a 3rd party compliance server configured at your CUPS/IM&P Servers.

Hopefully this helps if you ever find you in a similar situation.

Author: Michael Whaley

I am a Private, Instrument Rated, pilot living in the Kansas City Metro area with my family and Siberian Husky. I work as a Network Engineer supporting data and voice infrastructure components here in Kansas City. In my spare time I fly.

6 thoughts on “Viewing Cisco Jabber local history file”

  1. As far as I know, the history file only writes as messages come in client side and won’t tell you active chats. For real-time info for several clients, you likely will need to leverage an external compliance DB. These can be setup on the CUP server admin GUI.

  2. Hi this is good tip get history at single place, but not easy readable, but this history is same history as in the chat and not what is discarded by jabar, so how to retrieve old history ?

  3. Can you tell me if messages that were deleted in the jabber client are deleted from the history file?

  4. @Anonymous: The DB file contains the raw chat output. It will not be in the same custom format that the Jabber client does behind the scenes according to the default or user’s custom font/display preferences.

    @Doug: yes this is the local client history file only. If the Jabber cache is cleared, you will not see the older messages. If you need server level centralized logging, you need to setup an external compliance DB on the IM&P Servers.

    @Phil: I hope the instructions were easy enough to follow here to DIY. I’m not comfortable looking at database file from someone else because there could be confidential/sensitive/personal information in these files. I don’t want to deal with that mess and honestly, I just don’t have the time. If you need some help, you can always reach out to a local Cisco partner for some Jabber expertise.

Leave a Reply