We have a Unified Contact Center Enterprise with CVP Comprehensive Model. As we are using 2 VXML Servers for failover, we need to configure the ICM script that sends the caller to VXML Service to consider the 2 VXML servers and to test the first server, if not reachable, send to the second server.
Does anyone knows how to configure this in the ICM script.
There are three ways to do this.
The most transparent and seamless is to use a CSS. Configure the ECC variable user.microapp.media_server to point to the Virtual IP provided by the CSS. The CSS will use a cookie to fix the session to the first VXML server that responds, to ensure all subsequent calls on that session will go to the same VXML server - a necessary requirement. A CSS will not have a delay should the first VXML server be down as in the next 2 methods.
The second way is to have two Run External Scripts (GS,Server,V). Set the ECC variable above to the IP address of VXML1 and enter the Run External Script node. If this fails (and flow comes out the X port), check the ECC variable user.microapp.error_code looking for "Error Code 40 -- System Unavailable". If this happens, reset the user.microapp.media_server variable to the IP address of VXML2 and hit the second Run External Script.
The third method is to use the automatic retry mechanism of the Call Server. Set the ECC variable user.microapp.media_server to (for example) "mediaserver" and define "mediaserver" and "mediaserver-backup" in the IP host table of the gateway to the IP addresses of VXML1 and VXML2. The Call Server will try to run the GS,Server,V on the IP address corresponding to VXML1. If this fails it will append "-backup" and try to locate VXML2 through the gateway using a lookup in the IP host table.
I tested the second method and found that the third method did exactly what I needed and saw no need for it, although this method was a documented technique in CVP 4.x guides. I just looked in the CVP 7.0 guide and could not find this scripting though.
Only the CSS will be timely.
The other methods have a delay while the request to execute VXML from the External VXML server has to time out before going to the second.
You just need to play with this and see if (in the absence of a CSS) the failure modes are OK for you. They were for me.
I welcome more discussion on this point.