TAPI (Telephony Application Programming Interface) allows out-of-the-box integrations with many applications (such as Microsoft Outlook) and call center software (such as VoxTron).
TAPI is an abstraction layer that can interact both in ICC mode (controlling, in this case, only one device) or ICS mode (controlling many devices at once). The number of advantages provided by ICS mode justifies the selection of a PBX that supports it.
The huge advantage for software houses that are considering using TAPI is that, once the integration is completed, it can be used with numerous PBXs already on the market.
TAPI’s most basic feature, which is also supported by most PBXs, is dial. More advanced features include call answering and disconnecting a call.
Other systems also support supplementary functions such as hold, transfer, conference, and call park. For a complete integration, these supplementary functions are required as simple call generation is too limiting.
Finally, a TSP driver can open one line (usually one user monitored) or many (more users monitored). Support for multi-line mode is necessary when TAPI is used to control the phones of a group of users (for example, a call center), or if the integration is employed by many users connected via a terminal server.
Besides controlling phone clients, TAPI can also work as a routing point, allowing an application to choose the most efficient routing of incoming calls.
In even most advanced scenarios, TAPI can be used to create predictive dialers.
A final and important point to consider when choosing a communication system which should work with TAPI, is the network requirements of the TSP Driver that connects to the communication system. Many TSP implementations assume that the application using it is located in the same LAN as the communication system. In such cases, security or connection-stability issues could arise, if the connection must instead be performed over the Internet.
If the application that you are integrating does not yet support TAPI, and your organization will take care of implementing the integration, I strongly suggest the use of one the following libraries which all support .NET natively: ATAPI.NET or ITAPI3. Both are available at this link: https://github.com/Wildix
The examples presented on this site can be used to implement valid integrations. TAPI2 and TAPI3 are notoriously complicated to integrate, so many developers tend to use the higher-level libraries.
Many companies such as Camrivox, Mirage-Systems, and Mscrm-Addons provide integration with popular CRMs and ERPs to any Unified Communication solution that supports a TAPI driver.
UC Server Web APIs
Web APIs provided by the UC server are used by the web CRM system to communicate actions to the UC server.
We will see how the UC server can communicate events via web APIs to the CRM system.
To easily integrate with web CRMs, the UC server can provide a set of web APIs to perform actions (such as call generation). In such a case, the CRM web page (or the CGI scripts on the server side of the CRM application) will generate web requests towards the UC server.
In the case of requests to RESTful web APIs, we will have one request and one action. Besides call generation, APIs can be used for many other operations such as:
- Sending a fax
- Sending an SMS
- Changing the presence of a user
- Programming the UC server behavior by changing internal variables
Some UC solutions provide a rich web UC client, which facilitates the visibility and management of real-time calls, chat, phone books, and history.
Integrating such a UC client inside the web CRM creates some of the best integrations, since the information is exchanged in real-time (for example, call popups can be shown instantly). This feature does require the support of cross-domain requests inside the CRM.
This approach usually requires more time, as the web CRM must be modified. However, it does yield the best results because the reactivity and quantity of information are superior.
For example, Wildix provides a web API JavaScript library, which allows for the integration of features such as presence, chat, call generation, and controls inside any web applications. Developers can get assistance during development by accessing a demo project, which allows them to see all of the available features.