Cisco Unified Communication Tools

Connection Message Archiver Cli

Version   1.0.19
Last Update   6/24/2023
Statistics   10 meg EXE self extracting install file. No reboot required.
Compatibility   Connection 7.x, 8.x, 9.x, 10.x, 11.x, 12.x, 14, 15

Tested on Windows 7 (32/64), 8 (32/64), Windows 10 (64), 2016, 2019
May require administative rights on Windows client

NOTE: Requires the ADO Informix ODBC drivers to be installed to work properly
Support   TAC supported. NOTE: use of tools on unsupported versions of Connection is not TAC supported.

Download Message Archiver CLI (1.0.19 - 6/24/2023)

Archiver CLI Help

Download Message Archive GUI Manager (1.0.3 - 9/17/2018)

Message Archive GUI Manager Help

Overview

(See the training video below to see both the archiver and the message manager tools in use)

Message Archive Cli tool

As the name implies, this is a command line driven tool that's designed to be easy to script and run on a schedule for backing up selected or all mailboxes on a targeted Connection server.  It downloads all messages for each user into a separate folder under the message backup root you specify - each message is a simple unencrypted .EML file you can review using any number of email readers such as Exchange or Thunderbird.  These messages can also be restored selectively or en mass using the Message Archive Manager GUI tool (see below).

The archiver tool uses ODBC to quickly query the target Unity Connection server for messages currently in its database and then compares those with messages it's already downloaded in previous runs - it then only downloads messages it doesn't already have in the archive providing true "incremental backup" capability for Unity Connection - at last! 

You can setup the archiver to store messages on a folder in a local drive or using UNC to a NAS/SAN location as desired.

Command Line Options

//Connection Server

        c:CxnServer                  Server name or IP address of Connection Server to attach to

        s:CxnServerSecondary Server name or IP address of secondary Connection server to attach to

        l:LoginName                  Login name to use attaching to the Connection server

        p:Password                   Password to use attaching to the Connection server

 

//Where to back up to

        r:BackupRootFolder Root folder for message backups

 

//What mailboxes to include

        a:AllUsers                If true all users on the target server have their messages backed up.

        b:BannedUsers        List of user aliases to exclude from a backup - usually used with -a

        f:FileOfUsers            CSV file name containing user aliases of mailboxes to back up.

        u:UserAliases           List of one or more alias strings to backup mailboxes for.

 

//Include delted messages?

        d:DeletedMsg           Include deleted messages. Default true.

 

//Restrict messages by age?

        y:MessageAgeDays   Limit messages to this many days old or newer only.  Defaults to all messages.

 

//App options

        i:Interactive              Set to true and the console will wait for user input to continue.

        w:WaitAfterMessageCalc If true the app will pause after calculating message count/space

 

//Message Transport

        h:HTTPRest                     Use HTTP based CUMI for message extraction instead of IMAP

Examples:

 

[Backup messages for all users on server including deleted, non interactive, with secondary server option]

MessageArchiverCli -c 10.29.118.72 -s 10.29.112.88 -l admin -p password -a -r c:\messageroot\central

 

[Backup messages for all users except operator on server including deleted, non interactive]

MessageArchiverCli -c 10.29.118.72 -l admin -p password –a –b operator -r c:\messageroot\eastserver

 

[Backup messages for all users on server including deleted that are 30 days old or newer, non interactive]

MessageArchiverCli -c 10.29.118.72 -l admin -p password –a -y 30 -r c:\messageroot\eastserver

 

[Backup undeleted messages for selected aliases, interactive]

MessageArchiverCli -c 10.29.118.72 -l admin -p password -d false -u jsmith sjohnson xavierd -i -r c:\messageroot\southserver

 

[Backup all messages for aliases in csv file, non interactive]

MessageArchiverCli -c 10.29.118.72 -l admin -p password -f c:\userAliases.csv -r c:\messageroot\central

The CSV file needs only to have a column titled "Alias" - any other columns found in the file will be ignored - it's not case sensitive.

Targeting a UNC looks like this "-r \\192.168.0.24\DISKSTAITON\MyMessageRoot"

While it's running you'll see it first examine all the selected mailboxes to determine which messages need to be downloaded and then show progress while it downloads those messages:

Connection Server Attachment

The message archiver requires ODBC be enabled and the user account used to log in with needs to have the "remote administrator" and "mailbox access delegate account" role assigned to them. The primary connection server is passed using the -c parameter and is required, you can optionally provide a secondary server name using -s (i.e. for the cluster pair of the primary if installed).  If the login to the primary server fails, it will fall back to logging into the secondary server.

The Archive Manager requires both ODBC and SMTP message access to restore messages to Connection - the SMTP server setup in the Connection administration interface should look like this:

Repository Location

As noted you can store messages on a local drive or a remote drive mapped to a drive letter or use UNC formatting to use a NAS/SAN location.  Regardless of the storage location, be sure to create a separate folder for each Connection server/cluster you are backing up - don't try and share the same folder.  Each server backup has it's own set of user aliases hosted on that server and it's own SQLite database containing the history of messages backed up and top level details about those messages (subject, sender, recipient list, duration, size etc...). 

What about Video?

The message archiver only gets the audio components of messages - video segments are stored on a separate Media Sense server instance and the archiver does not have access to this for download purposes.  Video messages' audio files will be included in the download along with all other general audio voice messages.

How Fast Is It?

As ever the answer to this always depends on your hardware (both client and server) as well as network speed and where you're storing your messages, the average size of your messages etc... All that said tests done here against Unity Connection 11.5 with the archiver running on a Windows 10 x64 client with 8 gig of RAM, an i7 processor storing messages on a local SDD drive it was able to download about 2.75 messages a second at about 0.7 MB a second sustained.  Roughly 2000 messages in 12 minutes give or take.

Obviously, that may or may not apply to you and your seutp but should give you rough idea of what's possible at any rate.

Message Archive Manager Tool

The Archive Manager tool allows you to explore message archives and to selectively restore messages to Unity Connection servers.  Over time this will also have some useful message related reports added to it as well as message search functions and the like.

The basic interface is simple, select the location of your message archive root and all users that have had messages backed up from that server using the Message Archiver tool show up in the list box to the left - you can select each mailbox and all the messages currently in the archive for that user show up in the grid to the right. 

You can then double click on a selected message to see the EML file in whatever email reader you have registered on your Windows client or you can select messages and use the "Restore" button to restore those messages to a Unity Connection server you select.  NOTE: the Unity Connection server you select must have a user with a matching alias for the messages you have selected or the restore will not be allowed.

Duplicate Messages

By default the Archive Manager will not restore a message that is already present on the target Connection server.  As a rule this is what you want - if you select a number of messages (or all messages) to restore you only want those that are not present to be uploaded - creating duplicate voice mails would be very annoying to end users.  That said there is an item in the options menu to allow the Archive Manager to restore duplicate copies of selected messaes.  Only use this in specific cases where this is what you want - the default for this is always forced to off.

Restoring All Messages

The options menu includes an item for restoring all messages and, optionally, including or excluding messages flagged as deleted during the restore.  This will restore ALL messages for ALL users in the archive found on the Unity Connection server you authenticate to after selecting the option.  Again, if a user with that alias is not found on the target server, the messages for that user are not restored and it skips to the next user found in the archive. This option can be used if you lost some days of messages and you had the Message Archiver doing backups every night - this will "true up" your messages to the state of the last Message Archive run without negatively impacting anything on the server - only messages not on the server are uploaded.

Training Video

Message Archiver and Archive Manager tool overview.  Covers the basics of using the tools for message archiving and restore scenarios. Message Archiver and Manager Basics, 12 minutes, MP4