PhoneSystemConnector

since v11.27.0

The extension point allows you to implement call retrieval from different external phone systems.

The interface PhoneSystemConnector cannot be implemented directly. You can choose between the two sub interfaces of PhoneSystemConnector:

  • CallRoutingConnector - provide call related functions of a remote PBX and also event handling to react to specific call events within the novomind iAGENT routing process.
  • AgentDeviceControlConnector - is an interface to control a remote agent device within the novomind iAGENT routing process

Annotation

Please annotate your implementation of either CallRoutingConnector or AgentDeviceControlConnector with the runtime annotation PhoneSystemConnectorPlugin to ensure, that your plugin will be loaded during runtime within the novomind iAGENT routing process and be assigned to any PhoneSystem configured with the name specified by the 'name' parameter of the annotation @PhoneSystemConnectorPlugin.

Plugin classes annotated with the PhoneSystemConnectorPlugin annotation need to define the required annotation parameters.

  1. name: The unique name of the phone system to be implemented by your plugin. It is strongly recommended to use a specific application or vendor id as prefix to avoid conflicts with other app's containing an @PhoneSystemConnectorPlugin with the same name. Please ensure to implement all desired interfaces by your plugin class depending on the requirements. If your plugin provides call routing functionalitiy and also phone device control features please implement both interfaces CallRoutingConnector and AgentDeviceControlConnector by your plugin class.

CallRoutingConnector

The extension point CallRoutingConnector extends the base interface PhoneSystemConnector. This interface must be implemented by your plugin, if the novomind iAGENT routing process is responsible for the routing decison of the calls in the connected PBX. The CallRoutingConnector is initialized with an CallRoutingEventListener. The methods of this listener must be called to inform the novomind iAGENT system about the call state transitions of the calls in the PBX. In addition the CallRoutingConnector has to implement several methods called from the novomind iAGENT system to trigger events in the PBX. In combination these two ways of communication on the one hand maps the calls to the iAGENT state model to integrate into the novomind iAGENT system, and on the other hand allows to manage the calls in the PBX.

Call State Model

The call model in novomind iAGENT differentiates between three types of calls. Each of the type has its own state model which represents the possible states and transitions for the call type.

Queued Call

A queued call is addressed to an IVR or waiting queue. Queued calls are received by the connected PBX and queued in the novomind iAGENT backlog. They can be routed to an agent device manually or automatically e.g. by the novomind iAGENT routing engine. They are visible in the novomind iAGENT call backlog and persisted in the novomind iAGENT database. When a QueuedCall is enqueued the IVR can optionally provide additional information about the caller with a ContactIdentifier that can be applied to the QueuedCallEnqueuedEvent. This information will be used as secondary search criterion for searching existing contacts.

Incoming Call

An incoming call is directly addressed to an agent device, e.g. received consultation calls for a supervised transfer or external calls out of scope of the call center. Thats is why they are not part of the iAGENT call backlog, or persisted in the novomind iAGENT database.

Outgoing Call

An outgoing is initiated by an agent that is logged on in the novomind iAGENT Desk application. An outgoing call can be a consultation call for a supervised transfer or any other call initiated by the agent. Outgoing calls are not listed in the novomind iAGENT call backlog, because they are not relevant for the routing. The information about outgoing calls is persisted in the novomind iAGENT database for reporting purposes.

Call States

Received

In the received state the call is received by the connected PBX. In this state the call is handled by the IVR. The call can be extended with infomration about the subject of the call via input of the customer or external systems. In this state the IVR is the leading system for the call.

Queued

In the queued state the information about the subject of the call is forwarded to the novomind iAGENT system. The novomind iAGENT routing will route the call to the most suitable agent depending on the information and the configured service level. In this state the novomind iAGENT system is the leading system for the call.

Delivered

In this state the call is signaled to the called party or agent device. The called party or agent can answer, decline or just miss the call.

Established

In this state the call is connected to the phone device of the agent and the audio connection between the external party and the agent is established.

Redirected

In this state the call is redirected to a phone device which is not a logged on agent device in the novomind iAGENT system. The call is still connected to the external party and may possibly come back to a logged on agent in the future which is the reason why it is still monitored by the novomind iAGENT system.

Finished

In this state the call is finished. This is the final state of the call's lifecycle and there will be no more following states.

AgentDeviceControlConnector

The extension point AgentDeviceControlConnector extends the base interface PhoneSystemConnector. This variant is useful if additional functionality is needed to control a remote agent phone device within the novomind iAGENT routing process. The AgentDeviceControlConnector is initialized with an AgentDeviceEventListener. The methods of this listener must be called to inform the novomind iAGENT system about phone device state changes. In addition the AgentDeviceControlConnector has to implement several methods called from the novomind iAGENT system like loginAgent, logoutAgent, answer or hangup to control the phone device from inside of the novomind iAGENT application.

Configuration

To provide configuration options for your custom PhoneSystemConnector you can use the extension point PhoneSystemConnectorTabProvider.