UCCX Scripting – Working with XML documents
October 18th, 2013
When writing call control scripts for Contact Centers (ShoreTel ECC, CISCO UCCX ) do you really have to start over each time?   Are there really that many differences between contact center applications?    Well, yes and no!  As we continue the search for the killer script, that "holy grail" of scripts which can do it all and never needs to be modified, we turn our attention to the wonderful world of XML!    Every Scripting Engineer has a library of routines that hey have emerged over time.  They accumulate over as the scripts become more refined with time and experience.   You would think there would be nothing new under the sun, but from time to time someone hits on a particularly creative solution to a common call flow requirement. I have to credit Steven Griffin, a true rockstar of a  software engineer,  with opening my eyes to the possibility of using a "QueueOptions.xml" file to specify parameters you might otherwise hard code in a UCCX call control script.  I have learned from other engineers like Wesley Forvergne and Anthony Holloway how to build on this concept (these guys have all really advanced the state of the art IMHO)  and create scripts that are extensible, supportable and flexible!  Why have to write another script or launch other instance of a script just because the SLA, Menu or Schedule changed?  Why not have a Script that can reconfigure itself based on parameters recovered from a configuration file, using DNIS as the file index?   An inbound call to the contact center triggers a script which uses the DNIS to look up the appropriate configuration for the number dialed. Maybe this DNIS differs from another DNIS only in as much as the On hours specified  in the Schedule?  If you have been using that "Day of Week" and "Time of Day" UCCX script step you have no alternative but to have either a bunch of "if" steps or creating the same script on another trigger so that you can have a different operating time.  What an inefficient waste of processor and system resources!   Why not just read in the Schedule from an XML file and use the same script for all your DNIS numbers, all on the same trigger?  You can even reconfigure the Menu and Prompts, change the voice mail box, determine if you should play "estimated time in queue" or not and just generally customize the script on the fly! XML is just a powerful alternative to OBDC type solutions.  No special drivers, portable across operating systems, language independent and able to handle dynamic database changes.  Your XML document can be updated dynamically as required through HTTP and other web based technologies.  This makes it possible  to integrate your call flow based on input from a website entry!   How about SMS to XML?  Think of the possibilities!   I guess that is what we really enjoy about Contact Center scripting!  Never a dull moment and limited only by imagination. The video discusses the creation of an Xpath specification assembled on the fly and uses a string value to index the XML document.   Great entertainment and fun for the entire family! http://youtu.be/LUQI1JZclk0