Interface CallRoutingConnector

All Superinterfaces:
PhoneSystemConnector

public interface CallRoutingConnector extends PhoneSystemConnector
The CallRoutingConnector is an interface to provide call related functions of a remote PBX and also event handling by adding event listeners to react to specific call events within the novomind iAGENT routing process. Please annotate your CallRoutingConnector implementation with the PhoneSystemConnectorPlugin annotation.
Since:
11.27
  • Method Details

    • init

      void init(CallRoutingEventListener callRoutingEventListener)
      The init method is called to initialize a CallRoutingConnector The method will be called after a new instance of CallRoutingConnector has been created.
      Parameters:
      callRoutingEventListener - the event listener for this CallRoutingConnector
      Since:
      11.27
    • deliverQueuedCall

      void deliverQueuedCall(DeliverQueuedCallRequest deliverQueuedCallRequest) throws CallNotFoundException, CallOperationException
      Delivers a queued call directly to an agent. This function call should result in an alerting call on an agent device. Please do not implement this method blocking! Any implementation of this method must not perform any long term operations and should return immediately.
      Parameters:
      deliverQueuedCallRequest - provides all information about the queued call to be delivered and the target agent device
      Throws:
      CallNotFoundException - if the specified call does not exist.
      CallOperationException - in case of operation failure or broken connection
      Since:
      11.27
    • dequeueQueuedCall

      void dequeueQueuedCall(DequeueQueuedCallRequest dequeueQueuedCallRequest) throws CallNotFoundException, CallOperationException
      A call may be dequeued e.g. when an agent is not able to complete the customer's issue and therefore wants to take back the customer to the IVR. After a successful dequeuing the agent side of the call is disconnected and the call's state is back to RECEIVED (currently/again handled within the IVR). Please do not implement this method blocking! Any implementation of this method must not perform any long term operations and should return immediately.
      Parameters:
      dequeueQueuedCallRequest - provides all information about the queued call to be dequeued
      Throws:
      CallNotFoundException - if the specified call does not exist.
      CallOperationException - in case of operation failure or broken connection
      Since:
      11.27
    • rerouteQueuedCall

      void rerouteQueuedCall(RerouteQueuedCallRequest rerouteQueuedCallRequest) throws CallNotFoundException, CallOperationException
      A call may be rerouted e.g. if the agent cannot attend the caller, or if the agent would like to make an inquiry call to another agent. The function has to disconnect the call from the agent device and push back the call to the queue. The call will be rerouted to another suitable agent or be held to be delivered again to the same agent later. Please do not implement this method blocking! Any implementation of this method must not perform any long term operations and should return immediately.
      Parameters:
      rerouteQueuedCallRequest - provides all information about the queued call to be rerouted
      Throws:
      CallNotFoundException - if the specified call does not exist.
      CallOperationException - in case of operation failure or broken connection
      Since:
      11.27
    • redirectQueuedCall

      void redirectQueuedCall(RedirectQueuedCallRequest redirectQueuedCallRequest) throws CallNotFoundException, CallOperationException
      A call may be redirected e.g. when a call could not be attended within a long time period and therefore should be redirected to an external target. A call also can be redirected manually by a supervisor. Please do not implement this method blocking! Any implementation of this method must not perform any long term operations and should return immediately.
      Parameters:
      redirectQueuedCallRequest - provides all information about the queued call to be redirected
      Throws:
      CallNotFoundException - if the specified call does not exist.
      CallOperationException - in case of operation failure or broken connection
      Since:
      11.27
    • finishQueuedCall

      void finishQueuedCall(FinishQueuedCallRequest finishQueuedCallRequest) throws CallNotFoundException, CallOperationException
      A call may be finished e.g. when a call could not be attended within a long time period or a technical error has occurred and therefore the call must be finished. A call also can be finished manually by a supervisor. Please do not implement this method blocking! Any implementation of this method must not perform any long term operations and should return immediately.
      Parameters:
      finishQueuedCallRequest - provides all information about the queued call to be finished
      Throws:
      CallNotFoundException - if the specified call does not exist.
      CallOperationException - in case of operation failure or broken connection
      Since:
      11.27
    • getCallState

      Retrieve the state of a queued call
      Parameters:
      queuedCall - the queued call
      Returns:
      the CallState of the queued call
      Throws:
      CallNotFoundException - if the specified call does not exist.
      CallOperationException - in case of operation failure or broken connection.
      Since:
      11.27