Abstract
The cost of implementing a CTI (Computer Telephony Integration) solution can be broken down into three major components, licensing of the technology, developing any custom integration that may or may not be required and finally implementing and supporting the solution. Avaya CCE has been purposefully designed to reduce these costs as much as possible; by delivering an Express priced product providing a fully functioning CTI solution out of the box that does not necessarily require customization but where customization is required offering a number of different levels of integration capability that is essentially end user installable.
This paper describes some of the challenges involved customizing a CTI solution to integrate with third party applications and then steps through the different offerings provided by CCE and how they may be used by people of varying skills from system administrator to certified developer to deliver varying degrees of integration. Each of these different levels of customization will then be the subject of a separate paper to provide additional detailed information and examples on how they could be used.
Considerations
The benefits of Computer Telephony Integration are well recognized as being able to improve the speed and accuracy of the response to customer enquiries, which benefits both the customer and the company offering the service. The customer receives a superior level of service and the company benefits by reduced call handling time and first call resolution either improving the volume of interactions or reducing head count. All of these affect the bottom line and can be justified based on ROI.
However getting to CTI nirvana can involve a number of hurdles that need to be overcome not the least of which is, knowing what the desired outcome is. Some of the issues associated with CTI implementation are:
- Different technologies employed by different applications that allow communication between the applications. There are numerous application interfaces available from API/COM through DDE down to no published interface at all and somehow the CTI solution is going to be required to communicate via one or more of these interfaces in any given solution.
- Cost involved in the design, development and testing of bespoke solutions cannot be underestimated along with ongoing support and development as applications and needs change. CTI requires a particular type of development that needs to be event driven and work in real time which requires significant amounts of testing.
- Level of integration required may be as simple as passing a URL with the customers details to a browser or as difficult as a low-level operating system call between two applications.
- Integration is also bidirectional, screen popping or displaying information on an inbound conversation or initiating an outbound call from a third party application.
- Handling of different media channels such as voice and email or instant messaging in a way that is consistent without having a unique solution for each.
Design
Avaya Contact Center Express has not only been developed over the last ten years as a complete solution but has also been involved in implementing many custom solutions giving the developers themselves a unique opportunity to experience the challenges described above. The design philosophy of Contact Center Express has been to take the large number of different integration requests received over the past ten years and after developing a bespoke solution in some circumstances, rolling a generic version of that unique solution into the standard package for future users. For this reason the Avaya Contact Center Express product suite boasts numerous means of integration, so much so that one common question is “which is the best way to do this?” not “can I do this?” The answer to this question is dependant on the skill level of the developer but the old adage holds true, “the simplest solution is generally the best solution”. To this end CCE offers a number of solutions from out-of-box, through pre-built generic solutions to an application framework that allows custom developed components to be added to the out-of-box application without a need to open the out-of-box source code or requiring it to be recompiled.
Out of Box solutions
The integration offered by CCE may be a complete solution such as the different levels of integration available with Microsoft CRM. CCE provides simple screenpop of either contact or account information on inbound calls and outbound dialing from the same MS-CRM screens using CCE Agent. CCE Desktop delivers the same functionality with the additional capability of MS CRM activities such as scheduled fax, email or phone calls to be distributed to agents using CCE’s queuing mechanism.
Many System Integrators that have adopted Avaya Contact Center Express as the Avaya CTI platform of choice have their own suite of solutions as a result of implementations they have completed. These include connections to Frontrange’s HEAT and Maximiser, SalesLogix, Goldmine to name a few.
Non source code solutions
For the non-developer wishing to customize the operation of CCE without having to resort to writing source code, CCE can deliver the bare framework of the solution architecture as configurable components such as the CCE generic plug-in components that include Rules, SOAP, Script Host and Simple SQL. These tested and supported plug-ins allow connection to other devices such as an SQL server or Web Service, or create or connect to a TCP socket to request or send data, simply by defining the connection information and data in an initialization file with no actual source code required to be written at all. While suitable for non-developers to provide a level of integration System Integrators can use the same functionality without having to resort to writing bespoke code for just for the sake of it, reducing both development and testing as the plug-ins themselves have already been tested. Where these plug-ins are generic and provide a significant level of integration with literally only minutes of configuration required sometimes through the use of wizards, they may not meet all requirements for all users.
Scripting solutions
To meet these additional requirements a deeper level of integration is required and this is delivered in the form of scripting. In the CCE Agent application this is delivered as a Microsoft module called Visual Basic for Applications (VBA) and includes a built in Integrated Development Environment (IDE) that allows code to be written within the CCE Agent application itself. For the in-house developer, who has written other company applications such as that custom CRM solution created in MS Access or Excel and is familiar with VBA, this provides the perfect opportunity to CTI enable these solutions either from Agent to application or from application to Agent using a published API. Using VBA the operation of the CCE Agent application itself can be modified including replacing the actual user interface with a completely custom interface. Many sample VBA projects are included with the custom installation of CCE Agent demonstrating integration with Excel, Access and Outlook as well as Active Directory for customizing application configuration.
Unfortunately this module is not supported by Microsoft in a .Net environment so the CCE Desktop application incorporates a new plug-in called IronPython from Microsoft.
IronPython is described as “IronPython is a new implementation of the Python programming language running on .NET. It supports an interactive console with fully dynamic compilation. It is well integrated with the rest of the .NET Framework and makes all .NET libraries easily available to Python programmers, while maintaining full compatibility with the Python language.”
This allows users a greater level of integration without necessarily having to resort to developing code from the ground up, while still allowing full access to the .Net libraries if required. This plug-in to CCE Desktop has been provided as a sample in the CCE Desktop 3.0.1 version and is provided with a number of sample scripts demonstrating its operation.
Custom Development
The greatest level of integration and customization of CCE Desktop can be delivered by accessing the internal components of CCE Desktop itself through the development of custom plug-ins. This is achieved through a framework application called GUIHost which is a generic windows application that presents an empty window to the user. The applications capability comes from a number of plug-ins each delivering menu, toolbar and document functionality when loaded by the GUIHost application. The out-of-box applications CCE Desktop, CCE Control Panel and CCE Reporting are all GUIHost applications that load plug-ins to provide the required functionality. For example CCE Desktop is the GUIHost application that loads a large number of plug-ins including Voice, User, Email, Spelling that provide the relevant capability you would expect given their name. With this architecture a dedicated developer can not only create their own additional functionality but in principal could even remove out of box plug-ins and replace them with their components. An example of this would be to remove the existing NICE call recording plug-in and replace it with a custom Witness recording plug-in. To help developers achieve this level of capability not only does Avaya Contact Center Express deliver a development template for Microsoft Visual Studio 2005 but also a number of plug-ins complete with source code that demonstrate how to create theses plug-ins.
Conclusion
Avaya CCE arguably has the widest range of available integration interfaces available for a CTI solution. With so many options available not only can all integration requirements be met, but can be met at a level relevant to the integrators experience and the clients budget.