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

Webitel

Glossary Item Box

General information

Webitel integration is implemented in the form of separate bpm'online modules. Modules in the integration include:

The WebitelCore package — modules that contain low-level interactions with Webitel using the Verto module and the CTI panel on the bpm'online application page.

The WebitelCollaborations package implements basic interfaces for working with Webitel in bpm'online. The package contains the WebitelCtiProvider module, the WebitelCtiProvider class, Webitel connector, the connection parameters settings page, the lookup to edit Webitel users directly in bpm'online.

Detailed information about Webitel architecture can be found in the documentation.

Interaction of components

The WebitelCtiProvider class (the heir of the Terrasoft.BaseCtiProvider class) implements the required interaction between CtiModel and the Webitel low-level global object (the WebitelCore.WebitelModule.js module) (Fig. 1).

Fig. 1. The components interaction schema in the process of Webitel integration with bpm'online

 

The integration is as follows. If a user has set the system setting of the Webitel integration library, CtiProviderInitializer loads the WebitelCtiProvider module. Next, it calls the init method in WebitelCtiProvider, which carries out the user login in the telephony session (the LogInMsgServer of the MsgUtilService.svc service). If the login was successful, the connect method is invoked, which verifies that you don't have an existing connection (the this.isConnected property is set to false and this.webitel — to empty). After that, the connect method requests the connection settings to Webitel that are stored in the system settings of the webitelConnectionString and webitelWebrtcConnectionString (Fig. 2).

Fig. 2.  Loading the WebitelCtiProvider provider and connecting the CTI panel

scr_webitel_events_01.png

After receiving the system settings, the user settings are received from the [Webitel users] lookup by using the GetUserConnection method of the WUserConnectionService customer service. After receiving the user settings, the WebitelModule and WebitelVerto are loaded if the [Use web phone] checkbox is selected in the user settings. Next, the onConnected method is called that creates the Webitel global object, in which properties are populated with the connection settings. The subscription to Webitel object events occurs and the connect method is invoked, which performs connection via WebSocket, authorization of Webitel and other low-level connection operations. When the onConnect event occurs, the connection is considered successful and the user can work with calls. During the connector operation, WebitelCtiProvider reacts to Webitel object events, processes them, and optionally generates connector events described in the Terrasoft.BaseCtiProvider class. To manage calls, WebitelCtiProvider implements abstract methods of the Terrasoft.BaseCtiProvider class by using the Webitel object methods.  

Examples of CtiPanel, CtiModel and WebitelCtiProvider interaction

Outgoing call to a subscriber: putting a call on hold, taking a call off hold by a subscriber and finishing a call. 

Fig. 3.  Sequence of events during a call

scr_webitel_events_02.png 

Webitel list of ports

  • 871 — the WebSocket port for the Webitel server and receiving events.
  • 5060 and 5080 — signal ports for SIP phones and telephony providers.
  • 5066 — the port for the Web phone and WebRTC signal port.
  • 4004 — the port for receiving call records.

Webitel events

Table 1. WebitelCtiProvider events

Event Description
onNewCall New call start event.
onAcceptCall Accept call event.
onHoldCall Call hold event.
onUnholdCall Call Unhold event.
onDtmfCall Tone dialing event.
onBridgeCall Connection to channel event.
onUuidCall Call UUID change event
onHangupCall Call stop event.
onNewWebRTCCall New WebRTC session event.

 

© bpm'online 2002-2017.

Did you find this information useful?

How can we improve it?