Skip to main content
Skip table of contents

Consult Call Case Technical Solution

Pre-condition

Agent A initiated a consult call to Agent B. 

Scenario

  1. Agent A initiates a consult call with Agent B.
  2. On incoming call notifications, Agent B sees Agent-A as Caller ID.  
  3. Upon Agent B's acceptance, AgentDesk generates a CIM Message (intent: CALL_LEG_STARTED, reason: CONSULT).
  4. CCM: On receiving the CALL_LEG_STARTED with the reason CONSULT,
    1. create a channel session based on customerChannelIdentifier(Agent-A Extension) 
    2. the CCM uses the associatedDialogUri to identify the customer channel session.
    3. CCM publishes a CALL_LEG_STARTED event on the conversation topic.

Problem

In the case of CCX and queue consult scenarios, we do not get the associatedDialogUri from CTI, due to which CCM is not able to identify the channel session. CCM cannot link this consult session with the original conversation.

Proposed Solution

  1. Agent-B (Agent Desk) should send the customer ANI instead of Agent's phone number as the customerChannelIdentifier.
  2. CCM identifies the channel session based on the customer's ANI.
  3. CCM publishes the CALL_LEG_STARTED (Consult) event on the conversation-topic in the same channel session (A separate channel session for consult call will not be created).
  4. RE creates a new task for Agent B and calls the Agent Manager's assign-task API.
  5. On call ending, Agent-B (Agent Desk) should send the CIM Message with intent CALL_LEG_ENDED and reason as CONSULT_ENDED to CCM.

Cases

  1. A dropped before B accepted it
  2. A dropped after B accepted it
  3. B never accepted it
  4. B dropped after accepting
  5. Browser-A disconnected
    1. Browser-A was restored, but B didn't join the call
      1. the consult call is still ringing on B
      2. the consult call has ended due to RONA-B
    2. On Browser-A restored, B is already on the call
  6. Browser-B disconnected after receiving the alert
    1. Browser-B restored within x-seconds (RONA interval or similar)
    2. Browser-B didn't restore within x-seconds (RONA interval or similar)
    3. Browser-B was restored after the consult call dropped


Failover ScenariosAgent DeskCCM

After accepting the consult call, Agent B refreshes the browser and the call remains active.

  1. Get the dialog state and agent state from CTI JS.
  2. Get the task list from RE.
  3.  Identify the task for voice on the basis of MRD associated with the Voice platform.
  4. If the dialog state is still active, the agent rejoins the conversation.

-




After accepting the consult call, Agent B refreshes the browser and the call is dropped
  1. Get dialogs and agent state from CTI JS.
  2. Get the task list from RE.
  3.  Identify the active task for voice on the basis of MRD associated with the Voice platform.
  4. If the dialog is null, the  CIM message with the intent CALL_LEG_ENDED is sent to CCM with the reason CONSULT_ENDED
Publish the CALL_LEG_ENDED event.

Browser-A disconnects and restores and the consult call is still ringing on B.

  1. Agent A rejoins the conversation.
  2. The alerting should be shown on Agent B.


-

Browser-A disconnects and after restoring, the consult call has ended due to RONA-B.

  1. Agent A rejoins the conversation.
  2. The alerting will be removed from the Agent B interface.
-

Browser-A disconnects and is restored, and B is already on the call.

Agent A will rejoin the same conversation.

-

Browser-B disconnected after receiving the alert, the call is still ringing.

The alerting will be restored on the agent B interface.

-

Browser-B disconnected after receiving the alert, the call ended due to RONA B.

The alerting will be removed from the agent B interface in case of either RONA or the call is dropped by either Agent.

-

Browser-A disconnects and after restoring,

  • The customer dropped the call.
  • The consult call is still ringing on B, and RONA occurs
  • A CIM message with the intent CALL_LEG_ENDED is sent to CCM and Agent A is unsubscribed from the conversation.
  • The alerting will be removed from the Agent B interface.

Publish CIM_LEG_ENDED event.

Browser-A disconnects and after restoration,

  • The customer dropped the call.
  • The consult call is still ringing on B. If B accepts the call.
  • Agent A will be unsubscribed from the conversation and the conversation will be closed.
  • Once Agent B accepts the consult call, the agent desk will send CALL_LEG_STARTED with reason code CONSULT to ccm.
  • On the CTI level, both agents are on consult calls.
  • CCM will not create a channel session in case of CONSULT and hence no conversation will be created.
  • The CALL_LEG_STARTED and CALL_LEG_ENDED events will not be published.


JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.