The media server component of a Cisco Customer Voice Portal (CVP) solution is often the least planned part of the deployment, but it is one of the most critical since it is where all your pre-recorded audio files sit. When it comes to being a developer trying to troubleshooting your scripting, the media server can also be the cause of much frustration if it is not setup right. Locales have always added to the frustration in the past because microapp locales prior to version 9.x were in a format of en_US, which made sense because that is how ISO and international standards generally represent them. However, Call Studio apps used locales in the en-US format, favoring the hyphen rather than the underscore. This means that whomever setup the media servers probably did so based on their experience scripting either with microapps or studio, but rarely both.
Generally, I have seen the calls studio users put their audio files in the deployable studio project itself to keep everything in a nice package, but this means that CVP VXML server tomcat instance is hosting the audio rather than the media server itself. This happens way too often and most of the offending developers don’t even realize that Cisco TAC does not support this, mainly because they are not the ones who get the support tickets so they don’t call TAC. I say all this simply to point out that there has been little visibility in the past because the Studio folks just did their own thing, primarily due to the fact that there was no strong documentation about the media server.
Cisco finally came to their senses and started telling people more explicitly that IIS was the only supported media server platform in version 9.0(1). There was also a standardization in 9.0(1) to use the hyphenated locale format in both microapps and Studio apps going forward. We saw a section get added to the CVP 9.0(1) configuration guide to address the changes and with version 10.0(1) we see a stand alone document for media server configuration. In both the 9.0(1) configuration guide and the media server document for 10.0(1) we can find statements about locale backward compatibility, which is really the crux of our issue. When people upgrade from a 7.x, or older deployment, someone inevitably comes across the statements about the requirement to use IIS, or it just hits them in the face when they install CVP because the installer enables IIS and asks you where you want to put the media files.
Once the lightbulb goes on over said engineer’s head they usually start looking at what was previously deployed and quickly realize that we need to move the Studio files out of tomcat and into IIS….but wait all these tomcat files are in en-US, not en_US like on our existing media servers. You can guess how the rest of the story unfolds; someone has a meeting with the studio developers, they say they are not changing their apps or worst yet they were some consultant that charges you $400/hr to talk to them and wants to sell you a project to fix it. In any case the engineer installing CVP usually thinks of Studio as a black hole of ritual magic and determines “we better change the microapps and leave the Studio stuff alone”. This is going to lead to 1 of 3 things happening:
- Someone needs to audit every existing ICM script and making changes to the new hyphenated locale format during the cutover
- We are going to have a directly called en_US and a directory called en-US
- It will just be ignored until someone calls to test the microapps and find they don’t work.
Option 1 leads to a long cutover with a lot of upfront planning to build test plans, option 2 makes developers crazy (just don’t do it), and option 3 is just negligent.
Now that you understand the unfortunate reality of the situation, let’s talk about how to fix it. Internet Information Services (IIS) comes to our rescue with Virtual Directories. Virtual Directories allow us to alias a directory structure in the URL that does not actually exist on the disk. This means that we can pick a structure for our directories on disk and make it answer to both the hyphens and the underscores and since IIS is case insensitive we don’t have to worry about whether the right hand side of the directory name is capitalized or not.
I mentioned earlier that the CVP installer now enables IIS and puts the media files in the IIS root, unless you change the path, so your c:\inetpub\wwwroot is going to look like this after the install.
To make our Virtual Directories for the underscored locale directories we just need to open the IIS management snap-in and right click on the default website from the tree on the right, choose “Add Virtual Directory…”, and enter the alias path and the actual path to the directory on the file system.
After we add Virtual Directories for both the en-us and es-mx directories installed by CVP, our IIS configuration should look like this:
This allows our IIS to serve our VXML gateways the same 1000.wav file no matter which of the URLs our programming references:
I know this may seem like a trivial thing but trust me when I tell you that a little bit of trivial planning and configuration will make your life easier down the road and ensure a smooth transition to the newest versions of CVP. I have been using this approach since the 4.x days, it is simple and it just works.