If you are a voice networking professional, and you are tasked with working on any Cisco voice mail product, do yourself a favor and go download the Cisco (Unified) Backup and Restore Application Suite (COBRAS). You’ll thank me later.
If you’ve ever tried to upgrade Unity, you know the pain that comes from the good old Disaster Recovery Tool (DiRT). Cisco’s best practice for upgrading Unity involves using DiRT to backup your existing database, installing a new server, installing the old version of Unity and performing a restore, then attempting to upgrade the new server to the new version of Unity. Any one of those steps if fraught with danger and terror. DiRT was never really designed to do upgrades. It was only ever meant to restore your Unity configuration and data in the event of a meteor strike or alien invasion. Other than those two corner cases, it pretty much sucks. In case you couldn’t tell, I’m not a fan of DiRT. It’s like magnetic tape. It serves one purpose that it’s good for, but if you start getting creative you are asking for trouble.
When Cisco started pushing Unity Connection as a viable alternative to Unity, the need arose to find a way to get the data out of Unity and import it into Unity Connection. This is not a job for DiRT. The worst-case-scenario is that you need to pop up two web browsers and input the information from one system into the other. Not a fun job if you have even 50 mailboxes. A nightmare if you have a few thousand. And, you can’t move user passwords and PINs. A better solution needed to be found. And, thanks to some enterprising TAC engineers, we have COBRAS.
COBRAS started its life as a very unsupported tool on the Cisco Unity Tools website. Anyone that has worked on Unity for more than five minutes has been to this website. At various points in its life, it has been referred to as AnswerMonkey.net and LindborgLabs.com. My best guess is that it started as a repository run by some TAC engineers for the purpose of giving the long-suffering Unity support people a place to download tools and scripts to help get Unity working as properly as you can for a program that requires you to speak in tongues to fix it. About three years ago, I had the good fortune to take a class at Cisco Live Networkers that dealt with the problem of migrating CallManager and Unity to newer versions. I specifically took the class because I was about to face an unpleasant customer upgrade from CUCM 4.1 to 6.1. At the same time, the customer wanted to move from Unity 4 to 5. All of the official documentation I read said that the DiRT migration was the best way to move to new hardware. Luckily, the class from Brandon Ta at Cisco Networkers pointed me in the direction of COBRAS. Of course, when I went to download it from the Unity Tools website, the warning messages and dire predictions told me why I hadn’t seen it before – it wasn’t quite supported. As in, it wasn’t supported at all. Still, faced with the choice of something that I knew I wouldn’t like or the idea of trying something new that had little support, I bit the bullet and went with the new idea. And boy did I like it. COBRAS pulled all the Unity information from the old system in short order. When I brought the new system online, a quick import into Unity 5 got the voicemails flowing again in no time. Rather than spend hours waiting for the inevitable issues with DiRT restores, I could instead concentrate of cursing the Data Migration Assistant. But that’s another story entirely.
Flash forward to this past month. We’d been running Unity at our office for several years, and my users had become very dependent on unified messaging. When the Windows admins decided to upgrade to Exchange 2007, they forgot to warn me about when they had planned on doing this. So, when I walked the next morning, the voicemail integration was offline. It took a couple of hours before I was able to install the correct engineering special and repair all the Unity permissions with the scripts from the Grand Unity Grimoire. I’ve known that an upgrade to Exchange 2010 is in the works at some point. I’ve also grown tired of the difficulties that Unity presents. I can only administer it from Internet Explorer. The need to keep Active Directory healthy just for the sake of Unity was annoying. The need to know intimate details about Exchange 2003 made me cringe. Even my conversations with product managers from Cisco didn’t leave me all that excited about Unity. But, I couldn’t move to Unity Connection just yet. Because of the unified messaging issue. My coworkers couldn’t fathom the idea of NOT getting voicemails in one inbox. IMAP wasn’t going to cut it. So I bided my time and plotted the demise of Unity. When Cisco formally announced the feature set for Unity Connection 8.5, I jumped for joy. Unity Connection 8.5 contains a unified messaging agent that allows you to synchronize your Unity Connection mailstore with Exchange 2003, 2007, and 2010. My users would receive the same benefits as they had now with Unity, and I would get a unified management platform on the back end that was no longer soulbound with Exchange.
Once I got Unity Connection installed on a spare server, I needed to export 50 mailboxes worth of data from Unity. I checked Cisco Unity Tools and found they had updated COBRAS to support the latest versions of Unity Connection, and in fact COBRAS was now supported by TAC! It felt like this angel finally got its wings! I downloaded the Unity Export and Connection Import programs and installed them. The Unity Export program needs to be installed on Unity. In fact, it’s only support on Windows Server platforms. The Connection Import program can be installed on any Windows system, but you also need to install the IBM Informix Database drivers to allow communication with the Unity Connection database directly. I resorted to installing the program and database drivers in Windows XP virtual machine, as my 64-bit Windows 7 installation has already show an intolerance for drivers in general, which my USB-to-serial adapter will attest to. Once I installed the programs, I exported all the configuration data from Unity in one shot. It took all of 20 minutes. I was shocked. I had fully expected this whole export to eat up my entire afternoon. When I went to export the voicemail messages from the database, I found that I needed to be logged in as the “UnityMsgStoreSvc” account to have access to that particular database. Hopefully, you’ve got that account’s password jotted down somewhere in the deep, dark recesses of the documentation black hole. The message export process took a little longer, mainly because there are some users on my system that have never deleted a voicemail. In all, I exported 168 MB of WAV files into a backup folder, along with a database of the account configuration.
Now, to import into Unity Connection. When you first fire up the Import program, you’ll be asked to pick the backup you wish to restore from. You then have to navigate though a 68-step wizard. Don’t worry, it’s not as bad as it sounds. Many of the steps are verification of the Unity Connection configuration. And there are many steps that get skipped depending on what kind of data you are importing. It took me a couple of steps to get the messages imported due to some configuration issues (click here for those steps). Once that was accomplished, everything went great. I was able to mirror the Unity database onto the Unity Connection server. I setup a separate voicemail profile in CUCM and awaited my cutover. Just like expected, the actual cutover took about 10 minutes. Once the call handlers and voicemail greetings were verified everything was done.
I’m now ready to shutdown the old Unity server and remove all the old voice mail profile information. Once that’s done, Unity and I have a date in the parking lot. I’m hoping to recreate something like this scene. Fast forward to 1:09 for the good stuff, and be warned the audio has NSFW words.
In the end, I don’t think any of this would have been possible without the help of COBRAS. It may not be a ruthless terrorist organization determined to rule the world, but I’m sure it would help them migrate their voicemail server. And now you know, and as always knowing is half the battle.