Many of the optional features in Packaged CCE require a Cisco Unified Customer Voice Portal (CVP) media server to store and serve supporting .wav files. This chapter describes how to set up a CVP media server. It also describes expanded call variable settings related to the media server and requirements for accessing a media server in call routing scripts.
The features that require a CVP media server include Agent Greeting, Courtesy Callback, Post-Call Survey, and Whisper Announcement.
A media server is installed by default on each of the four CVP servers in a Packaged CCE deployment.
Ensure that IIS is properly configured and running on the server. It must be listening on port 80. To validate proper configuration of the media server, attempt to play one of the default media files installed during the CVP installation, such as http://<cvp_ip>/en-us/app/en_1.wav.
Microsoft IIS is the recommended media server for use with Unified CVP. This component is automatically installed as part of the CVP server package installation. To confirm that the media server is installed correctly, launch a browser from a remote machine that is able to ping the CVP server, and access the following sample wav file: http://<CVP Server IP>/en-us/sys/1.wav. If the file is accessible, the media server is setup correctly.
Ensure the server is accessible to CVP, Unified CCE, and your agent desktops.
Perform the following steps:
On the taskbar, click Start, point to Administrative Tools, and then click Server Manager.
In the Server Manager hierarchy pane, expand Roles, and then click Web Server (IIS).
In the Web Server (IIS) pane, scroll to the Role Services section, and then click Add Role Services.
On the Select Role Services page of the Add Role Services wizard, expand FTP Server.
Select FTP Service
To support ASP.NET membership or IIS Manager authentication for the FTP service, you need to select FTP Extensibility.
On the Confirm Installation Selections page, click Install.
On the Results page, click Close.
In the sites section, click Add FTP Site. Provide a site name and path to the same location as the http directory c:\inetpub\wwwroot.
Select your desired binding method, and specify to start immediately.
On the FTP SSL Settings, select Allow SSL Connections.
On the Authentication and Authorization section select the type of authentication required. If using basic, note the name and password of the account.
Select the authorization; for anonymous select Anonymous users.
Set the read and write permissions.
Make note of your FTP connection information -- connection type, user name, password, and port number.
Make sure that the FTP and the IIS share the same root directory, because the recording application writes the file to the media server directory structure, and the greeting playback call uses IIS to fetch the file. The en-us/app directory should be under the same root directory for FTP and IIS.
Create a dedicated directory on the server to store your greeting files. This lets you specify a lower cache timeout of 5 minutes for your agent greeting files that does not affect other more static files you may be serving from other directories. By default, the Record Greeting application posts the .wav file to the en-us/app directory under your web/ftp root directory. You may create a dedicated directory such as ag_gr under the en-us/app directory, and then indicate this in the Unified CCE script that invokes the recording application. Use the array for the expanded call variable call.user.microapp.ToExtVXML to send the ftpPath parameter to the recording application. Make sure the expanded call variable length is long enough, or it may get truncated and fail.
In IIS Manager, set the cache expiration for the dedicated directory to a value that allows re-recorded greetings to replace their predecessor in a reasonable amount of time, while minimizing requests for data to the media server from the VXML Gateway. The ideal value varies depending on the number of agents you support and how often they re-record their greetings. Two minutes may be a reasonable starting point.
Also find the site you are using, go to the agent greeting folder you created (ag_gr), and then select HTTP Response Headers.
Click Set Common Headers on Actions panel.
Select Expire Web Content and set your desired value.
What to Do Next
After specifying the cache timeout, it is a good idea to clear the cache on the VXML Gateway. This ensures the gateway requests the latest files from the media server. You need only clear the gateway cache once. Open a command prompt on the CVP VXML Gateway, log into IOS, and enter the following commands:
my_server# conf t
my_server(config)# clear http client cache
The HTTP client response timeout setting on the gateway must be greater than the time it takes to complete the largest anticipated FTP file transfer. If an FTP file transfer takes longer than the configured duration in seconds for HTTP client response timeout, the FTP transfer completes correctly, but the call drops as soon as the configured timeout duration is met. To change the HTTP client response timeout setting, open a command prompt on the CVP VXML Gateway, log into IOS, and enter the following commands:
my_server# conf t
my_server(config)# http client response timeout <new value in seconds>
By default, the HTTP client response timeout value for CVP VXML Gateway is 30 seconds.
Add and Configure Media Servers in CVP
You can add one or more servers to CVP to act as media servers. If you add multiple media servers, note the following:
CVP automatically propagates files that are added to one media server out to all media servers in the list that have FTP enabled. To enable FTP on a media server, use the following procedure.
You can designate one media server as the default. If a default media server is defined, requests for files are automatically sent to that server without your having to specify that server in your routing scripts.
Access the CVP Operations Console by typing https://<OAMP_server_IP>:9443/oamp.
At the CVP Operations Console, select Device Management > Media Server.
Add a server to the list of CVP media servers.
Select FTP Enabled.
Configure the credentials and port settings that will permit CVP to write files to the server using FTP.
Optionally, you can designate one of your media servers as the Default Media Server.
Click the Deploy button to deploy the list of media servers to your CVP Call Servers.
Note: If you deploy the list of media servers and then designate a default, you must redeploy the list.
Reference a Media Server in CCE Scripts
Specify Media Server in Routing Scripts
When you configure media servers in CVP, you have the option to specify a default media server. The benefit to specifying a default media server is that your scripts do not need a Set Variable node to access the default media server. For this to work, you must make sure that the files a script is requesting are stored on the default server.
If you do not define a default media server, or if you define a default but the files that your script needs are not stored on the default, then the script must include a Set Variable node to identify a media server.
Use these settings in the Set Variable node to specify a media server that stores the files required by your script:
Object Type: Call.
Variable: Must use the user.microapp.media_server expanded call variable.
Value: Specify the HTTP path to the server. For example: "http://myserver.mydomain.net." You must enclose the path in quotes.
Alternately you can specify an IP address in place of a DNS. Include the listening port number if the web server for the media server listens on a port other than 80 (for HTTP) or 443 (for HTTPS).
See the following example.
Specify Greeting File Locale and Application Directories in Routing Scripts
CVP uses a default storage directory for media files: <web_server_root>/en-us/app. The physical location of the default storage directory is c:\inetpub\wwwroot\en-us\app.
To take advantage of this, Unified CCE call routing scripts automatically add en-us/app to the server name when constructing HTTP requests for media files. For example:
If the script node that defines the media server has a value of "http://myserver.mydomain.com," and
The script node that defines which audio file to play has a value of "agent123_1.wav", then
The HTTP request for the file is automatically constructed as http://myserver.mydomain.com/en-us/app/agent123_1.wav
If your greeting audio files are stored in a different locale directory, you must add a Set Variable node to your script that identifies the locale directory. As you must store your greeting files in a dedicated subdirectory under the locale, you must always add a Set Variable node that identifies that directory.
Use these settings in the Set Variable node to specify your locale directory:
Object Type: Call.
Variable: Must use the user.microapp.locale expanded call variable.
Value: Specify the directory name. For example: "pt-br" (Portuguese-Brazil). You must enclose the path in quotes.
Use these settings in the Set Variable node to specify your application directory:
Object Type: Call.
Variable: Must use the user.microapp.app_media_lib expanded call variable.
Value: Specify the directory name. For example: to use a directory "greet" in place of the default directory "app", enter "greet". To use a sub-directory "greet" under "app" enter "app/greet". You must enclose the path in quotes.
Verify Length for Media Server Locale and Application Directory Variables
If you include Set Variable nodes for the media server, locale, and/or application directories, make sure that the values you set for them do not exceed the Maximum Length settings for their corresponding expanded call variables.
For example, suppose you include a Set Variable node for the media server with a value of "http://mysubdomain.mydomain.co.uk". That string is 33 characters long. Therefore, the Maximum Length setting for the user.microapp.media_server expanded call variable must be 33 or greater. If it is not, you must increase the Maximum Length setting for the variable using CCE administrator tool. Otherwise, the server name is truncated in the HTTP request for the file and the file is not found.