COBRAS Hot Mode Unity to Connection
COBRAS “Hot
Mode” vs. “Briefcase Mode”
COBRAS Hot Mode
High Level Process
Data Changed
During Moves and Copies
Codec Changes
for Connection Imports
Notification
Device Mapping for Unity to Connection Moves
Connecting to Remote Connection Servers for Migration
Setting up Connection
8 or Later to Accept Remote Attachments
Troubleshooting
Remote Connection Failures
How COBRAS
Checks that Unity Subscribers are Replicated to Connection
The “Demote” and
“Promote” Process For Users
How Long Will a Migration Take on My System and How
Much Space Will it Take?
Disable CSA and
all Virus Scanning Applications
WAV Upload or
Download with Connection 8.x and later
Problems Connecting to Unity Bridgehead
Server
TAC Directed Command
Line Parameters for Troubleshooting
Hot Mode is a special mode that the Consolidated Object Backup and Restore Application Suite (COBRAS) runs in when moving users between a Unity server and a Connection server that are configured in a network with one another. Currently Hot Mode is only available when you run COBRAS Import for Connection on a Unity 7.0 with ES36 or later installed that is configured in a digital network with a Connection 8.0 or later server. This help file is specific to that mode – for other COBRAS scenarios you should refer to the standard “Briefcase mode” COBRAS help file or the “Connection to Connection Hot Mode” COBRAS help file instead.
A detailed list of what’s included and not included in COBRAS migration can be found in the Data Backed Up and Restored section below.
COBRAS works in two different modes. The most common is “Briefcase Mode” which is what most sites will use and has been out in production for some time now. In Briefcase Mode you can do a backup of Unity or Unity Connection and then restore that backup or only selected objects from that backup onto another Unity or Unity Connection server. In Briefcase Mode there are never any changes made to the system that is backed up. You can restore some or all of the data to multiple target systems as many times as you like. The intent here is to allow sites to copy data from one install to another even when there is no direct network connection between the two – like putting the backup in you briefcase and walking to a new network to restore it. Hence the name.
Briefcase Mode is by far the more common usage scenario and this help file is dedicated to that mode.
“Hot Mode” is specific to sites that are running Unity 7.0 with ES36 or later installed and Unity Connection 8.0 that are in an active digital network with each other. It is used for moving subscribers from Unity to Unity Connection in that environment only, no other.
The primary difference for Hot Mode is that users can be MOVED from Unity to Unity Connection. In other words their entire configuration is no longer homed on Unity, but instead on a Unity Connection server in the digital network. In other words there ARE changes made to the Unity server in this case – it’s not just a simple backup and copy operation as far as users are concerned. Call handlers, interview handlers and schedules are still copied from the Unity to the Unity Connection server – only users are treated differently when running in Hot Mode.
NOTE: When running a Hot Mode migration from Unity to Connection you must be logged in either as the message store service account (i.e. the account associated with the AvCsMgr service) or as an account that’s associated with a Unity subscriber that is assigned to the Administrator Class of Service. This is required for communication to the bridgehead server(s) when doing the migration and is checked for up front before the migration is allowed to continue. There are no exceptions to this. If you cannot be logged in as an account that meets these requirements you cannot use COBRAS in Hot Mode.
More detailed information about the backup and restore options and steps are provided later in the help file but this is a very high level view of the COBRAS process.
Currently only Unity 7.0 with ES36 or later installed and Connection 8.0 and later are supported in a digital network for hot mode moves with COBRAS. Future releases may provide support for earlier versions of Unity to be included in the network but at the time of this writing that’s not the case.
After running the COBRAS Import you must first attach to a remote Connection server. This is the server that handlers, schedules will be created and users will be homed on that you chose to move. If you wish to create handlers/schedules on another Connection server and/or move users to different Connection servers for load balancing purposes then you must run COBRAS Import multiple times and connect to each server in turn to accomplish this.
You may choose to move any number of users you wish (including none) and to copy as many call handlers, interview handlers and schedules as you like. You must pick at least one object to copy or move however.
COBRAS Import does a special backup that includes just the data about those objects you selected to copy or move and objects that they reference. You cannot control options for this backup, they are hard wired and not optional.
Most of the Hot Mode process is involved in the remaining parts of the import wizard. The number of pages in the wizard varies if you’re importing to Unity or Connection – Unity has 22 pages since it includes the option for routing rules restore, Connection has 20. The pages listed here are for imports into Connection 7.0.
Wizard Part 1 (pages
2 through 6)
Select
which users to move, handlers and schedules to copy.
You can choose all or only some of the different objects on the local Unity server. It’s legal to, say, move only a single subscriber object and nothing else. Or you can copy an entire set of call handlers that comprise an audiotext application onto several Connection servers to replicate them around your networked systems.
Wizard Part 2
A special
backup is done to get information about the object(s) you selected to copy or
move.
Wizard Part 3 (pages
7 through 13)
Resolve
conflicts encountered moving or copying any of the objects you selected during
part 1.
If there are any conflicts with display names, extensions or aliases for any of the objects you selected to move or copy with existing objects in the Connection voice mail database, you must resolve them here. You have the option of changing the names or extensions on the spot to ensure they are created as new objects, or you can choose to overwrite an existing object in the voice mail database instead. Moving users, however, requires you write over their existing contact information created by the digital networking operation – this is not adjustable.
Wizard Part 4 (pages
14 through 23)
Resolve
link references for any of the objects you choose to move or copy in part 1.
For every object you selected to move or copy in part 1 you need to tell COBRAS what to do with any links it can’t resolve. Each object type has numerous types of “links”. For instance, a call handler can have a message recipient that’s a public distribution list. If that list is not known to COBRAS, you need to tell COBRAS which distribution list to use from the Connection voice mail’s existing database instead. There are also links from user input keys, after-message destinations, exit destinations from subscriber’s inbox conversation etc… All links need to be resolved by choosing a replacement object for that link. This can be a little more work for the administrator running COBRAS but produces a much more accurate and faithful representation of the existing Unity system’s behavior when you’re done. COBRAS has logic built in to take its “best guess” for which object you may want to use as a replacement to make this as easy as possible for you, but you do want to review its choices carefully before executing the import.
For Hot Mode currently on Unity 7.0 with ES 36 or later installed that is running connected to a Unity Connection network running 8.0 or later is supported. For older versions and/or systems that are not digitally networked together you need to use COBRAS in Briefcase Mode – review the standard help file for details there.
At the top level, COBRAS gets all data about system call handlers, full subscribers, schedules and interview handlers and allows them to be copied (handlers, schedules) or moved (subscribers) complete with relationships between them if they exist to the remote Connection server you attach to.
COBRAS gets as much data as it can and restores as much data as possible. In cases where Connection has data Unity does not or vice versa, COBRAS just uses whatever is in the subscriber template for the missing properties. If COBRAS has data in the backup it will use it – the template is only used to fill in what it doesn’t have.
When importing data into Connection 8.0 or later from a Unity system, some data has to be changed. The two products have different ranges supported for some values, different conversations that are supported etc… Connection has strict database rules that do not allow for any “fudge” room for these differences and so COBRAS must force the values into an acceptable range. Whenever this is done an informational note is written to the COBRAS import log file as well as the HTML summary report indicating which value was changed, what its old value was and what its new value on Connection 8.0 is. You need to review this information for potential issues but in most cases these changes are minor.
Some examples of data that can be changed:
NOTE: Most of these changes are not critical but some may change the behavior of your system in ways you were not expecting. COBRAS Import for Connection will log an information note every time any value has to be changed to bring it into compliance with Connection’s data model. It is incumbent upon you to review them in the consolidate report output after import and understand all the changes that had to be made. These messages should all be human readable and reasonably clear about the change made.
Since Hot Mode requires version 8.0 or later for Unity Connection, all codecs are supported and there’s no translation of audio codecs necessary when copying greetings and voice names over.
Unity and Connection have a slightly different list of notification devices. Further, Connection supports a dynamic list of devices which means you can have more notification devices of each type than Unity supports. For the most part all this is not critical, however two items come into play. Editing notification devices from the phone interface is limited to the five “base” devices for both Unity and Connection. Similarly BAT can only edit those same five devices. Other devices are imported with an ID of “other”. They work fine however they can only be edited via the SA or PCA web interfaces and not via BAT or over the phone. Editing notification devices in bulk is an unusual operation as a rule so normally this isn’t a critical issue.
The following table indicates how Unity notification devices are mapped into Connection notification devices during an import:
Unity Notification Device |
Connection Notification Device |
Text Pager 1 |
SMTP |
Text Pager 2 |
Other |
Home Phone |
Home Phone |
Pager |
Pager |
Pager 2 |
Other |
Work Phone |
Work Phone |
Spare Phone |
Spare Phone |
Phone 2 |
Mobile Phone |
Phone 3 |
Other |
Phone 4 |
Other |
Phone 5 |
Other |
Phone 6 |
Other |
Text for VMI |
Other |
SMS |
(not included in backup) |
Alternate extensions are always backed up, however, during a restore they are considered secondary. In particular when determining which objects are in conflict based on what you decide to restore, the alternate extensions of subscribers you’ve selected to include are not evaluated. During the restore an attempt is always made to add the alternate extensions in when the subscriber is created, but if there is a conflict they are skipped and a warning is written to the log output. However, this does _not_ fail the creation or modification routine for the subscriber – COBRAS import will continue to move ahead. Be sure to check the log output for “(warning)” strings to check for this type of issue when restoring users to an existing system.
COBRAS does backup the name of the conversation that subscribers are associated with and will try and restore that on the import. However, COBRAS has no knowledge of the key map configuration itself – if you’ve modified a custom key map conversation on one server, do a backup and restore users onto another server where that same custom key map is not customized, users will have a different sounding key map conversation. It’s up to the administrator to make sure the key mapping data is configured on the target system as they wish.
COBRAS does an up front check to see if all languages in the source system are present on the target system however it will still allow the migration to proceed regardless after issuing a warning. It’s STRONGLY recommended that you have the same languages installed on the target as the source. It will restore the language settings for subscribers, call handlers and routing rules as they were backed up. If the target system does not have those languages installed, Unity and Connection will both fall back to the default phone conversation language. This will not cause errors but may result in unexpected behavior. It’s up to the administrator to make sure the target system has the appropriate languages installed.
When you install and run COBRAS Import for Connection on your Unity server, when you run it the first thing you will be asked to do is connect to a remote Connection server. This requires a remote administration account be configured and the remote database proxy service activated and started on the target Connection server. Hot Mode migrations do not do not require any SMTP service settings to be changed since no messages are moved during this process.
When you first start COBRAS Import for Connection, you will see a login dialog box that will be empty except for port 20532 filled in as the default for the port. You must provide the server name or IP address for the “Server” field and provide the login and password for the database connection account. Use the alias and web administration password of the database user created above for the login and password fields.
COBRAS will remember your entries including the password (which is stored in a secure hash). Each time you run COBRAS it will load the settings of the last connection you made (or attempted to make). Every server you’ve successfully connected to in the past will be listed in the drop down list in the order in which you connected to it last – most recent to least recent.
NOTE: The login and password information is stored along with the local Windows login name. Only those servers that have been attached to successfully using the current Windows login will be listed. If you are logging into the same Windows server with different users you will only see servers connected to with that particular Windows login.
NOTE: Some login errors will fail quickly and give you a chance to try a different pair. Other types of failures however, results in a 60 second timeout while CUDLI waits for the Informix ODBC driver to return. Unfortunately this cannot be shortened. Type carefully. There is no reason to change the port any longer – it’s there for legacy reasons.
NOTE: Attaching to a remote Connection server over a WAN or VPN link to do a large import is not recommended. It is best to use a LAN connection if at all possible. Issues with WAV file uploads and large remote database operations can cause timeout errors when going over a VPN or slow WAN link.
FIRST! Make sure you’ve installed the Informix ODBC drivers on the Unity server you’re running on. You can get them on the Informix ODBC Driver Download page.
Connection 8.0(1) and later comes “out of the box” configured to not allow remote connections to the database for security reasons. To be able to run a migration import into Connection requires you create a user with the rights to attach to the database remotely, activate the remote data service. To do this, follow the following steps.
NOTE: Remote data access configuration is also necessary for running tools such as the Database Explorer (CUDLI), User Data Dump (CUDD) and other diagnostic or reporting tools
Task
1: Configure a User with the Remote Administrator and System Administrator roles
1. Go to the Cisco Unity Connection Administration web interface for your installation.
2. You can leverage a user with or without a mailbox for off box data access purposes, but it’s strongly suggested that you create a new user without a mailbox that is used solely for the purpose of remote administration tasks for security reasons.
3. Be sure the web administration password for this user is not configured to require a change at first login on the “Password Policy” page for that user.
4. If necessary, change the web administration password on the “Change Password” page. Note that only the web application password comes into play for remote data access.
5. Finally, on the “Role” page for the user, add the “Remote Administrator” and the “System Administrator” roles to the “Assigned Roles” list and save. You can assign any or all other roles as well but for the purposes of remote access to the database and making updates to users those two are necessary.
Task
2: Set the Database Proxy Service Shutdown Time
For Unity Connection 10.0 and later this step is not necessary – there is no longer a shutdown timer for the ODBC proxy.
Out of the box the database proxy service is not running and if you try to start the service it will shut down right away. First you need to set the “Database Proxy: Service Shutdown Timer” value found in the System Settings -> Advanced -> Connection Administration section of the Cisco Unity Connection Administration page. By default this is 0. You can set it to as high as 999 days if you like. After the number of days configured here the remote database proxy service will shut down. This is useful if you want to do some migration work, for instance, and don’t want to forget to have the service disabled for security reasons.
NOTE: If you restart the server, the remote database proxy service will remain shut off. After a system restart you have to go in and manually turn on the service again (see step 3)
Task
3: Activate the Remote Database Proxy Service
1. Out of the box the service that listens to remote database requests is not active, you must turn it on. To do this, go to the “Cisco Unity Connection Serviceability” web admin page.
2. On the Tools menu, select the “Service Management” page.
3. The “Connection Database Proxy” item under the “Optional Services” section will be marked as “Deactivated” and stopped. Press the “Activate” button and it will be activated and started automatically.
Once you’ve started the proxy service you can connect with any tool that needs off box database access using the user name, web administration password and port “20532”.
NOTE: The service will automatically shut down after the number of days configured in step 2 above or if you restart the server.
The import process is where all the detail work for administrators comes into play. Depending on what you want to do, you will need to fill out information on most or all of the 20 to 23 wizard panels in the COBRAS Import wizard. This may seem a bit daunting but for a typical configuration much of what you need to configure is either simple or already preconfigured for you. However, please be very cautious and check all the values before moving on.
The short version is that COBRAS needs to preserve all the many relationships between objects being restored and, in cases where that cannot be achieved you must tell COBRAS what to do with relationships that are no longer valid.
COBRAS is different than previous tools in that it lists the objects that are referenced which it cannot find and asks that you provide a corresponding object to replace that reference with. For instance if you have a call handler that is owned by John Smith and you are copying just that call handler, COBRAS will ask you to select a subscriber on your target Connection voice mail server to “stand in” for John Smith. ALL references to John Smith (i.e. one key rules, owner, message recipient etc…) will be replaced by the subscriber you select. You MUST select a subscriber to replace John Smith, you cannot run through and pick a different owner, different recipient, change one key rules to not point at John Smith etc… This is a different model than used in the past with tools like Global Subscriber Manager and the like, but for functions like merging many objects into an existing installation this works much better and cleaner and provides a better all around solution even though on the surface it may look more complex.
This new model means you can select some or all subscribers to move and/or call handlers and/or schedules and/or interview handlers for copy. It’s completely legal to copy a single system schedule and nothing else. COBRAS is smart enough to only require you to resolve conflicts or dependencies based on what you select to restore.
I realize 20+ pages seems alarmingly long, but don’t panic. It’s not nearly as bad as it sounds.
NOTE: You will only see pages you have something to review or configure on. So if there are no missing call handler references, for instance, you wont see that page in the wizard. As such in a typical restore you’ll see fewer than all the pages of the wizard – this is by design.
The easiest way to get a feel for what’s involved is to just go through the wizard one page at a time.
The first panel is what you’d expect – if your Unity system is part of a digital network with Connection then COBAS Import comes up in Hot Mode as seen here. There are no options for you on this page other than selecting to run in debug mode or not.
NOTE: There is only one item in the Options menu to be aware of for Hot Mode:
This page allows you to select subscribers you wish to move to the remote Connection server you’ve attached to. These users will be hosted on the Connection server and be transformed into hidden Archived Users on the Unity server as part of this process. For more information on Archived Users see the “Demote” and “Promote” Process For Users section below.
There are seven options for selecting subscribers from the backup file:
The last two items may be a bit different – however, if you’ve backed up a system that has several “sub groups” (or “tenants”) defined and have used unique strings to identify these users and objects, this can be a quick short hand way to pick these users out of your backup.
This page is the call handler selection page. Again, you are not required to select any call handlers here if you don’t wish to copy any handler data. All selected call handlers will either be created as new or over write existing call handlers on the target Connection voice mail server depending on your answers later in the Import Wizard.
There are 9 options for choosing call handlers from the backup database:
This page allows you to select which interview handlers to copy from the local Unity installation, if any. It’s not necessary to choose any interview handlers if you don’t wish to.
There are 6 options for selecting interview handlers for restore from the backup file:
This page allows you to select which system schedules you’d
like to copy to the remote Connection server from the local Unity installation.
There are two options for selecting schedules to restore:
At this point the COBRAS migration tool needs to perform a small backup of data from the local Unity installation before it can continue. Once you hit “Next” COBRAS will do a backup – you have no control over the options selected here, it runs showing you progress information but will not let you adjust options or stop it.
Once the backup is complete you can continue with the COBRAS Import wizard. You cannot backup and change any options at this point. If you wish to select different objects to include you will need to exit the wizard and start over from the beginning.
This page allows you to select templates or partitions for new object creation. Only items for which you’ve selected at least one object to move or copy will be enabled.
The template or partition is used when creating new objects only, not for updating existing objects. You select this here such that extension conflicts done later in the wizard are specific to the partitions that you will be adding new objects to.
NOTE: Since Unity does not have this concept, the partitions associated with the call handler templates are used for all new handler creation for this purpose. The partitions are taken from the template and used as the default for all new objects created, however you can manually change which partitions are used on the conflict resolution pages later in the wizard. It’s best to create all your partitions, search spaces and templates with as simple a design as possible prior to starting your migration.
The next several pages allow you to decide if you’re going to have objects you selected to copy or move created as new, unique objects in the target voice mail server or have them over write (replace) objects that are already there.
This page shows all the call handlers you selected to restore earlier in the wizard. Each call handler will be in one of three states in the grid:
You can select a different partition to create the handler in – the partition shown will default to that found in the call handler template you selected earlier.
NOTE: If you choose to change the extension or display name of a call handler using the ”Create as new call handler” radio button and then saving, those changes are saved into the backup files. In other words if you change a call handler from ”Test Handler 1” with extension 1000 to ”Test Handler 2” with extension 1001 to avoid a conflict and save it, the next time you do a restore with this backup set, that handler will still be setup as ”Test Handler 2” with extension 1001. If this is undesirable behavior for you, make sure to do your restore using a copy of your backup database.
NOTE: When overwriting an existing call handler, the display name, alias and extension will not be changed on the existing call handler. All other data from the backup will be applied to the handler.
This page shows all the subscribers you selected to move earlier in the wizard. Each subscriber will be in one of two states in the grid:
NOTE: In hot mode migrations the only option you have here is to overwriting an existing contact – you cannot create users as new.
NOTE: Page 11 will never show up since it has to do with distribution list conflicts and in Hot Mode distribution lists are not included.
This page shows all the interview handlers you selected to copy earlier in the wizard. Each interview handler will be in one of three states in the grid:
You can select a different partition to create the interviewer in – the partition shown will default to the partition you selected for new interviewers earlier.
NOTE: If you choose to change the extension or display name of an interview handler using the ”Create as new interview handler” radio button and then saving, those changes are saved into the backup files. In other words if you change an interview handler from ”Test interview 1” with extension 1000 to ”Test interview 2” with extension 1001 to avoid a conflict and save it, the next time you do a restore with this backup set, that interview handler will still be setup as ”Test interview 2” with extension 1001. If this is undesirable behavior for you, make sure to do your restore using a copy of your backup database.
NOTE: When overwriting an existing interview handler, the display name and extension will not be changed on the existing interview handler. All other data from the backup will be applied to the interviewer.
This page shows all the schedules you selected to copy from earlier of the wizard. Each schedule will be in one of two states in the grid:
NOTE: If you choose to change the display name of a schedule using the ”Create as schedule” radio button and then saving, those changes are saved into the backup files. In other words if you change a schedule from ”Test Schedule 1” to ”Test Schedule 2” to avoid a conflict and save it, the next time you do a restore with this backup set, that schedule will still be setup as ”Test Schedule 2”. If this is undesirable behavior for you, make sure to do your restore using a copy of your backup database.
The remaining wizard pages involve telling COBRAS what to do with references that it cannot resolve on its own. There are many references from call handlers and subscribers to other objects – some 30 separate possible links exist that have to be resolved. COBRAS consolidates these into lists of object types all together. COBRAS does not tell you HOW these objects are referenced, only that some reference to them is made by some object you’re restoring.
This page shows all the system schedules that you are not copying but that are referenced by a call handler or subscriber that you’ve selected to move or copy. In other words if you select to copy all schedules from your backup, there should be nothing on this page. However, if you did not copy one or more schedules from your Unity install for some reason, you will need to map those references to a schedule on the target Connection server. COBRAS will map them for you if the schedule name matches exactly but if it can’t, the schedule will be listed as “UNMAPPED” and you will have to select a schedule yourself. Click the “…” button to the right of the grid and you can search all schedules on the voice mail server. The wizard will not let you move on until all UNMAPPED rows have references.
Mapping a schedule reference will not change any properties on that schedule at all. It simply means any time COBRAS is rebuilding a call handler or subscriber and the backed up schedule name is referenced, the mapped schedule you selected will be used.
This page shows all the switch (phone system) references made by any of the call handlers or subscribers you’ve selected to copy or move. Since switch data is not included in the COBRAS backup, all switch references will be shown here regardless. If, however, you are not copying any call handlers or moving any subscribers then this page will be empty and you can move on.
If there is only one switch installed on the target Connection server then all references will automatically map to that and there is nothing you need to do on this page.
If, however, there is more than one switch integration configured on the target Connection server, you will have to use the drop down list to select one of those for each switch reference. It’s rare there are more than one or two switches configured for a typical system, however, so this should be pretty quick.
This page shows all the Class of Service (COS) objects
referenced by any subscriber you are moving.
Since COBRAS does not backup COS details, all COS references will be
listed here to be mapped to a
If you did not select to move any subscribers, this page will be empty and you can move on.
If, however, at least one subscriber is being moved then you
will see entries on this page. COBRAS
will try and match the
Review all the mappings even if they are automatically setup for you to be sure it’s what you want before pressing Next to move to the next page in the wizard.
This page shows all directory handlers (name lookup handlers) that are referenced by any subscriber or handler you’ve selected to move or copy. Directory handlers can be referenced in numerous ways by these objects including user input keys (one key dial rules), after-message actions, after-greeting actions, exit action from the subscriber conversation, targets for after recording etc... Since COBRAS does not backup and restore directory handler details, these references must be resolved to a corresponding directory handler on the target Connection server.
COBRAS will attempt to automatically map the references for you based on the display name matching exactly and those appear in green. Those it cannot are in white and you will have to press the ”...” button to the right of the grid to select a directory handler on the voice mail server to use. All entries in this table must be mapped before the wizard will let you move on. Be sure to review the list closely even if it is mapped for you to be sure it’s what you want before moving on.
This page shows all interview handlers that you have not selected to copy but are referenced by any subscriber or call handler you’ve selected to move or copy. In other words if you’ve selected to copy all interview handlers from Unity to Connection, this page should be empty and you can move on. Interview handlers can be referenced in many ways including as the target of a user input key (one key dial), after-message action, after-greeting action, subscriber exit action etc... The interview handlers on this page are referenced somehow by some object you are selecting to copy or move and each one will need to be mapped to an interview handler on the target Connection server.
COBRAS will attempt to automatically map the references for you based on the display name matching exactly and those appear in green. Those it cannot are in white and you will have to press the ”...” button to the right of the grid to select an interview handler on the voice mail server to use. All entries in this table must be mapped before the wizard will let you move on. Be sure to review the list closely even if it is mapped for you to be sure it’s what you want before moving on.
This page shows all call handlers that you have not selected to copy but are referenced by any subscriber or handler you’ve selected to move or copy. In other words if you’ve selected to copy all call handlers on your Unity server, this page should be empty and you can move on. Call handlers can be referenced in many ways including as the target of a user input key (one key dial), after-message action, after-greeting action, subscriber exit action etc... The call handlers on this page are referenced somehow by some object you are selecting to restore and each one will need to be mapped to a call handler on the target voice mail server.
COBRAS will attempt to automatically map the references for you based on the display name and extension matching exactly and those appear in green. Those it cannot are in white and you will have to press the ”...” button to the right of the grid to select a call handler on the voice mail server to use. All entries in this table must be mapped before the wizard will let you move on. Be sure to review the list closely even if it is mapped for you to be sure it’s what you want before moving on.
This page shows all subscribers that you have not selected to move but are referenced by any subscriber or handler you’ve selected to copy or move. In other words if you’ve selected to move all subscribers in your Unity install (not the recommended way to use COBRAS Hot Mode), this page should be empty and you can move on. Subscribers can be referenced by other objects in a number of ways including the target of a user input key (one key rule), after-message action, after-greeting action, as the owner or message recipient of a call handler etc... The subscribers on this page are referenced somehow by some object you are selecting to copy or move and each one will need to be mapped to a subscriber on the target Connection server.
COBRAS will attempt to automatically map the references for you based on the display name, alias and extension matching exactly and those appear in green. Those it cannot are in white and you will have to press the ”...” button to the right of the grid to select a subscriber on the voice mail server to use. All entries in this table must be mapped before the wizard will let you move on. Be sure to review the list closely even if it is mapped for you to be sure it’s what you want before moving on.
This page shows all distribution lists that are referenced by any call handler or interview handler you’ve selected to copy as its owner or message recipient target. The distribution lists on this page are referenced somehow by a call handler or interview handler you are selecting to copy and each one will need to be mapped to a distribution list on the target Connection server.
COBRAS will attempt to automatically map the references for you based on the display name, alias and extension matching exactly and those appear in green. Those it cannot are in white and you will have to press the ”...” button to the right of the grid to select a distribution list on the voice mail server to use. All entries in this table must be mapped before the wizard will let you move on. Be sure to review the list closely even if it is mapped for you to be sure it’s what you want before moving on.
This page lets
you force a few values for subscribers during migration. By default COBRAS will always use what’s in
the Unity settings for users when moving them to Connection. If a value doesn’t exist in the backup (for
instance it’s a feature that does not exist in Unity but does in Connection)
then COBRAS defers to the user template you select earlier in the wizard for
that value.
In a few cases
it’s desirable to override both the user data in the backup AND the template
and force a value. In particular
settings related to enrollment, passwords and message length. Some administrators want to be able to force
enrollment no matter what’s in the Unity database or force passwords to change
after a migration or the like.
By default none
of thse values are used. You can select
individual values to override by checking the ”Override default” checkbox which
will tell COBRAS to apply the corresponding value for ALL users it moves during
migration. It’s important to note that
it doesn’t care what value the user has in the Unity database or whe the
template is set to – it will ALWAYS set the vlaue to true/false (or the number
of seconds for the max message length) in every case.
Use with caution.
This is the final page of the wizard where you can kick off the actual copy and/or move operations.
Once you select the ”Start Import” button the copy and/or move process starts. The status of the migration is shown above the log viewer and you can see the progress through all the steps of the restore and how many objects are being created/updated for that step. The scrolling text is the same information that ends up in the log file and can be reviewed later if you like.
Terminating the migration once it starts can result in a damaged system. Don’t do that unless instructed to do so by TAC.
A migration can be done on a running Unity server against a running Connection server while both are in use, however performance will be affected. It’s best to do this off hours to avoid delays in call processing.
If you’ve selected to move one or more users, they will be “promoted” to full users on the Connection server and their subscriber accounts will be turned into hidden “archived users” on the Unity server. These accounts are NOT deleted during the move process, only hidden. See the next section for more details on this process.
Before COBRAS will allow you to move a local Unity subscriber to a remote Connection server in hot mode it makes sure the Unity user is properly replicated to the Connection server database. If replication is working properly this will not be an issue, however if COBRAS tells you the user is not replicated and you think they are, here’s a breakdown on how COBRAS determines if the user is replicated or not.
When COBRAS is verifying that the local Unity subscriber’s you’ve selected to move are in the remote Connection database properly it does three things:
1. On the local Unity server it gets the SMTPAddress of the subscriber from the vw_Subscriber view.
2. Using that SMTP address (lower cased) it searches vw_SMTPProxyAddress on the target Connection server for a single match. If one is found then the Object_GlobalUSerObjectID value is fetched. This is used as the DigNetObjectID (the unique identifier for this user on the entire network) for that user.
3. It then searches the vw_GlobalUser table on the target Connection server for a match for that DigNetOBjectID
If a match is found then the user is properly replicated around the network and Connection knows about them and hot mode moves are possible. If there is no match found or more than one SMTPAddress match is found or more than one DigNetObjectID for that user is found then it’s considered a failure (hot mode moves would likely fail if forced). If network replication is working properly between Unity and Connection this should always work.
When you move a subscriber from a local Unity server to the remote Connection server as part of a migration, COBRAS performs a couple different tasks on each user one at a time. If there’s a failure at any point the entire migration process is stopped since proceeding could result in damaged user data.
If the promote in step 1 fails then the migration stops. Review the logs to figure out what the problem is and address it before trying again.
If the demote in step 2 fails then again the migration stops. Since the local Unity user was not demoted you can delete the user created on Connection in step 1 and after a directory sync is done the system should be back to its normal state and you can review the logs to determine the source of the problem, address it and try again.
COBRAS does each user one at a time in this manor which is somewhat slower but ensures that user data is not lost in the event of a problem.
Technical stuff for TAC folks here. The demote process does a number of things on the Unity server, here’s a list of the actions taken – the items in red take place on the local Unity server, the items in blue happen on the Unity bridgehead server (which is the same if you are running COBRAS on the bridgehead):
1.
COBRAS calls into AvMMroxy to initiate the demote. AvMMproxy verifies
that the account running Cobras is either the Unity messaging service account
or is a Unity Administrator. The check of the Unity messaging service account
is all done inside AvMMProxy. For the check of the
Unity Admin, AvMMProxy calls into the Authorization
Manager (that lives inside AvCsGateway).
2.
The AvMMProxy ensures that the Subscriber directoryId that it was provided was a legitimate Unity
Subscriber – this is done in AvMMProxy.
3.
The AvMMProxy determines the FQDN of the
destination Connection server by analyzing the location object ID it was
provided. This is done in AvMMProxy. That destination
CXN server is represented as a location object so the Unity server has a record
for it in SQL.
4.
AvMMProxy uses the
FQDN to make a URL request to the Unity BridgeHead
server. That URL is http(s)://<bridgeheadfqdn>/vmws/vmws.dll?Handler=DemoteSubscriber&SubscriberDirectoryId=<SubscriberDirectoryId>.
AvMMProxy attempts HTTP first. If that request fails
in manner that the server requires HTTPS be used, the request is re-queued
using HTTPS.
5.
The bridgehead server receives the request and analyzes the
authentication information in the request to retrieve the username of the
client requesting the URL. This happens inside VMWS, so those diags are interesting – they’ll be in the w3wp diag files. Because AvMMProxy
runs as LocalSystem, the username from the URL
request authentication information is actually the server name of the
requesting Unity server. Since the Unity server synchronizes information about
other Unity servers in the network, VMWS can look up information about the
server in SQL. This is done via “sp_IsKnownServer”.
6.
The bridgehead server calls the store proc
“sp_MigrateSubscriberToCxn”.
7.
Back on the server where Cobras is running, AvMMProxy
uses the Notifier to un-register the user being
demoted from receiving inbox changes. The Notifier/ExchangeMonitor implement that un-register.
8.
AvMMProxy calls into
the AvDSAD to remove the location object Id off of
the AD user object that corresponds to the Unity Subscriber account. This will
make other Unity servers “see” that the user has been demoted, moved, removed –
whatever you want to call it.
9.
The AvMMProyx then calls the sproc ”spArchiveSubscriber”.
The migration has been tested on Windows 2000 and 2003 servers running Unity 7.0 with ES36 and later that are part of a digital network with Connection 8.0 and later servers only. This is the only configurations supported by Hot Mode migrations.
All COBRAS applications are 32 bit and will require the 32 bit version of the IBM Informix ODBC Drivers to be installed. No release of Unity supports anything other than 32 bit operating systems so this should not be a problem. You can get the latest ODBC driver on the IBM Informix ODBC Driver page.
Unity and Connection must be up and running before the migration will be allowed to execute.
COBRAS runs as a lower priority process and can be run while Unity and Connection are running and taking calls. However, even at a lower priority process it will use CPU cycles and take up database processing power that will affect the performance of running systems. It’s always a good idea to do migrations during off peak call times.
Unfortunately there is virtually no accurate way to predict how long a migration is going to take unless I know how many users, how many greetings are recorded, how large they are, how many voice names are recorded, how large they are, the speed of your network, the speed of the system you’re doing the backup on, how much traffic is on the network, the hardware specs of the platform being backed up, how many handlers, subscribers, interviewers and schedules are being moved or copied etc… There are far too many variables to make useful estimate ranges.
The short version is the Hot Mode migration is designed to move small groups of users in sets over to Connection over a period of time. As such the backup and move time should be reasonable. If you’re moving a thousand users at a shot you are not using the tool as it was designed and you should probably consider doing a “flash cut” using COBRAS Briefcase mode instead.
The best I can do is provide a few examples we’ve done in our labs to give you a very (very) rough idea of what to expect. You mileage may (and very likely will) vary quite a bit depending on variables noted above. All timings are from Unity 8.0 and Connection 8.0 networked systems doing a “hot mode” user migration. The import times are rough since it includes the time it takes to walk through the import wizard which may vary quite a bit.
Two MCS 7845 servers 500 users being moved |
Export: 18 minutes Import: 22 minutes |
Two MCS 7845 servers 2000 users being moved 100 call handlers |
Export: 1 hour, 12 minutes Import: 1 hour, 37 minutes |
Two MCS 7845 servers 5000 users being moved 500 call handlers |
Export: 3 hours, 10 minutes Import: 4 hours, 57 minutes |
Two MCS
7825 servers 1000 users
migrated 500 call
handlers |
Export: 50
minutes Import: 1
hour 57 minutes |
Please note that COBRAS hot mode was NOT designed to be moving 5000 users at a time! This is a worst case scenario run by our testing group. If you are moving that many users you should consider using briefcase mode instead.
Whenever you encounter a problem with a COBRAS import, the first thing to do is gather the MDB file and log files found in the “HotMode” folder under the directory where you installed COBRAS Import is found. Each migration you do will have it’s own folder under here with the date/time on it that contains log files and the MDB file created that will be useful in troubleshooting any issues you are experiencing (assuming the import got that far).
For Windows based systems (all Unity versions) it’s a good idea to disable CSA and all virus scanning applications if you are having problems running the migration. CSA and various virus scanning packages often block access to ports necessary to attach to remote servers and file systems and/or create local files and the like. Before escalating a failure be sure to make sure this basic issue is not tripping you up since TAC will usually first start here.
Usually the first step in running down a problem is to turn on debug mode. On the first page of the COBRAS import wizard you’ll find an options menu that has an option to enable debug output. This directs the COBRAS tools to dump more information to the output log including full text of all stored procs being called, all queries being made against the remote Connection server and additional entry/exit information. This will greatly increase the log file size, slow the application down a bit and make finding normal items in your log a bit more difficult so it’s not generally a good idea to run with it on unless you are trying to run down a problem.
Note that greetings and voice names for all objects (call handlers, users, interviewers etc…) are fetched and uploaded to Connection via HTTP. If you see HTTP errors or stream file upload/download errors this is dealing with greetings and voice name.
Before COBRAS attempts to run the migration against a Connection 8.x or later server it will upload or download a small WAV file as a test to be sure the process will not fail. If the attempt is not successful the migration will not be allowed to continue and you will be notified that the WAV transfer process is failing.
Problems Connecting to Unity Bridgehead Server
When you run the COBRAS Import on a Unity server that’s part of a Connection digital network, the first thing it does after attaching to the remote Connection server you identify is check to see that the local Unity server is capable of making an HTTP connection to the bridgehead (also called the “gateway”) Unity server that’s communicating with the Connection digital network. If you are running on the bridgehead server this will never fail, of course. However if you are running on a non bridgehead server there can sometimes be problems making the connection to the remote bridgehead. If COBRAS tests the ability to connect to the bridgehead and it fails, you’ll receive a warning dialog telling you this and directing you to the help file for more info (presumably why you’re here now).
The first thing to check is the AvMMProxy service logs. These are found in the logs folder where Commserver is installed along with all other log files. The trace levels necessary are set automatically by COBRAS before the check is made so this information should always be there. The AvMMProxy service first checks to see if the account you are running COBRAS as is either the same account associated with the Unity messaging service OR if that’s not the case that it’s a Unity administrator. If neither one of those are true then the check will fail. Once that passes it then tries to establish an HTTP connection to the Unity bridgehead server. The following are two excerpts from the AvMMProxySvr log file output – the first one is a successful connection and the second is a failure.
** Success **
10:09:47:110,**,-1,5840,-1,,AvMMProxy,12,CAvMMProxy::IsContextMessagingAccount - Context is JEFFSDOMAIN\Administrator
10:09:47:109,**,-1,5840,-1,,AvMMProxy,12,CAvMMProxy::IsContextMessagingAccount - Context is not MailstoreServiceAccount
10:09:47:125,**,-1,5840,-1,,AvMMProxy,12,CAvMMProxy::IsContextUnityAdmin - Context is JEFFSDOMAIN\Administrator
10:09:47:171,AvDiagnostics_MC,1142,5840,-1,,-1,-1
10:09:47:172,**,-1,5840,-1,,AvMMProxy,12,UcInteropMgr::CreateUCICertIfNecessary
10:09:47:187,**,-1,5840,-1,,AvMMProxy,12,ab86b0ba-92eb-4f3f-b990-0df57dd357b2
10:09:47:188,**,-1,5840,-1,,AvMMProxy,12,lindborg2003.JeffsDomain.net
10:09:47:187,**,-1,5840,-1,,AvMMProxy,12,UcInteropMgr::SendValidateUciBridgeheadRequest - Request is http://lindborg2003.JeffsDomain.net/VMWS/VMWS.dll?Handler=ValidateUciRequest
10:09:49:109,**,-1,5840,-1,,AvMMProxy,12,UcInteropMgr::SendValidateUciBridgeheadRequest - CWinHttpSoapClient Response is 0x00000000
10:09:49:110,**,-1,5840,-1,,AvMMProxy,12,UcInteropMgr::SendValidateUciBridgeheadRequest - HTTP Response status is 200
10:09:49:109,AvDiagnostics_MC,1161,5840,-1,,AvMMProxy,0,ValidateUciBridgehead,(BSTR),0x00000001
** Failure **
10:11:32:860,**,-1,5840,-1,,AvMMProxy,12,CAvMMProxy::IsContextMessagingAccount - Context is JEFFSDOMAIN\Administrator
10:11:32:859,**,-1,5840,-1,,AvMMProxy,12,CAvMMProxy::IsContextMessagingAccount - Context is not MailstoreServiceAccount
10:11:32:860,**,-1,5840,-1,,AvMMProxy,12,CAvMMProxy::IsContextUnityAdmin - Context is JEFFSDOMAIN\Administrator
10:11:32:937,**,-1,5840,-1,,AvMMProxy,12,ab86b0ba-92eb-4f3f-b990-0df57dd357b2
10:11:32:953,**,-1,5840,-1,,AvMMProxy,12,lindborg2003.JeffsDomain.net
10:11:32:954,**,-1,5840,-1,,AvMMProxy,12,UcInteropMgr::SendValidateUciBridgeheadRequest - Request is http://lindborg2003.JeffsDomain.net/VMWS/VMWS.dll?Handler=ValidateUciRequest
10:11:33:953,**,-1,5840,-1,,AvMMProxy,12,UcInteropMgr::SendValidateUciBridgeheadRequest - CWinHttpSoapClient Response is 0x80072EE2
10:11:33:954,**,-1,5840,-1,,AvMMProxy,12,UcInteropMgr::SendValidateUciBridgeheadRequest - HTTP Response status is 1
There’s a few obvious things to check up front:
These command line parameters have been added to help TAC investigate specific problems – you should only run with them enabled at their direction.
To check for updates to this tool, visit http://www.ciscounitytools.com/App_COBRAS.htm
© 2010 Cisco Systems, Inc. -- Company Confidential