The primary reason for the difficulty of integration has to do with the fact that programming the agent desktop and programming the server side involve two entirely different disciplines and protocols. Server side and client side programming are traditionally different, and never the twain shall meet. Or rather, they could meet, but since each requires a different set of programming skills, the integration is often rather complex and brittle.
The server side
Historically, programming the server side (telephony and routing) is usually written in C or Java. The most popular manufacturers, Avaya and Cisco, have proprietary languages that require specialists to program. Most call center cloud vendors use either proprietary languages or Java. With no inherent ability to talk to other systems, those traditional server side tools require a paid specialist for CTI integration, which adds both complexity and cost. Additionally, IVR systems are often written in VXML--a language that is designed to be used statically.
The client side
- Resource conservation The same programmers can be used to code client and server side applications; no specialists required
- Data integrity With the same programmers on both sides, it's inherently easier to ensure the correctness of data passed between the client and server sides
- Increased speed and reliability The same language translates to fewer outages, fewer bugs and fewer complications. Speed to market and reliability both increase.
- Decreased cost With increased reliability and speed as well as resource conservation, the cost to end customers is decreased.