This article is intended for administrators who want to set up a single / multi site PBXs installation and offer to users a CTI (Computer telephony integration) integration via TAPI (Telephony Application Programming Interface) for Microsoft Windows.
What is TAPI and its advantages
TAPI is supported by a huge number of client, server applications and allows to automate many processes between these applications and the corporate PBX.
Examples of such applications are: Microsoft Outlook, Voxtron (Home | Voxtron Corporate) , Firstel (Firstel | new ways to communicate in business), Salesforce (Salesforce – Wildix via Mirage Support), Microsoft Dynamics Navision. An Integration provided via TAPI can allow to automate outboud call generation as well as inbound call routing.
As indicated above TAPI is an abstraction layer which can interact both with local applications usually, controlling only the phone of a single user, or with server applications controlling more lines of multiple users. A TSP Driver can open one line (usually one user monitored) or many (more users monitored). Support for multi line mode is necessary to use TAPI to control the phones of a group of users (for example a call center) or if the integration is used by many users connected to a server via terminal server.
The huge advantage for software houses which are considering using TAPI is that once the integration is completed it can be used with numerous PBXs on the market.
A TAPI driver most basic feature which is supported by most PBXs is dial, more advanced features are answering and hanging up a call.
Other systems support also supplementary functions, such as hold, transfer, conference, and call park. For a successful integration also the supplementary functions are needed of course.
Besides controlling phone clients TAPI can also work as a routing point, allowing an application to decide efficiently the routing logic of incoming calls.
In even most advanced scenarios TAPI can be also used to create predictive dialers.
How to develop the application
If the application you need to integrate does not support TAPI already and your organization will take care of implementing the integration I suggest to use one of the following libraries: ATAPI.NET or ITAPI3 available at this link:
http://julmar.com/blog/tag/tapi/
Which support natively .Net. The examples present on the site can be used to implement very valid integrations. TAPI2 and TAPI3 are notoriously complicated to integrate and so many developers propend for the usage of higher level libraries.
TAPI Over the Internet
Not all PBXs support TAPI drivers which connect over the internet. This makes it impossible to create a system with remote sites and workers. When choosing a system make sure that the TSP Driver works correcly over LAN and the Internet.
Make sure also that the information exchanged between PBX and Driver (installed on the Windows PC / Server) are crypted and that the connection is resistant to network delays and packet loss which are often present over the internet.
In such case Security / Connection Stability issues could appear if the connection instead must be performed over the internet.
TAPI Over a Network of PBXs
In many scenarios a network of PBXs is preferrable or necessary in place of a single PBX. Local PBXs offer survivability, better network performances.
In order to allow an application to control phone calls over multiple PBXs a vendor must provide a TAPI Driver and System which automatically routes TAPI commands and events over the network of PBXs.
At the time of this writing I am aware only of Wildix implementation of such feature so I will describe how TAPI works over a Network of PBXs in our environment.
The TAPI Driver for Wildix PBXs can be connected to any PBX belonging to a PBX Network (WMS Network). Any number of lines can then be opened in order to monitor one or more users located on the local or remote PBXs.
The abstraction was developed by routing events and requests, which belong to a user / line, over the network of PBXs. A status subscription is generated whenever a line is opened thus reducing to the minimum network requirements and system load, when the line is no more in use the subscription will be removed.
Using Wildix TAPI Driver a Server Application can effectively monitor Users located over multiple PBXs. It can monitor even users roaming over the network over time.
A TAPI Driver and PBX System with multi site control will highly simplify your deployment and increase the usability of the features by the user.