Creatio can be integrated with a number of automatic telephone exchanges (Private Branch Exchange, PBX), which enables users to manage calls directly in Creatio UI. Phone integration functions are available in the form of a CTI (Computer Telephony Integration) panel, as well as the Calls section. Standard CTI panel functions:
- Displaying incoming calls with contact/account identification by the subscriber's phone number.
- One-click calls initiated from Creatio UI.
- Call management (reply, place on hold, end or transfer call).
- Displaying call history for managing connections of calls to various system records and call follow-up.
All calls made or received are stored in the Calls section. In this section, you can view when a call was started, when it ended and how long the call was; as well as the list of system records connected to the call.
By default, Creatio cloud has a function for making calls between system users without using any additional software.
Depending on the integrated phone system and specifics of its API (Application Programming Interface), different architectural mechanisms are used. The API also affects available phone integration functions. For example, the call playback function is not available for all phone systems, the web phone is available when integrating with Webitel, etc. Regardless of the phone integration mechanism being used, the CTI panel interface remains the same for all Creatio users.
There are two types of integration methods: first party and third party integrations.
In a first party integration each user has a separate integration connection. Phone system events are handled as part of that connection.
For a third party integration, a single connection to the prone system server is used for handling phone system events for all users. In a third party integration an intermediate Messaging Service link is used for distributing information streams for all users.
This integration method can be used with a first party phone system API, such as Webitel, Oktell, Finesse. Webitel and Oktell connectors use WebSocket as connection protocol, while the Finesse connector uses long-polling http queries.
The advantage of the first party integration method is that it does not require any additional nodes, such as Messaging Service. Using an integration library, the CTI panel connects directly to the phone system server API from a browser on the user's PC.
For incoming calls the phone server passes the new call start event and call parameters through WebSocket to the client integration library. When receiving a new call command, the library generates the RingStarted event that is passed to the application page.
For incoming calls, client part generates the call start command that is passed through WebSocket to the phone integration server.
This integration method applies to third party phone system API (TAPI, TSAPI, New Infinity protocol, WebSocket Oktell). This integration type requires Messaging Service – a Windows proxy service that works with the phone system adapter library. The Messaging Service is a universal phone system library hoster, such as Asterisk, Avaya, Callway, Ctios, Infinity, Infra, Tapi. When receiving client messages, the Messaging Service automatically connects used Creatio library and initiates connection to phone system. The Messaging Service is essentially a functional wrapper for those phone integration connectors that do not support client integration for interacting with phone functions in browsers (event generation and handling, data transfer). A user's PC conducts two types of communication:
- HTTP connection with Creatio application server for authentication with host on which the Messaging Service is installed;
- WebSocket connection for working directly with phone integration.
For incoming calls the phone system passes the new call start event and call parameters through the adapter library. When receiving a new call command, the Messaging Service generates the RingStarted event that is passed to the client.
For an outgoing calls, the client generates a call start command, which is passed via WebSocket to the Messaging Service, which generates an outgoing call message for the phone system.
All connectors interact with configuration through the CtiModel class. It handles the events received from the connector.
The list of supported class events is provided in table.
Supported events of the CtiModel class
|initialized||Triggered on completion of provider initialization.|
|disconnected||Triggered on provider disconnection.|
|callStarted||Triggered at the start of a new call.|
|callFinished||Triggered after call completion.|
|commutationStarted||Triggered after establishing call connection.|
|callBusy||Triggered on changing call status to "busy" (TAPI only).|
|hold||Triggered after placing call on hold.|
|unhold||Triggered after resuming a call.|
|error||is triggered on errors.|
|lineStateChanged||Triggered after changing available operations for a line or a call.|
|agentStateChanged||Triggered on changing the agent status.|
|activeCallSnapshot||Triggered on updating the list of active calls.|
|callSaved||Triggered after creating or updating a call in the database.|
|rawMessage||Generic provider event. Triggered on any provider event.|
|currentCallChanged||Triggered on changing the main call. For example, primary call ends during a consultation.|
|callCentreStateChanged||Triggered if an agent enters or exits Call center mode.|
|callInfoChanged||Triggered on modifying a call data by database Id.|
|dtmfEntered||Triggered if Dtmf signals were sent to the phone line.|
|webRtcStarted||Triggered on a webRtc session start.|
|webRtcVideoStarted||Triggered on a webRtc video stream session start.|
|webRtcDestroyed||Triggered on a webRtc session end.|