Tuesday, 3 February 2009

Installing Callmedia Client

Installing Callmedia Client and Desktop on a single machine is very straightforward. Just insert the CD-ROM and run "setup.exe" and you're there. Deploying it on several hundred machines in the contact centre in this way is much less fun - but the good news is that there are several different ways of installing the software remotely and automatically.

Initial Installation

The Callmedia Client and Desktop are packaged as an MSI (MicroSoft Installer) package. This means that you can use Group Policy Objects to get them automatically installed. Microsoft have details on how to use Group Policy Objects to run MSI installers automatically. Alternatively, you can create a batch file that will automatically run when the user logs in, and installs the software.

When writing batch files to install software there are a few "gotchas" you have to remember:

a) Batch files can't use UNC paths. So you have to map drives before you install software from them.

b) To install an MSI file, you use MSIEXEC.EXE

c) To install from an EXE file, use the Start command.

d) Callmedia Client's configuration options aren't completely covered by MSI switches (see later). You may also need to use batch files to cope CMCLIENT32.INI files, or apply registry settings.

Here are some useful pointers if you use the MSI and Group Policy Objects route:
  • Login scripts (ie: batch files) will run whenever a user logs on. This means it will re-run the installers on machines where components are already deployed. Batch files can be scripted to work around this. 
  • Login scripts run as the user logs on. Therefore if an already installed CMClient32.exe starts up before the batch file has managed to install a new Hotfix, then the user will need to log off and on again for changes to take effect. 
  • GPOs (Group Policy Objects) can be linked to machines as well as users, which means that on startup, the machine can install required packages before the Windows login prompt is presented to the user. 
  • Unfortunately, GPOs cannot run standard EXEs. It is restricted to MSI and ZAP files. ZAP files can be setup to deploy EXEs (they’re just like Batch files), but they cannot be auto-deployed, only published (which lists them in the Add Programs list in Control Panel. This means thatyou will need to create batch files when you need to install Hotfixes (see later). 

The switches the Callmedia User Components.msi understands are:

CM_SETUPTYPE= [Express, Pro, Advance or Enterprise]  Note: there is no blended option. Use Enterprise. Express is no longer used.

INSTALLDIR= [installation directory]
CLIENT_IPADDRESS=
CLIENT_EXTN=[Extension number or "ASK"]
CLIENT_SOCKET=[default 4605]
CLIENT_BACKUP_IPADDRESS=[IP address of failover server]
CLIENT_BACKUP_SOCKET=
DESKTOPS_BROWSER=[0 or 1]
DESKTOPS_RESIZABLE=[0 or 1]
DESKTOPS_HOMEPAGE=[default URL for desktop-based browser]


Example Batch to install Client and Desktop

@echo off
REM If necessary, map network drive to point to Callmedia User components...
@echo off

REM If necessary, map network drive to point to Callmedia User components...
NET USE Z: \\Network _Filestore\Callmedia /USER:Callmedia\Administrator /PASSWORD:Geoff /PERSISTENT:NO

REM Go to dir for user components msi file...
CD "D:\User\Callmedia 4.1\User"
D:

REM Run MSI with appropriate switches...
REM /l* logs everything that MSIEXEC does to the msi.log file.
%systemroot%\system32\msiexec.exe /l* msi.log /i "Callmedia User Components.msi" /q INSTALLDIR="C:\program files\Callmedia" CMSETUP_TYPE="Enterprise"
CLIENT_IPADDRESS="192.168.1.1" CLIENT_SOCKET="4605" CLIENT_EXTN="ASK" DESKTOPS_BROWSER=0

REM Unmap network drive
NET USE Z: /DELETE



Hotfixes

All Callmedia Hotfixes are released as .EXE installers. These can only be auto-deployed by using a batch file (using the start command). For example:

REM Install Hotfixes...
Start /w Hotfix_U4_1_0_8.EXE /s /v/q

Configuration changes

Sometimes you will need to change the CMCLIENT32.INI file, or make registry setting changes. 
5. Odds and Sods: Hotfixes, CMClient32.ini files and Registry setting changes.  You have two options:
a. Add a Batch file Login Script that applies these changes.
b. Create an MSI that applies these changes. WinINSTALL LE 2003 is a free tool, available to download here: http://www.simtel.net/product.php?id=70765&SiteID=simtel.net. The MSI can then be added as a GPO package and deployed in the same way as Callmedia User Components MSI.

Future directions

As you may have gathered from reading this, installing and keeping the client components of Callmedia can require careful planning - it's not the sort of thing you want to get wrong. So in version 5.0, we are introducing another means of installing and updating the client and desktop, which automatically checks to see if a new version is available, and installs it. We're also going to make it available on Callmedia 4.4.

Labels:

Configuring Client Extensions

There are many ways to get Clients to obtain a valid Extension number. Well, actually, there are three. Two are quite common, one is less common:

1. Asking users for their Extension number. This is achieved by setting EXTNO=ASK in the CMClient32.ini file.
Advantages: Popular because of its easy deployment (everyone shares identical ini files), and also because on many sites users have to Hotdesk whilst always retaining the same extension number.
Disadvantages: Common issues include users inputting invalid Extension numbers. Server Console offers limited assistance here: you can restrict input to 4 numerical characters for instance. But CMClient32.exe doesn’t support re-entering numbers if they are invalid anyway, which is nice.

2. Hard-coded Extensions, by setting EXTNO=2001, for example.
Advantages: This is useful for people whose extension number is always next to the same Windows machine.
Disadvantages: Common issues with this are the fact that machines and phones sometimes get swapped over, which means the CMClient32.ini file would need to be changed. Deployment is also not easy because all machines have unique ini files; this can be a maintenance/installation nightmare for large sites.

3. Host-Table Lookup. This is configured by adding the ServerLookupUptions=ASKEXT to the [Options] section of the CMClient32.ini file. Client then ignores the EXTNO setting, and asks server to give it an extension number based on the Hostname of the client machine. Nifty. This even works in Terminal Server and Citrix environments (it uses the machine name of the terminal).
Advantages: As with hard-coded extensions, this is great because it takes agent-error out of the equation. It is better than Hard-coding into the ini file however, because the host table is maintained from Server Console. This means that the CMClient32.ini files are all identical, which makes deployment a doddle.
Disadvantages: For this to be effective you have to 100% on which machine is next to which extension. As with Hard-coding, this is pretty much irrelevant if users need to hotdesk and take their extension numbers with them (ie: if they use NICE voice recording).

Labels: , ,