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
:
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.
@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.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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
To provide configuration options for your custom PhoneSystemConnector you can use the extension point PhoneSystemConnectorTabProvider.