I want to show how to utilize an XML Document stored on UCCX to make changes to an ACD call flow dynamically. My example is that the Help Desk wanted an easy way to forward incoming ACD calls over to their WIFI Phone during slow times when staffing and call volumes were lower. They also wanted the ability to insert a prompt at the beginning of their ACD when they had known issues, so that end-users could be notified without having to wait on hold for an available agent.
How To Steps
Determine which attributes you want to manipulate, and the required data types. The solution I designed required a boolean for whether or not to transfer to the WIFI Phone, a string to house the 4 digit prompt to play at the beginning of the call, and a boolean for whether or not there was a prompt that needed to be played.
Design the ACD Script that you would normally have for call flow, and add the script elements to handle the additional attributes based on their data types. I recommend creating the variables as parameters, so that you can change them on the webpage, and run some test calls without worrying about the XML. In my application the Help Desk created a spreadsheet with their "canned" front-end messages, so we assigned four digit prompt names, and had those recorded to facilitate the testing of the script.
Design the script that I call the "management" script, because it's only function is to manage the primary ACD Script. My "management" application basically consisted of checking a password (a simple string parameter), then a menu for whether they are transferring to the WIFI, or setting a front-end prompt message. A couple of things to think about - you don't want more than probably 1 simultaneous session, and I just recorded these prompts myself, because they are only heard by internal IT Staff.
Create the XML Files - I built this quite some time ago (also, I am not an XML expert), and somebody helped me along the way... However, this really consists of two files, the XML file itself that includes the data, and the transformation file which allows you to write the file. In my example you will see that hdmgmttemplate.xml sets the structure for the file, and has %description% for the attributes themselves. This is used as part of the "Keyword Transform Document" step to map the variables to the position in the file where they need to be written. When I created the hdmgmt.xml file I actually populated it with valid values, so that I could avoid any errors relating to no data being available when writing the steps in the script.
Upload the XML Files - I have these in my "C:\Program Files\wfavvid\" directory currently, but while writing this document I came across something that indicated they should be in the Document repository. If anybody has any comments on that I would appreciate them, and I might try that during a maintenance window or on my development box. It seems to make sense, because with the move to Linux in UCCX 8.x and higher you won't have directory access to the "wfavvid" directory.
Modify the scripts to include the necessary statements to utilize the XML. The steps I used are as follows...
Create File Document - Define a document variable by referencing the file name
Create XML Document - Specify that the document is an XML Document
Get XML Document Data - This step actually retrieves the data element. You will need a step for each data element, so for my example I did this step three times.
Keyword Transform Document - Defines which variables need to be written to which "template placeholders" as I indicated above
Write Document - Write the new XML Document out to the disk on UCCX
Test, Test, and Test
The solution was originally built and deployed on IPCCX 4.x utilizing a Standard license. We have since upgraded to Enhanced licensing on a UCCX 7.x environment, and still utilize these scripts. If you have Premium licenses then you may find it easier just to write these values to a Database Table.
I have included my scripts, as well as my XML files for reference... Let me know if you have any questions...
We don't use the CS-Touch or Navigator for controlling the codec in the room. Instead we use I third party integrator to control the codec through serial.SO my question is, Can the CS-T10-WM-BR= be used to convert the CS-T10-TS+ to a CS-T10-WM-K9= ?We cou...
I have a dial peer group (DPG) that consists of 4 dial peers. The first three dial peers point to UCM server groups. The fourth dial peer is used for fax detection and sends fax calls to our E Fax server. I need to be able to stop the inbound calls from h...
Hello, I have an established line group "" TI ", a hunt pilot" TI "and a hunt list" TI ", and the extensions, 125,126, 155,156 as members, I use the circular distribution algorithm to pass unanswered calls between the members available but forwarding betw...
When talking about Dial Plan and Digit Manipulation Cisco Unified Communication Manager, three components play an important roles to perform the transformation of the calling and called parties.The Translation Pattern, Transformation Pattern and Rou...