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 Detail

      • 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