Creatio development guide
This documentation is valid for Creatio version 7.14.0. We recommend using the newest version of Creatio documentation.

Oktell

Glossary Item Box

General information

Oktell integration with bpm'online is implemented on the client level using the oktell.js library.  The oktell.js source code is located in the OktellModule configuration schema of the CTIBase package.

The Oktell server communicates with phones and with the end clients (browsers). With this integration method bpm'online does not requires its own WebSocket server. Each client connects via the WebSocket Protocol directly to the Oktell server. The bpm'online application server creates pages and provides data from the application database. There is no direct relationship between bpm'online and Oktell server. Access is not required, so customers process and combine the data of the two systems independently. The Oktell web client and the oktell.js plugin, embedded in other projects, are implemented according to this principle (Fig. 1).

Fig. 1. Oktell integration with bpm'online schema

 

 Oktell.js

Oktell.js is a javascript library for embedding the functionality of the call control in a CRM system. Oktell.js uses the Oktell WebSocket Protocol to connect to the Oktell server. The advantage of this Protocol is the establishing of a permanent asynchronous connection to the server, which enables you to receive events from the server Oktell and execute certain commands.  Because the Oktell WebSocket protocol is quite complicated to implement, the Oktell.js wraps the WebSocket Protocol methods inside itself thus providing simple management functionality.

Voice transmission between subscribers

In a conversation between the oktell and bpm'online operators, voice is transmitted via the Session Initiation Protocol (SIP). This requires that either the VoIP phone or the Softphone operator be installed on your computer (Fig. 1).

Interaction of components

The interaction with the oktell.js library is executed via the OktellCtiProvider class, which is a link between CtiModel and OktellModule that contains the oktell.js code. The OktellCtiProvider class implements the BaseCtiProvider interface class (Fig. 2).

Fig. 2. The components interaction schema in the process of Oktell integration with bpm'online

 

 

Examples of interaction between CtiModel, OktellCtiProvider and OktlellModule are displayed on Fig. 3 and Fig. 4.

Fig. 3. Operator outgoing call to a subscriber: putting a call on hold, putting off hold by a subscriber and finishing the call by the operator.

scr_oktell_events_01.png

Fig. 4. Incoming call of a subscriber 1 to an operator with a consultation call to subscriber 2 with the subsequent connection of the subscriber 1 and subscriber 2 by the operator.

scr_oktell_events_02.png

The list of supported oktell.js class library events is listed in table 1.

Table 1. The list of supported oktell.js class library events

Event Description
connect Successful connection to server event
connectError Connection to server error in the 'connect' method event. Error codes are the same as for the callback function of the 'connect' method
disconnect Server connection closing event. The object describing the reason of the disconnection is passed to the callback function.
statusChange Agent status change event. Two string parameters are passed to the callback function — the new and previous state
ringStart Incoming call start event
ringStop Incoming call stop event
backRingStart Returning call start event
backRingStop Returning call stop event
callStart Outgoing call start event
callStop Call UUID change event
talkStart Conversation start event.
talkStop Conversation stop event.
holdAbonentLeave Caller hold leave event The abonent object is passed to the callback function with information on the caller.
holdAbonentEnter Caller hold enter event The abonent object is passed to the callback function with information on the caller.
holdStateChange Hold status change event. The information on the hold is passed to the hold function.
stateChange Line status change event.
abonentsChange Current abonents list change event
flashstatechanged Hold status change low-level event
userstatechanged User status change low-level event

 

© bpm'online 2002-2019.

Did you find this information useful?

How can we improve it?