IVR Development & Integration

IVR development projects produce applications which are almost always deployed within complex technical environments and require varying degrees of integration; this can often be the most technically challenging aspect of an IVR development project. Below are a few examples where ICR has delivered not only the IVR development and Speech Recognition front-end applications but also middleware layers and bespoke integration software developments for end-to-end success. The architectures of these solutions ensure that each component is enabled to perform specific tasks as efficiently as possible.

Banking

Design and delivery of a middleware layer integrating a suite of IVR applications into the Bank’s new and evolving IT and Telephony environment.

Leveraging the Spring framework, this MVC tier consolidated all complex SOAP web service calls into a common suite of servlets. Each servlet API represents a core business function and encapsulates all required business logic within. 

The loose-coupled design allows multiple IVR applications and delivery channels, both now and in the future, to access the API using simple JSON over HTTP communication. The design allows for independent scalability and was essential in overcoming the limitations of the client’s chosen proprietary VXML based IVR application development environment.

Retail / Distribution

Design and delivery of a Java intermediary layer to provide communications between legacy middleware accessing current host systems and IVR applications developed using the client’s chosen proprietary VXML development tool. 

The delivered library had a minimal dependency foot print to ensure compatibility with the host platform whilst providing efficient mediation of data interchange between the incompatible systems.

Mobile Telco – client 1

Design and delivery of standards-based functionality to compensate for technical shortcomings in the customer's chosen IVR development environment.

This bespoke software solution, acting as a conduit for data exchange between the IVR platform and any SOAP web service, implemented a vendor specific extension API providing for communication via XML over HTTP. 

Deployed as a standalone servlet, the solution utilises the JAX-WS specification to work at the raw xml message level. It dynamically invokes complex SOAP web services including those implementing WS-Security headers. Configuration is controlled by the IVR platform at runtime minimising the impact on existing vendor IVR configurations

Mobile Telco 2 - client 2

This client’s strategic decision to use a modern web-based IVR application development environment gave rise to some incompatibilities between the chosen host platform and a legacy 3rd party client insulation library - required to marshal all access to the existing 3rd party message-oriented middleware (MOM). Adding to these technical issues were inconsistencies within the 3rd party library API which made it difficult to develop against using a modular reusable design.

The solution was to loose-couple the 3rd party library from the host platform and provide a consolidated and unified standards based web service wrapper API. Design diligence was crucial in ensuring minimal performance latency; this was accomplished by leveraging Java streaming API’s in conjunction with the JAX-WS specification to work directly with the raw xml payload.

The deployed solution allowed for independent scalability and is easily consumed by any modern SOAP client toolkit. This added flexibility allowed the client’s chosen development environment to integrate using its own inbuilt SOAP toolkit.

Some of the technologies and frameworks we have used include:
 

SOAP Web Services

    • Contract first & Java first development
    • Client & Server development
    • JAX-WS
      • Oracle Glassfish Metro RI
      • Apache CXF
      • WS-Security
    • Apache Axis 2
    • Spring WS

Restful Web Services

  • Spring MVC
  • JAX-RS

XML to Object Mapping

    • JAXB
    • Apache Xmlbeans
    • Castor

Data Object Mapping & Persistence

    • JPA
    • Hibernate ORM

Dependency Injection Frameworks

    • Spring Framework
    • CDI / Weld

RDBMS

  • Oracle
  • MS SQL Server
  • Embedded Java Databases
    • H2