Custom Widget Integration
  • 22 Apr 2024
  • 34 Minutes to read
  • Dark
    Light

Custom Widget Integration

  • Dark
    Light

Article summary

The Tegsoft widget is a component of the Tegsoft interface, that enables users to access certain Tegsoft services by adding this widget to their CRM.

After adding the Tegsoft widget to the CRM, along with many useful features, users will be able to receive inbound and web chat calls, make outbound and campaign calls as agents, track the agents’ states, and so on. 

Besides, if users need to develop advanced widget integration to simplify agents' tasks such as calling a customer, and getting information about the calling customer, then actions and events come into play. Users can set up widgets in their CRM to incorporate various external services and make them work in CRM with Action-Oriented and   Event-Driven integration.

This article covers the comprehensive methods of how to develop Tegsoft Widget integration.

1. Importing Tegsoft Widget into CRM Software

There are various ways to import Tegsoft Widget into CRM software, two of them are detailed below.

1.1.  Embedding Widget as Javascript

Tegsoft provides you with a small snippet of HTML code for Widget. To add script data, go to your site editor and select the page where you want to display the widget. Paste the copied script before the closing </ body> tag in the relevant HTML file. This way you will get a widget on your site.

You can access this HTML code snippet and sample widget test page by customizing the link below.

❗ Please do not forget to replace  YOUR_TEGSOFT_URL in the URL with your server.

❗ Please be aware that the widget script must be placed in the BODY tag to make it work.

 https://YOUR_TEGSOFT_URL/Tobe/forms/tegsoftwidgettest.html

➤ Auto Login for Javascript

The following parameters are available for auto login.

  • session_type

  • usercode

  • clearpassword

  • token

From the above parameters, either the usercode and the clearpassword should be used together or the token should be used alone. (Using the token parameter is a better method for security and stability.)

To generate tokens, please go to APIdocs.

➤ Layout Options for Javascript

The following parameters are available for layout.

  • autoMaximize   If the parameter value is true, the widget window will be maximized automatically when the call is received.

  • style :

              padding The padding property is used to create space around widget content, inside of any defined borders.
              borderRadius  The borderRadius property defines the radius of the widget's corners.
              height The height property sets the height of the widget. The height of the widget does not include padding, borders, or margins! Default value is 100vh. Values should be entered in units (vh, %, or px).
              width The width property sets the width of the widget. The width of the widget does not include padding, borders, or margins! Default value is 100vw. Values should be entered in units (vw, %, or px).

  • minimize  The Minimize button is among the four buttons at the right end of the title bar. This button has a small dash (or minus sign). The Minimize button shrinks the widget window and places it on the taskbar while leaving the widget running.
    By default the Minimize button is hidden. Minimize property is enabled by setting the "enable" parameter value as "true".

  • hideToSide  The Hide/Display to Side button is among the four buttons at the right end of the title bar. This button has a quillemet (or quotation marks). The Hide/Display to Side button hides the widget window to either left/right.
    By default the Hide/Display to Side button is hidden. Hide/Display to Side property is enabled by setting the enable parameter value as true.

  • hideInIcon   The Hide/Display in Icon button is among the four buttons at the right end of the title bar. This button has a small square inside a large square. The Hide/Display in Icon button close or open the widget window and places it on the widget icon while leaving the widget running.
    By default the Hide/Display in Icon button is hidden. Hide/Display in Icon property is enabled by setting the enable parameter value as true.

  • movable  The Move button is among the four buttons at the right end of the title bar. This button has a vertical ellipsis (or tree vertical dots). The Move button places the widget window to either left/right of the screen.
    By default the Move button is hidden. Move property is enabled by setting the enable parameter value as true.  The default position parameter values are left and right.


The example usage of these style parameters are given below.


<script type='text/javascript' >
  window.tegsoft_widget_options = {
	tegsoft_hostname: "Your_Tegsoft_URL",
	layout : {
		autoMaximize: true,
		style : {
			padding : "0px",
			borderRadius : "0px",
			height: "100vh",
			width: "100vw"
		},
		minimize : { 
			enable : true,
		},
		hideToSide : {
			enable : true,
		},
		hideInIcon : {
			enable : true,
		},
		movable : {
			enable : true,
			position : "right",
		},
	},
};
</script>

1.2. Importing Widget with IFrame

You can import the Tegsoft widget in an IFrame with the following URL.

https://YOUR_TEGSOFT_URL/Tobe/forms/TegsoftVue/?fileName=forms/TegsoftTelecom/tegsoftWidget

Once the widget is added to the CRM it will start functioning automatically.

➤ Auto Login for IFrame

The following URL is available for auto login with  Token parameter.

https://TEGSOFT_URL/Tobe/forms/TegsoftVue/?fileName=forms/TegsoftTelecom/tegsoftWidget&sessiontype=agent&token=XXXXXX


The following URL is available for auto login with  Usercode and  Clearpassword parameters.

https://TEGSOFT_URL/Tobe/forms/TegsoftVue/?fileName=forms/TegsoftTelecom/tegsoftWidget&sessiontype=agent&usercode=XXXXXX&clearpassword=XXXXXX

2. Initialization / Login session

Will be updated soon.

3. Events, Actions, and Data Exchange

Events and actions are occurrences that happen in the system, the system reports  to you so that your code can react to them. To react to an event, an event handler is attached to it. This is a code block that runs when the event happens. When such a code block is defined to run in response to an event, it means that an event handler is registered. (Event handlers are sometimes called event listeners.)

Some data will need to be transmitted during events and actions occurring. The payload function is used to transmit these data. In telecommunications, the payload is the essential part of transmitted data.

Use following Syntax to register for receiving events:

 if (window.addEventListener) {
    window.addEventListener("message", onMessage, false);
  } else {
    window.attachEvent("onmessage", onMessage, this);
  }

  function onMessage(payload) {
    if(!payload) {
      return;
    }

    if(payload.type!= "message") {
      return;
    }

    if(!payload.data) {
      return;
    }

    if(payload.data.type != "event") {
      return;
    }

    if(payload.data.type == "agent") {
      // Handle Agent Event
    }
  }


After the above process is completed, the following integration parameter (Login URL) needs to be added by the relevant user account on the Tegsoft server.

clientSideCTI://parentWindowEvent|eventList=all

If the value of the eventList parameter is all, all events are enabled. 

Please check the list of events at the end of the article to give a specific event value.


Use the following Syntax to send actions to the widget:

function sendAction(payload) {
  if (!payload) {
    return;
  }
  if (!document.getElementById("tegsoftWidgetFrame")) {
    return;
  }
  if (!document.getElementById("tegsoftWidgetFrame").contentWindow) {
    return;
  }
  document
    .getElementById("tegsoftWidgetFrame")
    .contentWindow.postMessage(payload, "*");
}

function queryStatus() {
  sendAction({
    type: "action",
    group: "agent",
    name: "queryStatus",
  });
}

3.1. Actions from CRM to Widget

When you need the Widget to perform some actions (like logout, hangup, etc.) from CRM you need to post messages to the widget. In this section, protocol and examples will be described. 

Because the postMessage() method is asynchronous, it returns instantly. Response will be received as event, if needed.


Payload format for actions (CRM → Widget) is given below.

{
  type: "action",
  group: "agent/report/message",
  name: "Action Name"
  data: { // Optional data for the action
  }
}

For sending actions from CRM to the Widget you need to call.

The list of actions and usage examples are given below.

List of Actions 

 logout
 ready
 notReady
 dial
 answer
 mute
 unmute
 hold
 unhold
 hangUp
 sendDTMF
 blindTransfer
 attendedTransfer
 changeActiveLine
 cancelAttendedTransfer
 completeAttendedTransfer
 turnOnCamera
 turnOfCamera
 toggleCamera

➤  User Logout Action 

{
  "type": "action",
  "group": "agent",
  "name": "logout",
}

➤  Click to Call Action

{
    "type": "action",
    "group": "agent",
    "name": "dial",
    "data": {
        "numberToDial": "1234567890"
        }
    }
}

➤  Click to Call with CTI Data Action

{
    "type": "action",
    "group": "agent",
    "name": "dial",
    "data": {
        "numberToDial": "1234567890",
 	"ctiData": { 
		"variables": {
			"sample1": "value1",
			"sample2": "value2",
			"sample3": "value3",
			"CONTID": "sampleCONTID"
			},
		"ctiVariableNames": ["sample1", "sample2"],
		"logDTMF": ["OPTION1: valueOPT1", "OPTION2: valueOPT2"]
		}
    }
}

ℹ️ Custom value according to Tegsoft Database Schema can be given to the variables.

➤  Set CTI Data Action

{
	"type": "action",
	"group": "agent",
	"name": "setCtiData",
	"data": {
	"ctiData": { 
		"variables": {
			"sample1": "value1",
			"sample2": "value2",
			"sample3": "value3",
			"CONTID": "sampleCONTID"
			},
		"ctiVariableNames": ["sample1", "sample2"],
		"logDTMF": ["OPTION1: valueOPT1", "OPTION2: valueOPT2"]
		}
    }
}

➤  Remove CTI Data Action

{
	"type": "action",
	"group": "agent",
	"name": "removeCtiData"
	}

➤  Get CTI Data Action

{
	"type": "action",
	"group": "agent",
	"name": "getCtiData"
	}

➤  Change Agent Status to Ready Action

{
  "type": "action",
  "group": "agent",
  "name": "ready",
}

➤  Change Agent Status to Not Ready with Reason Action

{
 "type": "action",
 "group": "agent",
 "name": "notReady",
 "data": {
   "reason": "CUSTOM_REASON"
 }
}

ℹ️  As the value of reason parameter, default values such as Meeting, Technical Issue, Medical, Back Office Activity, Coaching and Other can be set or not ready reason can be customized according to the needs.


➤  Answer the Call Action

{
 "type": "action",
 "group": "agent",
 "name": "answer"
}

➤  Mute the Microphone Action

{
 "type": "action",
 "group": "agent",
 "name": "mute"
}

➤  Unmute the Microphone Action

{
 "type": "action",
 "group": "agent",
 "name": "unmute"
}

➤  Put the Call on Hold Action

{
 "type": "action",
 "group": "agent",
 "name": "hold"
}

➤  Stop Holding the Call Action

{
 "type": "action",
 "group": "agent",
 "name": "unhold"
}

➤  Hangup the Call Action

{
 "type": "action",
 "group": "agent",
 "name": "hangUp"
}

➤  DTMF Action

{
 "type": "action",
 "group": "agent",
 "name": "sendDTMF",
 "data": {
  "dtmf": "2"
 }
}

➤  Blind Transfer Action

{
 "type": "action",
 "group": "agent",
 "name": "blindTransfer",
 "data": {
  "extension": "1003"
 }
}

➤  Attended Transfer Action

{
 "type": "action",
 "group": "agent",
 "name": "attendedTransfer",
 "data": {
  "extension": "1003"
 }
}

➤  Complete Attended Transfer Action

{
 "type": "action",
 "group": "agent",
 "name": "completeAttendedTransfer"
}

➤  Cancel Attended Transfer Action

{
 "type": "action",
 "group": "agent",
 "name": "cancelAttendedTransfer"
}

➤  Change Active Line Action

{
 "type": "action",
 "group": "agent",
 "name": "changeActiveLine"
}

➤  Turn on Camera Action

{
 "type": "action",
 "group": "agent",
 "name": "turnOnCamera"
}

➤  Turn off Camera Action

{
 "type": "action",
 "group": "agent",
 "name": "turnOfCamera"
}

➤  Toggle Camera Action

{
 "type": "action",
 "group": "agent",
 "name": "toggleCamera"
}

3.2. Events from Widget to CRM

When some events occur (like Hangup, Agent called, et.c) the Widget transmits these events to the parent window which is the CRM to handle with business logic. In this section protocol and examples will be described.

Payload format for events ( Widget  CRM) is given below.

{
  type: "event",
  group: "agent",
  name: "Event Name",
  data: { // Optional data for the event
  }
}

The list of events and usage examples are given below.

List of Events 

All the events listed below are valid for the widget and full desktop unless explicitly explained otherwise.

Agent Status Events

Name of Event

Description / Trigger Reason / Example

OnLogin
(Backend Event)

Triggers when an agent performs a login.

{
    "type": "event",
    "group": "agent",
    "name": "OnLogin",
    "data": {
        "UID": "f267ec3a-ec00-4e32-938e-21788880d45a",
        "EXTEN": "1932"
    }
}

OnNotReady
(Backend Event)

Triggers when an agent changes stage from ready to not ready or just after the login process.

{
    "type": "event",
    "group": "agent",
    "name": "OnNotReady",
    "data": {
        "UID": "f267ec3a-ec00-4e32-938e-21788880d45a",
        "EXTEN": "1932"
    }
}

OnReady
(Backend Event)

Triggers when an agent changes stage from not ready to ready. If the agent is configured to start its session as auto-ready, then OnLogin, OnNotReady, and OnReady events will be triggered just after the login process.

{
    "type": "event",
    "group": "agent",
    "name": "OnReady",
    "data": {
        "UID": "f267ec3a-ec00-4e32-938e-21788880d45a",
        "EXTEN": "1932"
    }
}

displayIdleScreen
(Backend Event)

Triggers when an agent changes stage from busy to idle. This is a general event that means the agent is idle from now on.

{
    "type": "event",
    "group": "agent",
    "name": "displayIdleScreen",
    "data": {
        "UID": "f267ec3a-ec00-4e32-938e-21788880d45a",
        "EXTEN": "1932"
    }
}

The Manual Dialing Process Event Flow

Name of Event

Description / Trigger Reason / Example

OnOutgoingCallInitialized
(Clientside Event)

This is the first event that triggers in the clientside javascript layer during the manual outbound dialing process. That event means a telephony process has been started. 

For a successful call, the possible events are listed below,

  1. OnOutgoingCallInitialized (Clientside Event)

  2. OnOutgoingCallRinging (Clientside Event)

  3. OnDial (Backend Event)

  4. OnOutgoingCallAnswered (Clientside Event) (If the call is answered)

  5. OnAgentConnect (Backend Event)

  6. OnOutgoingCallHangup (Clientside Event) (Check lastStatusCode of PrimarySession for detailed disposition. ie, 200 is answered or 486 is busy. You can access all status codes via the link here.)

  7. OnRemoteComplete (Clientside Event) or OnAgentComplete (Clientside Event)

  8. displayIdleScreen (Backend Event)

{
    "type": "event",
    "group": "agent",
    "name": "OnOutgoingCallInitialized",
    "data": {
        "UID": "f267ec3a-ec00-4e32-938e-21788880d45a",
        "EXTEN": "1932",
        "primarySession": {
            "sessionStatus": "Initial",
            "initializationReason": "dial",
            "sessionOrdinal": 1,
            "sessionStartDate": "2024-04-21T19:42:09.865Z",
            "duration": 0,
            "formattedDuration": "00:00:00",
            "remoteNumber": "02123212088",
            "statusMessage": "message_lastmessage04",
            "isMuted": false,
            "isOnHold": false,
            "isRinging": false,
            "isAnswered": false,
            "holdBeginDate": 0,
            "holdEndDate": 0
        },
        "activeCallProperties": {
            "isCameraOn": true,
            "speakerVolume": 75,
            "isOnHold": false,
            "isMuted": false
        }
    }
}

OnOutgoingCallRinging

(Clientside Event)

During the manual outbound dialing process when the remote party starts ringing this event occurs.

{
    "type": "event",
    "group": "agent",
    "name": "OnOutgoingCallRinging",
    "data": {
        "UID": "f267ec3a-ec00-4e32-938e-21788880d45a",
        "EXTEN": "1932",
        "primarySession": {
            "sessionStatus": "Establishing",
            "initializationReason": "dial",
            "sessionOrdinal": 1,
            "sessionStartDate": "2024-04-21T19:42:09.865Z",
            "duration": 0,
            "formattedDuration": "00:00:00",
            "remoteNumber": "02123212088",
            "statusMessage": "message_lastmessage02",
            "isMuted": false,
            "isOnHold": false,
            "isRinging": true,
            "isAnswered": false,
            "holdBeginDate": 0,
            "holdEndDate": 0
        },
        "activeCallProperties": {
            "callStatusLine1": "Calling ",
            "isInCall": true,
            "isCameraOn": true,
            "speakerVolume": 75,
            "formattedDuration": "00:00:00",
            "isOnHold": false,
            "isMuted": false
        }
    }
}

OnDial

(Backend Event)

After this event agent status becomes busy and can be monitored as outbound state from the dashboard. This is a backend event and will enrich data. You can notice the change on the active call properties object with the fields (direction, channel name, Agent interface details, etc.) populated with data.  

{
    "type": "event",
    "group": "agent",
    "name": "OnDial",
    "data": {
        "UID": "f267ec3a-ec00-4e32-938e-21788880d45a",
        "EXTEN": "1932",
        "primarySession": {
            "sessionStatus": "Established",
            "initializationReason": "dial",
            "sessionOrdinal": 1,
            "sessionStartDate": "2024-04-21T19:42:09.865Z",
            "duration": 0,
            "formattedDuration": "00:00:00",
            "remoteNumber": "02123212088",
            "statusMessage": "message_lastmessage10",
            "isMuted": false,
            "isOnHold": false,
            "isRinging": false,
            "isAnswered": true,
            "answerDate": "2024-04-21T19:42:12.121Z",
            "lastStatusCode": 200,
            "holdBeginDate": 0,
            "holdEndDate": 0
        },
        "activeCallProperties": {
            "DIRECTION": "OUTBOUND",
            "dstUniqueId": "1713728531.570",
            "INTERFACE": "PJSIP/1932",
            "agentUID": "f267ec3a-ec00-4e32-938e-21788880d45a",
            "channelName": "PJSIP/1932-000000b7",
            "callerId": "02123212088",
            "REASON": "DEFAULT",
            "uniqueId": "1713728530.569",
            "CONTID": "078b9a29-b0a1-4218-84b4-3e4461c54ee7",
            "SRCEVENT": "DIALEVENT-2-1713728530.569",
            "isInCall": true,
            "PHOTOURL": "/Tobe/contactImages/078b9a29-b0a1-4218-84b4-3e4461c54ee7.png",
            "CALLID": "1713728530.569",
            "isOnHold": false,
            "isMuted": false
        }
    }
}

OnOutgoingCallAnswered
(Clientside Event)

When the remote party answers the call and the conversation starts this clientside event is triggered. As this event is after a backend event, the data on active call properties is still full.

{
    "type": "event",
    "group": "agent",
    "name": "OnOutgoingCallAnswered",
    "data": {
        "UID": "f267ec3a-ec00-4e32-938e-21788880d45a",
        "EXTEN": "1932",
        "primarySession": {
            "sessionStatus": "Established",
            "initializationReason": "dial",
            "sessionOrdinal": 1,
            "sessionStartDate": "2024-04-21T19:42:09.865Z",
            "duration": 0,
            "formattedDuration": "00:00:00",
            "remoteNumber": "02123212088",
            "statusMessage": "message_lastmessage10",
            "isMuted": false,
            "isOnHold": false,
            "isRinging": false,
            "isAnswered": true,
            "answerDate": "2024-04-21T19:42:12.121Z",
            "lastStatusCode": 200,
            "holdBeginDate": 0,
            "holdEndDate": 0
        },
        "activeCallProperties": {
            "callStatusLine1": "Ringing ",
            "callStatusLine2": "00:00:01",
            "isInCall": true,
            "answered": true,
            "isCameraOn": true,
            "speakerVolume": 75,
            "formattedDuration": "00:00:01",
            "isOnHold": false,
            "isMuted": false
        }
    }
}

OnAgentConnect
(Backend Event)

Whenever we have a successful connect event, like OnOutgoingCallAnswered, OnIncomingCallAnswered, etc. you will notice an agent connect event will be triggered via the backend. This will change the agent state on the dashboard from ringing to speaking.

{
    "type": "event",
    "group": "agent",
    "name": "OnAgentConnect",
    "data": {
        "UID": "f267ec3a-ec00-4e32-938e-21788880d45a",
        "EXTEN": "1932",
        "primarySession": {
            "sessionStatus": "Established",
            "initializationReason": "dial",
            "sessionOrdinal": 1,
            "sessionStartDate": "2024-04-21T19:42:09.865Z",
            "duration": 0,
            "formattedDuration": "00:00:00",
            "remoteNumber": "02123212088",
            "statusMessage": "message_lastmessage10",
            "isMuted": false,
            "isOnHold": false,
            "isRinging": false,
            "isAnswered": true,
            "answerDate": "2024-04-21T19:42:12.121Z",
            "lastStatusCode": 200,
            "holdBeginDate": 0,
            "holdEndDate": 0
        },
        "activeCallProperties": {
            "DIRECTION": "OUTBOUND",
            "dstUniqueId": "1713728531.570",
            "INTERFACE": "PJSIP/1932",
            "agentUID": "f267ec3a-ec00-4e32-938e-21788880d45a",
            "channelName": "PJSIP/1932-000000b7",
            "callerId": "02123212088",
            "REASON": "DEFAULT",
            "uniqueId": "1713728530.569",
            "CONTID": "078b9a29-b0a1-4218-84b4-3e4461c54ee7",
            "SRCEVENT": "DIALEVENT-2-1713728530.569",
            "isInCall": true,
            "PHOTOURL": "/Tobe/contactImages/078b9a29-b0a1-4218-84b4-3e4461c54ee7.png",
            "CALLID": "1713728530.569",
            "answered": true,
            "isOnHold": false,
            "isMuted": false
        }
    }
}

OnOutgoingCallHangup
(Clientside Event)

Triggers when the agent or remote party hangs up an active outbound call. You can check the primarySession endingSide field to understand who hung up the call. Local and remote values will identify the agent and the other party.  This is a client-side event as a starting process of a hangup. Check lastStatusCode of PrimarySession for detailed disposition. ie, 200 is answered or 486 is busy. You can access all status codes via the link here.

{
    "type": "event",
    "group": "agent",
    "name": "OnOutgoingCallHangup",
    "data": {
        "UID": "f267ec3a-ec00-4e32-938e-21788880d45a",
        "EXTEN": "1932",
        "primarySession": {
            "sessionStatus": "Terminated",
            "initializationReason": "dial",
            "sessionOrdinal": 1,
            "sessionStartDate": "2024-04-21T19:42:09.865Z",
            "duration": 5,
            "formattedDuration": "00:00:05",
            "remoteNumber": "02123212088",
            "statusMessage": "message_lastmessage10",
            "isMuted": false,
            "isOnHold": false,
            "isRinging": false,
            "isAnswered": true,
            "answerDate": "2024-04-21T19:42:12.121Z",
            "endDate": "2024-04-21T19:42:17.408Z",
            "lastStatusCode": 200,
            "holdBeginDate": 0,
            "holdEndDate": 0,
            "endingSide": "local"
        },
        "activeCallProperties": {
            "DIRECTION": "OUTBOUND",
            "dstUniqueId": "1713728531.570",
            "INTERFACE": "PJSIP/1932",
            "agentUID": "f267ec3a-ec00-4e32-938e-21788880d45a",
            "channelName": "PJSIP/1932-000000b7",
            "callerId": "02123212088",
            "REASON": "DEFAULT",
            "uniqueId": "1713728530.569",
            "CONTID": "078b9a29-b0a1-4218-84b4-3e4461c54ee7",
            "SRCEVENT": "DIALEVENT-2-1713728530.569",
            "callStatusLine1": "Speaking...",
            "callStatusLine2": "00:00:05",
            "isInCall": true,
            "isAgentHangup": true,
            "PHOTOURL": "/Tobe/contactImages/078b9a29-b0a1-4218-84b4-3e4461c54ee7.png",
            "CALLID": "1713728530.569",
            "answered": true,
            "isCameraOn": true,
            "formattedDuration": "00:00:05",
            "isAnswered": true,
            "isOnHold": false,
            "isMuted": false
        },
        "cdrData": {
            "callID": "1713728530.569",
            "started_at": "2024-04-21T19:42:09.865Z",
            "answered_at": "2024-04-21T19:42:12.121Z",
            "ended_at": "2024-04-21T19:42:17.408Z",
            "end_type": "COMPLETECALLER",
            "disposition": "ANSWERED",
            "call_duration": 5,
            "ring_time": 2,
            "called_number": "02123212088",
            "caller_number": "1932"
        }
    }
}

OnRemoteComplete
(Clientside Event)

This event is triggered when the customer hangs up an inbound or an outbound call.

{
    "type": "event",
    "group": "agent",
    "name": "OnRemoteComplete",
    "data": {
        "UID": "f267ec3a-ec00-4e32-938e-21788880d45a",
        "EXTEN": "1932",
        "primarySession": {
            "sessionStatus": "Terminated",
            "initializationReason": "incoming",
            "sessionOrdinal": 1,
            "sessionStartDate": "2024-04-21T21:18:42.596Z",
            "duration": 3,
            "formattedDuration": "00:00:03",
            "remoteNumber": "02123212088",
            "statusMessage": "message_lastmessage10",
            "isMuted": false,
            "isOnHold": false,
            "isRinging": false,
            "isAnswered": true,
            "remoteDisplayName": "John Doe",
            "answerDate": "2024-04-21T21:18:45.073Z",
            "endDate": "2024-04-21T21:18:49.041Z",
            "holdBeginDate": 0,
            "holdEndDate": 0,
            "endingSide": "remote"
        },
        "activeCallProperties": {
            "callerIdName": "John Doe",
            "callerId": "02123212088",
            "SKILL": "7000",
            "DIRECTION": "INBOUND",
            "SKILLNAME": "VIP Customers",
            "dstUniqueId": "1713734322.594",
            "INTERFACE": "PJSIP/1932",
            "agentUID": "f267ec3a-ec00-4e32-938e-21788880d45a",
            "channelName": "PJSIP/1932-000000c4",
            "REASON": "DEFAULT",
            "uniqueId": "1713734315.593",
            "CONTID": "8c6d3bb9-389b-4a13-ae05-43f05662ddf0",
            "SRCEVENT": "AgentCalled-1713734315.593",
            "callStatusLine1": "Speaking...",
            "callStatusLine2": "00:00:03",
            "isInCall": true,
            "PHOTOURL": "/Tobe/contactImages/8c6d3bb9-389b-4a13-ae05-43f05662ddf0.png",
            "CALLID": "1713734315.593",
            "answered": true,
            "isCameraOn": true,
            "formattedDuration": "00:00:03",
            "isAnswered": true,
            "isOnHold": false,
            "isMuted": false
        },
        "ACW": "2"
    }
}

OnAgentComplete
(Clientside Event)

This event is triggered when the agent hangs up an inbound or an outbound call.

{
    "type": "event",
    "group": "agent",
    "name": "OnAgentComplete",
    "data": {
        "UID": "f267ec3a-ec00-4e32-938e-21788880d45a",
        "EXTEN": "1932",
        "primarySession": {
            "sessionStatus": "Terminated",
            "initializationReason": "incoming",
            "sessionOrdinal": 1,
            "sessionStartDate": "2024-04-21T21:22:29.515Z",
            "duration": 1,
            "formattedDuration": "00:00:01",
            "remoteNumber": "02123212088",
            "statusMessage": "message_lastmessage10",
            "isMuted": false,
            "isOnHold": false,
            "isRinging": false,
            "isAnswered": true,
            "remoteDisplayName": "John Doe",
            "answerDate": "2024-04-21T21:22:32.081Z",
            "endDate": "2024-04-21T21:22:33.378Z",
            "holdBeginDate": 0,
            "holdEndDate": 0,
            "endingSide": "local"
        },
        "activeCallProperties": {
            "callerId": "02123212088",
            "callerIdName": "John Doe",
            "SKILL": "7000",
            "DIRECTION": "INBOUND",
            "SKILLNAME": "VIP Customers",
            "dstUniqueId": "1713734549.598",
            "INTERFACE": "PJSIP/1932",
            "agentUID": "f267ec3a-ec00-4e32-938e-21788880d45a",
            "channelName": "PJSIP/1932-000000c6",
            "REASON": "DEFAULT",
            "uniqueId": "1713734544.597",
            "CONTID": "8c6d3bb9-389b-4a13-ae05-43f05662ddf0",
            "SRCEVENT": "AgentCalled-1713734544.597",
            "callStatusLine1": "Speaking...",
            "isInCall": true,
            "isAgentHangup": true,
            "PHOTOURL": "/Tobe/contactImages/8c6d3bb9-389b-4a13-ae05-43f05662ddf0.png",
            "CALLID": "1713734544.597",
            "answered": true,
            "isCameraOn": true,
            "formattedDuration": "00:00:00",
            "isAnswered": true,
            "isOnHold": false,
            "isMuted": false
        },
        "ACW": "2"
    }
}

OnInboundAgentComplete
(Backend Event)

This event is triggered at the end of the dialing process.

{
    "type": "event",
    "group": "agent",
    "name": "OnInboundAgentComplete",
    "data": {
        "UID": "f267ec3a-ec00-4e32-938e-21788880d45a",
        "EXTEN": "1932"
    }
}

The Inbound Process Event Flow

OnIncomingCallInitialized
(Clientside Event)

This is the first event that triggers in the clientside javascript layer during an incoming call. Incoming calls can be Inbound, Internal, or outbound campaign call. At this very beginning stage, there is not that much data. Following the first backend event, all the information will be carried out through all other events. 

For a successful incoming call, the possible events are listed below,

  1. OnIncomingCallInitialized (Clientside Event)

  2. OnAgentCalled (Backend Event)

  3. OnIncomingCallRinging (Clientside Event)

  4. OnIncomingCallAnswered (Clientside Event) (If the call is answered)

  5. OnAgentConnect (Backend Event)

  6. OnIncomingCallHangup (Clientside Event) (Check lastStatusCode of PrimarySession for detailed disposition. ie, 200 is answered or 486 is busy. You can access all status codes via the link here.)

  7. OnAgentRingNoAnswer (Backend Event) (If the call is not answered)

  8. OnInboundAgentComplete (Backend Event)

  9. displayIdleScreen (Backend Event)

{
    "type": "event",
    "group": "agent",
    "name": "OnIncomingCallInitialized",
    "data": {
        "UID": "f267ec3a-ec00-4e32-938e-21788880d45a",
        "EXTEN": "1932",
        "primarySession": {
            "sessionStatus": "Establishing",
            "initializationReason": "incoming",
            "sessionOrdinal": 1,
            "sessionStartDate": "2024-04-21T19:51:32.361Z",
            "duration": 0,
            "formattedDuration": "00:00:00",
            "remoteNumber": "02123212088",
            "statusMessage": "message_lastmessage02",
            "isMuted": false,
            "isOnHold": false,
            "isRinging": true,
            "isAnswered": false,
            "remoteDisplayName": "John Doe",
            "holdBeginDate": 0,
            "holdEndDate": 0
        },
        "activeCallProperties": {
            "incomingCallModalVisible": true,
            "callerId": "02123212088",
            "callerIdName": "John Doe",
            "isOnHold": false,
            "isMuted": false
        }
    }
}

OnAgentCalled
(Backend Event)

When an agent receives an inbound skill call this event triggers. This is a backend event so it carries data related to the session. Those details can be accessed via activeCallProperties.

{
    "type": "event",
    "group": "agent",
    "name": "OnAgentCalled",
    "data": {
        "UID": "f267ec3a-ec00-4e32-938e-21788880d45a",
        "EXTEN": "1932",
        "primarySession": {
            "sessionStatus": "Establishing",
            "initializationReason": "incoming",
            "sessionOrdinal": 1,
            "sessionStartDate": "2024-04-21T19:51:32.361Z",
            "duration": 0,
            "formattedDuration": "00:00:00",
            "remoteNumber": "02123212088",
            "statusMessage": "message_lastmessage02",
            "isMuted": false,
            "isOnHold": false,
            "isRinging": true,
            "isAnswered": false,
            "remoteDisplayName": "John Doe",
            "holdBeginDate": 0,
            "holdEndDate": 0
        },
        "activeCallProperties": {
            "incomingCallModalVisible": true,
            "callerId": "02123212088",
            "callerIdName": "John Doe",
            "SKILL": "7000",
            "DIRECTION": "INBOUND",
            "SKILLNAME": "VIP Customers",
            "dstUniqueId": "1713729092.576",
            "INTERFACE": "PJSIP/1932",
            "agentUID": "f267ec3a-ec00-4e32-938e-21788880d45a",
            "channelName": "PJSIP/1932-000000bb",
            "REASON": "DEFAULT",
            "uniqueId": "1713729084.575",
            "CONTID": "8c6d3bb9-389b-4a13-ae05-43f05662ddf0",
            "SRCEVENT": "AgentCalled-1713729084.575",
            "isInCall": true,
            "PHOTOURL": "/Tobe/contactImages/8c6d3bb9-389b-4a13-ae05-43f05662ddf0.png",
            "CALLID": "1713729084.575",
            "isOnHold": false,
            "isMuted": false
        },
        "ACW": "2"
    }
}

OnIncomingCallRinging
(Clientside Event)

When an incoming call is offered to the agent and the agent's voice interface (extension) starts ringing this event occurs. This is a staging event, so even if the agent interface is configured for auto-answer this event will be triggered.

{
    "type": "event",
    "group": "agent",
    "name": "OnIncomingCallRinging",
    "data": {
        "UID": "f267ec3a-ec00-4e32-938e-21788880d45a",
        "EXTEN": "1932",
        "primarySession": {
            "sessionStatus": "Establishing",
            "initializationReason": "incoming",
            "sessionOrdinal": 1,
            "sessionStartDate": "2024-04-21T19:51:32.361Z",
            "duration": 7,
            "formattedDuration": "00:00:07",
            "remoteNumber": "02123212088",
            "statusMessage": "message_lastmessage02",
            "isMuted": false,
            "isOnHold": false,
            "isRinging": true,
            "isAnswered": false,
            "remoteDisplayName": "John Doe",
            "holdBeginDate": 0,
            "holdEndDate": 0
        },
        "activeCallProperties": {
            "incomingCallModalVisible": true,
            "callerId": "02123212088",
            "callerIdName": "John Doe",
            "SKILL": "7000",
            "DIRECTION": "INBOUND",
            "SKILLNAME": "VIP Customers",
            "dstUniqueId": "1713729092.576",
            "INTERFACE": "PJSIP/1932",
            "agentUID": "f267ec3a-ec00-4e32-938e-21788880d45a",
            "channelName": "PJSIP/1932-000000bb",
            "REASON": "DEFAULT",
            "uniqueId": "1713729084.575",
            "CONTID": "8c6d3bb9-389b-4a13-ae05-43f05662ddf0",
            "SRCEVENT": "AgentCalled-1713729084.575",
            "callStatusLine1": "Ringing ",
            "callStatusLine2": "00:00:07",
            "isInCall": true,
            "PHOTOURL": "/Tobe/contactImages/8c6d3bb9-389b-4a13-ae05-43f05662ddf0.png",
            "CALLID": "1713729084.575",
            "isCameraOn": true,
            "formattedDuration": "00:00:07",
            "isOnHold": false,
            "isMuted": false
        },
        "ACW": "2"
    }
}

OnIncomingCallAnswered
(Clientside Event)

When the agent answers the call and the conversation starts this clientside event is triggered. As this event is after a backend event, the data on active call properties is still full.

{
    "type": "event",
    "group": "agent",
    "name": "OnIncomingCallAnswered",
    "data": {
        "UID": "f267ec3a-ec00-4e32-938e-21788880d45a",
        "EXTEN": "1932",
        "primarySession": {
            "sessionStatus": "Establishing",
            "initializationReason": "incoming",
            "sessionOrdinal": 1,
            "sessionStartDate": "2024-04-21T19:51:32.361Z",
            "duration": 7,
            "formattedDuration": "00:00:07",
            "remoteNumber": "02123212088",
            "statusMessage": "message_lastmessage02",
            "isMuted": false,
            "isOnHold": false,
            "isRinging": true,
            "isAnswered": false,
            "remoteDisplayName": "John Doe",
            "holdBeginDate": 0,
            "holdEndDate": 0
        },
        "activeCallProperties": {
            "incomingCallModalVisible": true,
            "callerId": "02123212088",
            "callerIdName": "John Doe",
            "SKILL": "7000",
            "DIRECTION": "INBOUND",
            "SKILLNAME": "VIP Customers",
            "dstUniqueId": "1713729092.576",
            "INTERFACE": "PJSIP/1932",
            "agentUID": "f267ec3a-ec00-4e32-938e-21788880d45a",
            "channelName": "PJSIP/1932-000000bb",
            "REASON": "DEFAULT",
            "uniqueId": "1713729084.575",
            "CONTID": "8c6d3bb9-389b-4a13-ae05-43f05662ddf0",
            "SRCEVENT": "AgentCalled-1713729084.575",
            "callStatusLine1": "Ringing ",
            "callStatusLine2": "00:00:07",
            "isInCall": true,
            "PHOTOURL": "/Tobe/contactImages/8c6d3bb9-389b-4a13-ae05-43f05662ddf0.png",
            "CALLID": "1713729084.575",
            "isCameraOn": true,
            "formattedDuration": "00:00:07",
            "isOnHold": false,
            "isMuted": false
        },
        "ACW": "2"
    }
}

OnAgentConnect
(Backend Event)

Whenever we have a successful connect event, like OnOutgoingCallAnswered, OnIncomingCallAnswered, etc. you will notice an agent connect event will be triggered via the backend. This will change the agent state on the dashboard from ringing to speaking.

{
    "type": "event",
    "group": "agent",
    "name": "OnAgentConnect",
    "data": {
        "UID": "f267ec3a-ec00-4e32-938e-21788880d45a",
        "EXTEN": "1932",
        "primarySession": {
            "sessionStatus": "Established",
            "initializationReason": "incoming",
            "sessionOrdinal": 1,
            "sessionStartDate": "2024-04-21T19:51:32.361Z",
            "duration": 0,
            "formattedDuration": "00:00:00",
            "remoteNumber": "02123212088",
            "statusMessage": "message_lastmessage10",
            "isMuted": false,
            "isOnHold": false,
            "isRinging": false,
            "isAnswered": true,
            "remoteDisplayName": "John Doe",
            "answerDate": "2024-04-21T19:51:40.735Z",
            "lastStatusCode": 200,
            "holdBeginDate": 0,
            "holdEndDate": 0
        },
        "activeCallProperties": {
            "callerId": "02123212088",
            "callerIdName": "John Doe",
            "SKILL": "7000",
            "DIRECTION": "INBOUND",
            "SKILLNAME": "VIP Customers",
            "dstUniqueId": "1713729092.576",
            "INTERFACE": "PJSIP/1932",
            "agentUID": "f267ec3a-ec00-4e32-938e-21788880d45a",
            "channelName": "PJSIP/1932-000000bb",
            "REASON": "DEFAULT",
            "uniqueId": "1713729084.575",
            "CONTID": "8c6d3bb9-389b-4a13-ae05-43f05662ddf0",
            "SRCEVENT": "AgentCalled-1713729084.575",
            "callStatusLine1": "Ringing ",
            "callStatusLine2": "00:00:08",
            "isInCall": true,
            "PHOTOURL": "/Tobe/contactImages/8c6d3bb9-389b-4a13-ae05-43f05662ddf0.png",
            "CALLID": "1713729084.575",
            "answered": true,
            "isCameraOn": true,
            "formattedDuration": "00:00:08",
            "isOnHold": false,
            "isMuted": false
        },
        "ACW": "2"
    }
}

OnIncomingCallHangup
(Clientside Event)

Triggers when the agent or remote party hangs up an active incoming call. You can check the primarySession endingSide field to understand who hung up the call. Local and remote values will identify the agent and the other party.  This is a client-side event as a starting process of a hangup. Check lastStatusCode of PrimarySession for detailed disposition. ie, 200 is answered or 486 is busy. You can access all status codes via the link here.

{
    "type": "event",
    "group": "agent",
    "name": "OnIncomingCallHangup",
    "data": {
        "UID": "f267ec3a-ec00-4e32-938e-21788880d45a",
        "EXTEN": "1932",
        "primarySession": {
            "sessionStatus": "Terminated",
            "initializationReason": "incoming",
            "sessionOrdinal": 1,
            "sessionStartDate": "2024-04-21T19:51:32.361Z",
            "duration": 14,
            "formattedDuration": "00:00:14",
            "remoteNumber": "02123212088",
            "statusMessage": "message_lastmessage10",
            "isMuted": false,
            "isOnHold": false,
            "isRinging": false,
            "isAnswered": true,
            "remoteDisplayName": "John Doe",
            "answerDate": "2024-04-21T19:51:40.735Z",
            "endDate": "2024-04-21T19:51:55.281Z",
            "lastStatusCode": 200,
            "holdBeginDate": 0,
            "holdEndDate": 0,
            "endingSide": "remote"
        },
        "activeCallProperties": {
            "callerId": "02123212088",
            "callerIdName": "John Doe",
            "SKILL": "7000",
            "DIRECTION": "INBOUND",
            "SKILLNAME": "VIP Customers",
            "dstUniqueId": "1713729092.576",
            "INTERFACE": "PJSIP/1932",
            "agentUID": "f267ec3a-ec00-4e32-938e-21788880d45a",
            "channelName": "PJSIP/1932-000000bb",
            "REASON": "DEFAULT",
            "uniqueId": "1713729084.575",
            "CONTID": "8c6d3bb9-389b-4a13-ae05-43f05662ddf0",
            "SRCEVENT": "AgentCalled-1713729084.575",
            "callStatusLine1": "Speaking...",
            "callStatusLine2": "00:00:13",
            "isInCall": true,
            "PHOTOURL": "/Tobe/contactImages/8c6d3bb9-389b-4a13-ae05-43f05662ddf0.png",
            "CALLID": "1713729084.575",
            "answered": true,
            "isCameraOn": true,
            "formattedDuration": "00:00:13",
            "isAnswered": true,
            "isOnHold": false,
            "isMuted": false
        },
        "ACW": "2",
        "cdrData": {
            "callID": "1713729084.575",
            "started_at": "2024-04-21T19:51:32.361Z",
            "answered_at": "2024-04-21T19:51:40.735Z",
            "ended_at": "2024-04-21T19:51:55.281Z",
            "end_type": "COMPLETECALLER",
            "disposition": "ANSWERED",
            "call_duration": 14,
            "ring_time": 8,
            "called_number": "1932",
            "caller_number": "02123212088"
        }
    }
}

OnAgentRingNoAnswer
(Backend Event)

Triggers when an agent misses an inbound call.

{
    "type": "event",
    "group": "agent",
    "name": "OnAgentRingNoAnswer",
    "data": {
        "UID": "f267ec3a-ec00-4e32-938e-21788880d45a",
        "EXTEN": "1932",
        "ACW": "2"
    }
}

OnRemoteComplete
(Clientside Event)

This event is triggered when the customer hangs up an inbound or an outbound call.

{
    "type": "event",
    "group": "agent",
    "name": "OnRemoteComplete",
    "data": {
        "UID": "f267ec3a-ec00-4e32-938e-21788880d45a",
        "EXTEN": "1932",
        "primarySession": {
            "sessionStatus": "Terminated",
            "initializationReason": "incoming",
            "sessionOrdinal": 1,
            "sessionStartDate": "2024-04-21T21:18:42.596Z",
            "duration": 3,
            "formattedDuration": "00:00:03",
            "remoteNumber": "02123212088",
            "statusMessage": "message_lastmessage10",
            "isMuted": false,
            "isOnHold": false,
            "isRinging": false,
            "isAnswered": true,
            "remoteDisplayName": "John Doe",
            "answerDate": "2024-04-21T21:18:45.073Z",
            "endDate": "2024-04-21T21:18:49.041Z",
            "holdBeginDate": 0,
            "holdEndDate": 0,
            "endingSide": "remote"
        },
        "activeCallProperties": {
            "callerIdName": "John Doe",
            "callerId": "02123212088",
            "SKILL": "7000",
            "DIRECTION": "INBOUND",
            "SKILLNAME": "VIP Customers",
            "dstUniqueId": "1713734322.594",
            "INTERFACE": "PJSIP/1932",
            "agentUID": "f267ec3a-ec00-4e32-938e-21788880d45a",
            "channelName": "PJSIP/1932-000000c4",
            "REASON": "DEFAULT",
            "uniqueId": "1713734315.593",
            "CONTID": "8c6d3bb9-389b-4a13-ae05-43f05662ddf0",
            "SRCEVENT": "AgentCalled-1713734315.593",
            "callStatusLine1": "Speaking...",
            "callStatusLine2": "00:00:03",
            "isInCall": true,
            "PHOTOURL": "/Tobe/contactImages/8c6d3bb9-389b-4a13-ae05-43f05662ddf0.png",
            "CALLID": "1713734315.593",
            "answered": true,
            "isCameraOn": true,
            "formattedDuration": "00:00:03",
            "isAnswered": true,
            "isOnHold": false,
            "isMuted": false
        },
        "ACW": "2"
    }
}

OnAgentComplete
(Clientside Event)

This event is triggered when the agent hangs up an inbound or an outbound call.

{
    "type": "event",
    "group": "agent",
    "name": "OnAgentComplete",
    "data": {
        "UID": "f267ec3a-ec00-4e32-938e-21788880d45a",
        "EXTEN": "1932",
        "primarySession": {
            "sessionStatus": "Terminated",
            "initializationReason": "incoming",
            "sessionOrdinal": 1,
            "sessionStartDate": "2024-04-21T21:22:29.515Z",
            "duration": 1,
            "formattedDuration": "00:00:01",
            "remoteNumber": "02123212088",
            "statusMessage": "message_lastmessage10",
            "isMuted": false,
            "isOnHold": false,
            "isRinging": false,
            "isAnswered": true,
            "remoteDisplayName": "John Doe",
            "answerDate": "2024-04-21T21:22:32.081Z",
            "endDate": "2024-04-21T21:22:33.378Z",
            "holdBeginDate": 0,
            "holdEndDate": 0,
            "endingSide": "local"
        },
        "activeCallProperties": {
            "callerId": "02123212088",
            "callerIdName": "John Doe",
            "SKILL": "7000",
            "DIRECTION": "INBOUND",
            "SKILLNAME": "VIP Customers",
            "dstUniqueId": "1713734549.598",
            "INTERFACE": "PJSIP/1932",
            "agentUID": "f267ec3a-ec00-4e32-938e-21788880d45a",
            "channelName": "PJSIP/1932-000000c6",
            "REASON": "DEFAULT",
            "uniqueId": "1713734544.597",
            "CONTID": "8c6d3bb9-389b-4a13-ae05-43f05662ddf0",
            "SRCEVENT": "AgentCalled-1713734544.597",
            "callStatusLine1": "Speaking...",
            "isInCall": true,
            "isAgentHangup": true,
            "PHOTOURL": "/Tobe/contactImages/8c6d3bb9-389b-4a13-ae05-43f05662ddf0.png",
            "CALLID": "1713734544.597",
            "answered": true,
            "isCameraOn": true,
            "formattedDuration": "00:00:00",
            "isAnswered": true,
            "isOnHold": false,
            "isMuted": false
        },
        "ACW": "2"
    }
}

Call Control Events

OnHold
(Clientside Event)

Triggers when an agent holds the active call. Holding a call is not allowed before 10 seconds. If a call is in a hold state it is automatically muted.

{
    "type": "event",
    "group": "agent",
    "name": "OnHold",
    "data": {
        "UID": "f267ec3a-ec00-4e32-938e-21788880d45a",
        "EXTEN": "1932",
        "primarySession": {
            "sessionStatus": "Established",
            "initializationReason": "incoming",
            "sessionOrdinal": 1,
            "sessionStartDate": "2024-04-21T22:16:34.284Z",
            "duration": 23,
            "formattedDuration": "00:00:23",
            "remoteNumber": "02123212088",
            "statusMessage": "Hold",
            "isMuted": true,
            "isOnHold": true,
            "isRinging": false,
            "isAnswered": true,
            "remoteDisplayName": "John Doe",
            "answerDate": "2024-04-21T22:16:37.850Z",
            "lastStatusCode": 200,
            "holdBeginDate": 1713737817652,
            "holdEndDate": 0,
            "holdDuration": 3
        },
        "activeCallProperties": {
            "callerIdName": "John Doe",
            "callerId": "02123212088",
            "SKILL": "7000",
            "DIRECTION": "INBOUND",
            "SKILLNAME": "VIP Customers",
            "dstUniqueId": "1713737794.628",
            "INTERFACE": "PJSIP/1932",
            "agentUID": "f267ec3a-ec00-4e32-938e-21788880d45a",
            "channelName": "PJSIP/1932-000000d5",
            "REASON": "DEFAULT",
            "uniqueId": "1713737787.627",
            "CONTID": "8c6d3bb9-389b-4a13-ae05-43f05662ddf0",
            "SRCEVENT": "AgentCalled-1713737787.627",
            "callStatusLine1": "Muted ",
            "callStatusLine2": "00:00:23",
            "isInCall": true,
            "PHOTOURL": "/Tobe/contactImages/8c6d3bb9-389b-4a13-ae05-43f05662ddf0.png",
            "CALLID": "1713737787.627",
            "answered": true,
            "isMuted": true,
            "isCameraOn": true,
            "formattedDuration": "00:00:23",
            "isAnswered": true,
            "isOnHold": true
        },
        "ACW": "2"
    }
}

OnUnhold
(Clientside Event)

Triggers when an agent unholds the active call. If a call is unholded it is automatically unmuted.

{
    "type": "event",
    "group": "agent",
    "name": "OnUnhold",
    "data": {
        "UID": "f267ec3a-ec00-4e32-938e-21788880d45a",
        "EXTEN": "1932",
        "primarySession": {
            "sessionStatus": "Established",
            "initializationReason": "incoming",
            "sessionOrdinal": 1,
            "sessionStartDate": "2024-04-21T22:16:34.284Z",
            "duration": 188,
            "formattedDuration": "00:03:08",
            "remoteNumber": "02123212088",
            "statusMessage": "message_lastmessage10",
            "isMuted": false,
            "isOnHold": false,
            "isRinging": false,
            "isAnswered": true,
            "remoteDisplayName": "John Doe",
            "answerDate": "2024-04-21T22:16:37.850Z",
            "lastStatusCode": 200,
            "holdBeginDate": 1713737817652,
            "holdEndDate": 1713737986564,
            "holdDuration": 168,
            "totalHoldDuration": 168
        },
        "activeCallProperties": {
            "callerIdName": "John Doe",
            "callerId": "02123212088",
            "SKILL": "7000",
            "DIRECTION": "INBOUND",
            "SKILLNAME": "VIP Customers",
            "dstUniqueId": "1713737794.628",
            "INTERFACE": "PJSIP/1932",
            "agentUID": "f267ec3a-ec00-4e32-938e-21788880d45a",
            "channelName": "PJSIP/1932-000000d5",
            "REASON": "DEFAULT",
            "uniqueId": "1713737787.627",
            "CONTID": "8c6d3bb9-389b-4a13-ae05-43f05662ddf0",
            "SRCEVENT": "AgentCalled-1713737787.627",
            "callStatusLine1": "Hold",
            "callStatusLine2": "00:03:07",
            "isInCall": true,
            "PHOTOURL": "/Tobe/contactImages/8c6d3bb9-389b-4a13-ae05-43f05662ddf0.png",
            "CALLID": "1713737787.627",
            "answered": true,
            "isOnHold": false,
            "isMuted": false,
            "isCameraOn": true,
            "formattedDuration": "00:03:07",
            "isAnswered": true
        },
        "ACW": "2"
    }
}

OnMute
(Clientside Event)

Triggers when an agent mutes a call.

{
    "type": "event",
    "group": "agent",
    "name": "OnMute",
    "data": {
        "UID": "f267ec3a-ec00-4e32-938e-21788880d45a",
        "EXTEN": "1932",
        "primarySession": {
            "sessionStatus": "Established",
            "initializationReason": "incoming",
            "sessionOrdinal": 1,
            "sessionStartDate": "2024-04-21T22:16:34.284Z",
            "duration": 253,
            "formattedDuration": "00:04:13",
            "remoteNumber": "02123212088",
            "statusMessage": "message_lastmessage03",
            "isMuted": true,
            "isOnHold": false,
            "isRinging": false,
            "isAnswered": true,
            "remoteDisplayName": "John Doe",
            "answerDate": "2024-04-21T22:16:37.850Z",
            "lastStatusCode": 200,
            "holdBeginDate": 1713737817652,
            "holdEndDate": 1713737986564,
            "holdDuration": 168,
            "totalHoldDuration": 168
        },
        "activeCallProperties": {
            "callerIdName": "John Doe",
            "callerId": "02123212088",
            "SKILL": "7000",
            "DIRECTION": "INBOUND",
            "SKILLNAME": "VIP Customers",
            "dstUniqueId": "1713737794.628",
            "INTERFACE": "PJSIP/1932",
            "agentUID": "f267ec3a-ec00-4e32-938e-21788880d45a",
            "channelName": "PJSIP/1932-000000d5",
            "REASON": "DEFAULT",
            "uniqueId": "1713737787.627",
            "CONTID": "8c6d3bb9-389b-4a13-ae05-43f05662ddf0",
            "SRCEVENT": "AgentCalled-1713737787.627",
            "callStatusLine1": "Speaking...",
            "callStatusLine2": "00:04:12",
            "isInCall": true,
            "PHOTOURL": "/Tobe/contactImages/8c6d3bb9-389b-4a13-ae05-43f05662ddf0.png",
            "CALLID": "1713737787.627",
            "answered": true,
            "isCameraOn": true,
            "formattedDuration": "00:04:12",
            "isAnswered": true,
            "isOnHold": false,
            "isMuted": true
        },
        "ACW": "2"
    }
}

OnUnmute
(Clientside Event)

Triggers when an agent unmutes a call.

{
    "type": "event",
    "group": "agent",
    "name": "OnUnmute",
    "data": {
        "UID": "f267ec3a-ec00-4e32-938e-21788880d45a",
        "EXTEN": "1932",
        "primarySession": {
            "sessionStatus": "Established",
            "initializationReason": "incoming",
            "sessionOrdinal": 1,
            "sessionStartDate": "2024-04-21T22:16:34.284Z",
            "duration": 257,
            "formattedDuration": "00:04:17",
            "remoteNumber": "02123212088",
            "statusMessage": "message_lastmessage10",
            "isMuted": false,
            "isOnHold": false,
            "isRinging": false,
            "isAnswered": true,
            "remoteDisplayName": "John Doe",
            "answerDate": "2024-04-21T22:16:37.850Z",
            "lastStatusCode": 200,
            "holdBeginDate": 1713737817652,
            "holdEndDate": 1713737986564,
            "holdDuration": 168,
            "totalHoldDuration": 168
        },
        "activeCallProperties": {
            "callerIdName": "John Doe",
            "callerId": "02123212088",
            "SKILL": "7000",
            "DIRECTION": "INBOUND",
            "SKILLNAME": "VIP Customers",
            "dstUniqueId": "1713737794.628",
            "INTERFACE": "PJSIP/1932",
            "agentUID": "f267ec3a-ec00-4e32-938e-21788880d45a",
            "channelName": "PJSIP/1932-000000d5",
            "REASON": "DEFAULT",
            "uniqueId": "1713737787.627",
            "CONTID": "8c6d3bb9-389b-4a13-ae05-43f05662ddf0",
            "SRCEVENT": "AgentCalled-1713737787.627",
            "callStatusLine1": "Muted ",
            "callStatusLine2": "00:04:16",
            "isInCall": true,
            "PHOTOURL": "/Tobe/contactImages/8c6d3bb9-389b-4a13-ae05-43f05662ddf0.png",
            "CALLID": "1713737787.627",
            "answered": true,
            "isMuted": false,
            "isCameraOn": true,
            "formattedDuration": "00:04:16",
            "isAnswered": true,
            "isOnHold": false
        },
        "ACW": "2"
    }
}

OnSwitchToSecondarySession
(Frontend Event)

Triggers when an agent switches from a primary call to a secondary call. This event is not triggered at the beginning of the second call.

{
    "type": "event",
    "group": "agent",
    "name": "OnSwitchToSecondarySession",
    "data": {
        "UID": "f267ec3a-ec00-4e32-938e-21788880d45a",
        "EXTEN": "1932",
        "primarySession": {
            "sessionStatus": "Established",
            "initializationReason": "incoming",
            "sessionOrdinal": 1,
            "sessionStartDate": "2024-04-21T22:29:41.696Z",
            "duration": 38,
            "formattedDuration": "00:00:38",
            "remoteNumber": "02123212088",
            "statusMessage": "message_lastmessage03",
            "isMuted": true,
            "isOnHold": false,
            "isRinging": false,
            "isAnswered": true,
            "remoteDisplayName": "John Doe",
            "answerDate": "2024-04-21T22:29:45.195Z",
            "holdBeginDate": 1713738623700,
            "holdEndDate": 0,
            "totalHoldDuration": 12
        },
        "activeCallProperties": {
            "callerIdName": "John Doe",
            "dstUniqueId": "1713738607.640",
            "INTERFACE": "PJSIP/1932",
            "DIRECTION": "OUTBOUND",
            "agentUID": "f267ec3a-ec00-4e32-938e-21788880d45a",
            "channelName": "PJSIP/1932-000000da",
            "REASON": "DEFAULT",
            "uniqueId": "1713738606.639",
            "SRCEVENT": "DIALEVENT-2-1713738606.639",
            "callStatusLine1": "Speaking...",
            "callStatusLine2": "00:00:37",
            "isInCall": true,
            "PHOTOURL": "/Tobe/image/themes/flat2//tegsoft_user_default.png",
            "CALLID": "1713738578.637",
            "isTransferActive": true,
            "isCameraOn": true,
            "formattedDuration": "00:00:37",
            "isAnswered": true,
            "secondarySessionPhoneNumber": "5051",
            "secondarySessionFormattedDuration": "00:00:08",
            "secondarySessionIsAnswered": true,
            "secondarySessionIsMuted": true,
            "secondarySessionIsOnHold": true,
            "answered": true,
            "isOnHold": false,
            "isMuted": true
        },
        "secondarySession": {
            "sessionStatus": "Established",
            "initializationReason": "attendedTransfer",
            "sessionOrdinal": 2,
            "sessionStartDate": "2024-04-21T22:30:05.972Z",
            "duration": 9,
            "formattedDuration": "00:00:09",
            "remoteNumber": "5051",
            "statusMessage": "Hold",
            "isMuted": false,
            "isOnHold": true,
            "isRinging": false,
            "isAnswered": true,
            "answerDate": "2024-04-21T22:30:14.291Z",
            "lastStatusCode": 200,
            "holdBeginDate": 1713738618689,
            "holdEndDate": 1713738623720,
            "holdDuration": 5,
            "totalHoldDuration": 5
        },
        "ACW": "2"
    }
}

OnSwitchToPrimarySession
(Frontend Event)

Triggers when an agent switches from a primary call to a secondary call. This event is not triggered at the beginning of the second call.

{
    "type": "event",
    "group": "agent",
    "name": "OnSwitchToPrimarySession",
    "data": {
        "UID": "f267ec3a-ec00-4e32-938e-21788880d45a",
        "EXTEN": "1932",
        "primarySession": {
            "sessionStatus": "Established",
            "initializationReason": "incoming",
            "sessionOrdinal": 1,
            "sessionStartDate": "2024-04-21T22:29:41.696Z",
            "duration": 78,
            "formattedDuration": "00:01:18",
            "remoteNumber": "02123212088",
            "statusMessage": "Hold",
            "isMuted": false,
            "isOnHold": true,
            "isRinging": false,
            "isAnswered": true,
            "remoteDisplayName": "John Doe",
            "answerDate": "2024-04-21T22:29:45.195Z",
            "holdBeginDate": 1713738623700,
            "holdEndDate": 1713738664094,
            "holdDuration": 40,
            "totalHoldDuration": 53
        },
        "activeCallProperties": {
            "callerIdName": "John Doe",
            "dstUniqueId": "1713738607.640",
            "INTERFACE": "PJSIP/1932",
            "DIRECTION": "OUTBOUND",
            "agentUID": "f267ec3a-ec00-4e32-938e-21788880d45a",
            "channelName": "PJSIP/1932-000000da",
            "REASON": "DEFAULT",
            "uniqueId": "1713738606.639",
            "SRCEVENT": "DIALEVENT-2-1713738606.639",
            "callStatusLine1": "Hold",
            "callStatusLine2": "00:01:17",
            "isInCall": true,
            "PHOTOURL": "/Tobe/image/themes/flat2//tegsoft_user_default.png",
            "CALLID": "1713738578.637",
            "isTransferActive": true,
            "isOnHold": true,
            "isMuted": false,
            "isCameraOn": true,
            "formattedDuration": "00:01:17",
            "isAnswered": true,
            "secondarySessionPhoneNumber": "5051",
            "secondarySessionFormattedDuration": "00:00:48",
            "secondarySessionIsAnswered": true,
            "secondarySessionIsMuted": true,
            "answered": true
        },
        "secondarySession": {
            "sessionStatus": "Established",
            "initializationReason": "attendedTransfer",
            "sessionOrdinal": 2,
            "sessionStartDate": "2024-04-21T22:30:05.972Z",
            "duration": 49,
            "formattedDuration": "00:00:49",
            "remoteNumber": "5051",
            "statusMessage": "message_lastmessage03",
            "isMuted": true,
            "isOnHold": false,
            "isRinging": false,
            "isAnswered": true,
            "answerDate": "2024-04-21T22:30:14.291Z",
            "lastStatusCode": 200,
            "holdBeginDate": 1713738664095,
            "holdEndDate": 0,
            "totalHoldDuration": 5
        },
        "ACW": "2"
    }
}

Blind Transfer Events

OnBlindTransferInitialized
(Clientside Event)

Triggers when an agent initiates a blind transfer.

{
    "type": "event",
    "group": "agent",
    "name": "OnBlindTransferInitialized",
    "data": {
        "UID": "f267ec3a-ec00-4e32-938e-21788880d45a",
        "EXTEN": "1932",
        "primarySession": {
            "sessionStatus": "Established",
            "initializationReason": "dial",
            "sessionOrdinal": 1,
            "sessionStartDate": "2024-04-21T22:39:54.824Z",
            "duration": 8,
            "formattedDuration": "00:00:08",
            "remoteNumber": "02123212088",
            "statusMessage": "message_lastmessage10",
            "isMuted": false,
            "isOnHold": false,
            "isRinging": false,
            "isAnswered": true,
            "answerDate": "2024-04-21T22:39:58.772Z",
            "lastStatusCode": 200,
            "holdBeginDate": 0,
            "holdEndDate": 0
        },
        "activeCallProperties": {
            "DIRECTION": "OUTBOUND",
            "dstUniqueId": "1713739196.650",
            "INTERFACE": "PJSIP/1932",
            "agentUID": "f267ec3a-ec00-4e32-938e-21788880d45a",
            "channelName": "PJSIP/1932-000000de",
            "callerId": "02123212088",
            "REASON": "DEFAULT",
            "uniqueId": "1713739195.649",
            "CONTID": "078b9a29-b0a1-4218-84b4-3e4461c54ee7",
            "SRCEVENT": "DIALEVENT-2-1713739195.649",
            "callStatusLine1": "Speaking...",
            "callStatusLine2": "00:00:07",
            "isInCall": true,
            "PHOTOURL": "/Tobe/contactImages/078b9a29-b0a1-4218-84b4-3e4461c54ee7.png",
            "CALLID": "1713739195.649",
            "isCameraOn": true,
            "formattedDuration": "00:00:07",
            "isAnswered": true,
            "answered": true,
            "callTransferType": "blindTransfer",
            "transferPhonenumber": "5051",
            "isOnHold": false,
            "isMuted": false
        }
    }
}

OnBlindTransferCompleted
(Clientside Event)

Triggers when an agent perfoms a blind transfer.

{
    "type": "event",
    "group": "agent",
    "name": "OnBlindTransferCompleted",
    "data": {
        "UID": "f267ec3a-ec00-4e32-938e-21788880d45a",
        "EXTEN": "1932",
        "primarySession": {
            "sessionStatus": "Established",
            "initializationReason": "dial",
            "sessionOrdinal": 1,
            "sessionStartDate": "2024-04-21T22:43:51.830Z",
            "duration": 10,
            "formattedDuration": "00:00:10",
            "remoteNumber": "02123212088",
            "statusMessage": "message_lastmessage10",
            "isMuted": false,
            "isOnHold": false,
            "isRinging": false,
            "isAnswered": true,
            "answerDate": "2024-04-21T22:43:56.192Z",
            "lastStatusCode": 200,
            "holdBeginDate": 0,
            "holdEndDate": 0
        },
        "activeCallProperties": {
            "DIRECTION": "OUTBOUND",
            "dstUniqueId": "1713739433.657",
            "INTERFACE": "PJSIP/1932",
            "agentUID": "f267ec3a-ec00-4e32-938e-21788880d45a",
            "channelName": "PJSIP/1932-000000e1",
            "callerId": "02123212088",
            "REASON": "DEFAULT",
            "uniqueId": "1713739432.656",
            "CONTID": "078b9a29-b0a1-4218-84b4-3e4461c54ee7",
            "SRCEVENT": "DIALEVENT-2-1713739432.656",
            "callStatusLine1": "Speaking...",
            "callStatusLine2": "00:00:09",
            "isInCall": true,
            "PHOTOURL": "/Tobe/contactImages/078b9a29-b0a1-4218-84b4-3e4461c54ee7.png",
            "CALLID": "1713739432.656",
            "isCameraOn": true,
            "formattedDuration": "00:00:09",
            "isAnswered": true,
            "answered": true,
            "isOnHold": false,
            "isMuted": false
        }
    }
}

The Attended Transfer Process Event Flow

OnAttendedTransferInitialized
(Clientside Event)

Triggers when an agent initiates an attended transfer.

For a successful transfer, the possible events are listed below,

  1. OnAttendedTransferInitialized (Clientside Event)

  2. OnAttendedTransferRinging (Clientside Event)

  3. OnAttendedTransferAnswered (Clientside Event) (If the call is answered)

  4. OnAttendedTransferCancelled (Clientside Event)

  5. OnAttendedTransferCompleted (Clientside Event)

  6. OnHold, OnUnhold, OnSwitchToSecondarySession, or OnSwitchToPrimarySession events may be triggered.

  7. OnRemoteComplete (Clientside Event) or OnAgentComplete (Clientside Event)

  8. displayIdleScreen (Backend Event)

{
  "type": "event",
  "group": "agent",
  "name": "OnAttendedTransferInitialized",
  "data": {
    "UID": "26218367-a4bb-49d1-8109-cf83db245c44",
    "EXTEN": "5051",
    "primarySession": {
      "sessionStatus": "Established",
      "initializationReason": "incoming",
      "sessionOrdinal": 1,
      "sessionStartDate": "2024-04-21T23:15:49.865Z",
      "duration": 10,
      "formattedDuration": "00:00:10",
      "remoteNumber": "02123212088",
      "statusMessage": "message_lastmessage03",
      "isMuted": true,
      "isOnHold": false,
      "isRinging": false,
      "isAnswered": true,
      "remoteDisplayName": "John Doe",
      "answerDate": "2024-04-21T23:15:52.369Z",
      "holdBeginDate": 1713741363136,
      "holdEndDate": 0
    },
    "activeCallProperties": {
      "callerIdName": "John Doe",
      "callerId": "02123212088",
      "SKILL": "7000",
      "DIRECTION": "INBOUND",
      "SKILLNAME": "VIP Customers",
      "dstUniqueId": "1713741349.664",
      "INTERFACE": "PJSIP/5051",
      "agentUID": "26218367-a4bb-49d1-8109-cf83db245c44",
      "channelName": "PJSIP/5051-000000e5",
      "REASON": "DEFAULT",
      "uniqueId": "1713741346.663",
      "CONTID": "8c6d3bb9-389b-4a13-ae05-43f05662ddf0",
      "SRCEVENT": "AgentCalled-1713741346.663",
      "callStatusLine1": "Speaking...",
      "callStatusLine2": "00:00:10",
      "isInCall": true,
      "PHOTOURL": "/Tobe/contactImages/8c6d3bb9-389b-4a13-ae05-43f05662ddf0.png",
      "CALLID": "1713741346.663",
      "answered": true,
      "isCameraOn": true,
      "formattedDuration": "00:00:10",
      "isAnswered": true,
      "callTransferType": "attendedTransfer",
      "transferPhonenumber": "1932",
      "isOnHold": false,
      "isMuted": true
    },
    "secondarySession": {
      "sessionStatus": "Initial",
      "initializationReason": "attendedTransfer",
      "sessionOrdinal": 2,
      "sessionStartDate": "2024-04-21T23:16:03.138Z",
      "duration": 0,
      "formattedDuration": "00:00:00",
      "remoteNumber": "1932",
      "statusMessage": "message_lastmessage04",
      "isMuted": false,
      "isOnHold": false,
      "isRinging": false,
      "isAnswered": false,
      "holdBeginDate": 0,
      "holdEndDate": 0
    },
    "ACW": "2"
  }
}

OnAttendedTransferRinging
(Clientside Event)

Triggers when the remote party starts ringing during an attended transfer.

{
  "type": "event",
  "group": "agent",
  "name": "OnAttendedTransferRinging",
  "data": {
    "UID": "26218367-a4bb-49d1-8109-cf83db245c44",
    "EXTEN": "5051",
    "primarySession": {
      "sessionStatus": "Established",
      "initializationReason": "incoming",
      "sessionOrdinal": 1,
      "sessionStartDate": "2024-04-21T23:15:49.865Z",
      "duration": 10,
      "formattedDuration": "00:00:10",
      "remoteNumber": "02123212088",
      "statusMessage": "Hold",
      "isMuted": true,
      "isOnHold": true,
      "isRinging": false,
      "isAnswered": true,
      "remoteDisplayName": "John Doe",
      "answerDate": "2024-04-21T23:15:52.369Z",
      "holdBeginDate": 1713741363136,
      "holdEndDate": 0
    },
    "activeCallProperties": {
      "callerIdName": "John Doe",
      "callerId": "02123212088",
      "SKILL": "7000",
      "DIRECTION": "INBOUND",
      "SKILLNAME": "VIP Customers",
      "dstUniqueId": "1713741349.664",
      "INTERFACE": "PJSIP/5051",
      "agentUID": "26218367-a4bb-49d1-8109-cf83db245c44",
      "channelName": "PJSIP/5051-000000e5",
      "REASON": "DEFAULT",
      "uniqueId": "1713741346.663",
      "CONTID": "8c6d3bb9-389b-4a13-ae05-43f05662ddf0",
      "SRCEVENT": "AgentCalled-1713741346.663",
      "callStatusLine1": "Speaking...",
      "callStatusLine2": "00:00:10",
      "isInCall": true,
      "PHOTOURL": "/Tobe/contactImages/8c6d3bb9-389b-4a13-ae05-43f05662ddf0.png",
      "CALLID": "1713741346.663",
      "answered": true,
      "isCameraOn": true,
      "formattedDuration": "00:00:10",
      "isAnswered": true,
      "callTransferType": "attendedTransfer",
      "transferPhonenumber": "1932",
      "isAttendedTransfer": true,
      "isOnHold": true,
      "isMuted": true
    },
    "secondarySession": {
      "sessionStatus": "Establishing",
      "initializationReason": "attendedTransfer",
      "sessionOrdinal": 2,
      "sessionStartDate": "2024-04-21T23:16:03.138Z",
      "duration": 0,
      "formattedDuration": "00:00:00",
      "remoteNumber": "1932",
      "statusMessage": "message_lastmessage02",
      "isMuted": false,
      "isOnHold": false,
      "isRinging": true,
      "isAnswered": false,
      "lastStatusCode": 200,
      "holdBeginDate": 0,
      "holdEndDate": 0
    },
    "ACW": "2"
  }
}

OnAttendedTransferAnswered
(Clientside Event)

Triggers when the remote party answers during an attended transfer.

{
  "type": "event",
  "group": "agent",
  "name": "OnAttendedTransferAnswered",
  "data": {
    "UID": "26218367-a4bb-49d1-8109-cf83db245c44",
    "EXTEN": "5051",
    "primarySession": {
      "sessionStatus": "Established",
      "initializationReason": "incoming",
      "sessionOrdinal": 1,
      "sessionStartDate": "2024-04-21T23:15:49.865Z",
      "duration": 19,
      "formattedDuration": "00:00:19",
      "remoteNumber": "02123212088",
      "statusMessage": "Hold",
      "isMuted": true,
      "isOnHold": true,
      "isRinging": false,
      "isAnswered": true,
      "remoteDisplayName": "John Doe",
      "answerDate": "2024-04-21T23:15:52.369Z",
      "holdBeginDate": 1713741363136,
      "holdEndDate": 0,
      "holdDuration": 8
    },
    "activeCallProperties": {
      "callerIdName": "John Doe",
      "dstUniqueId": "1713741364.666",
      "INTERFACE": "PJSIP/5051",
      "DIRECTION": "OUTBOUND",
      "agentUID": "26218367-a4bb-49d1-8109-cf83db245c44",
      "channelName": "PJSIP/5051-000000e6",
      "REASON": "DEFAULT",
      "uniqueId": "1713741363.665",
      "SRCEVENT": "DIALEVENT-2-1713741363.665",
      "callStatusLine1": "Hold",
      "callStatusLine2": "00:00:18",
      "isInCall": true,
      "PHOTOURL": "/Tobe/image/themes/flat2//tegsoft_user_default.png",
      "CALLID": "1713741346.663",
      "isTransferActive": true,
      "isOnHold": true,
      "isMuted": true,
      "isCameraOn": true,
      "formattedDuration": "00:00:18",
      "isAnswered": true,
      "secondarySessionPhoneNumber": "1932",
      "secondarySessionFormattedDuration": "00:00:07",
      "secondarySessionIsRinging": true
    },
    "secondarySession": {
      "sessionStatus": "Established",
      "initializationReason": "attendedTransfer",
      "sessionOrdinal": 2,
      "sessionStartDate": "2024-04-21T23:16:03.138Z",
      "duration": 0,
      "formattedDuration": "00:00:00",
      "remoteNumber": "1932",
      "statusMessage": "message_lastmessage10",
      "isMuted": false,
      "isOnHold": false,
      "isRinging": false,
      "isAnswered": true,
      "answerDate": "2024-04-21T23:16:11.410Z",
      "lastStatusCode": 200,
      "holdBeginDate": 0,
      "holdEndDate": 0
    },
    "ACW": "2"
  }
}

OnAttendedTransferCompleted
(Clientside Event)

Triggers when the attended transfer completes successfully.

{
  "type": "event",
  "group": "agent",
  "name": "OnAttendedTransferCompleted",
  "data": {
    "UID": "26218367-a4bb-49d1-8109-cf83db245c44",
    "EXTEN": "5051",
    "primarySession": {
      "sessionStatus": "Established",
      "initializationReason": "incoming",
      "sessionOrdinal": 1,
      "sessionStartDate": "2024-04-21T23:15:49.865Z",
      "duration": 28,
      "formattedDuration": "00:00:28",
      "remoteNumber": "02123212088",
      "statusMessage": "Hold",
      "isMuted": true,
      "isOnHold": true,
      "isRinging": false,
      "isAnswered": true,
      "remoteDisplayName": "John Doe",
      "answerDate": "2024-04-21T23:15:52.369Z",
      "holdBeginDate": 1713741363136,
      "holdEndDate": 0,
      "holdDuration": 17
    },
    "activeCallProperties": {
      "callerIdName": "John Doe",
      "dstUniqueId": "1713741364.666",
      "INTERFACE": "PJSIP/5051",
      "DIRECTION": "OUTBOUND",
      "agentUID": "26218367-a4bb-49d1-8109-cf83db245c44",
      "channelName": "PJSIP/5051-000000e6",
      "REASON": "DEFAULT",
      "uniqueId": "1713741363.665",
      "SRCEVENT": "DIALEVENT-2-1713741363.665",
      "callStatusLine1": "Hold",
      "callStatusLine2": "00:00:27",
      "isInCall": true,
      "PHOTOURL": "/Tobe/image/themes/flat2//tegsoft_user_default.png",
      "CALLID": "1713741346.663",
      "isTransferActive": true,
      "isOnHold": true,
      "isMuted": true,
      "isCameraOn": true,
      "formattedDuration": "00:00:27",
      "isAnswered": true,
      "secondarySessionPhoneNumber": "1932",
      "secondarySessionFormattedDuration": "00:00:08",
      "secondarySessionIsAnswered": true,
      "answered": true
    },
    "secondarySession": {
      "sessionStatus": "Established",
      "initializationReason": "attendedTransfer",
      "sessionOrdinal": 2,
      "sessionStartDate": "2024-04-21T23:16:03.138Z",
      "duration": 9,
      "formattedDuration": "00:00:09",
      "remoteNumber": "1932",
      "statusMessage": "message_lastmessage10",
      "isMuted": false,
      "isOnHold": false,
      "isRinging": false,
      "isAnswered": true,
      "answerDate": "2024-04-21T23:16:11.410Z",
      "lastStatusCode": 200,
      "holdBeginDate": 0,
      "holdEndDate": 0
    },
    "ACW": "2"
  }
}

OnAttendedTransferCancelled
(Clientside Event)

Triggers when the agent cancels the attended transfer.

{
  "type": "event",
  "group": "agent",
  "name": "OnAttendedTransferCancelled",
  "data": {
    "UID": "26218367-a4bb-49d1-8109-cf83db245c44",
    "EXTEN": "5051",
    "primarySession": {
      "sessionStatus": "Established",
      "initializationReason": "incoming",
      "sessionOrdinal": 1,
      "sessionStartDate": "2024-04-21T23:26:15.890Z",
      "duration": 15,
      "formattedDuration": "00:00:15",
      "remoteNumber": "02123212088",
      "statusMessage": "Hold",
      "isMuted": true,
      "isOnHold": true,
      "isRinging": false,
      "isAnswered": true,
      "remoteDisplayName": "John Doe",
      "answerDate": "2024-04-21T23:26:17.647Z",
      "holdBeginDate": 1713741985008,
      "holdEndDate": 0,
      "holdDuration": 8
    },
    "activeCallProperties": {
      "callerIdName": "John Doe",
      "dstUniqueId": "1713741986.686",
      "INTERFACE": "PJSIP/5051",
      "DIRECTION": "OUTBOUND",
      "agentUID": "26218367-a4bb-49d1-8109-cf83db245c44",
      "channelName": "PJSIP/5051-000000ee",
      "REASON": "DEFAULT",
      "uniqueId": "1713741985.685",
      "SRCEVENT": "DIALEVENT-2-1713741985.685",
      "callStatusLine1": "Hold",
      "callStatusLine2": "00:00:15",
      "isInCall": true,
      "isAgentHangup": true,
      "PHOTOURL": "/Tobe/image/themes/flat2//tegsoft_user_default.png",
      "CALLID": "1713741971.683",
      "isTransferActive": true,
      "isOnHold": true,
      "isMuted": true,
      "isCameraOn": true,
      "formattedDuration": "00:00:15",
      "isAnswered": true,
      "secondarySessionPhoneNumber": "1932",
      "secondarySessionFormattedDuration": "00:00:03",
      "secondarySessionIsAnswered": true
    },
    "secondarySession": {
      "sessionStatus": "Terminated",
      "initializationReason": "attendedTransfer",
      "sessionOrdinal": 2,
      "sessionStartDate": "2024-04-21T23:26:25.011Z",
      "duration": 4,
      "formattedDuration": "00:00:04",
      "remoteNumber": "1932",
      "statusMessage": "message_lastmessage10",
      "isMuted": false,
      "isOnHold": false,
      "isRinging": false,
      "isAnswered": true,
      "answerDate": "2024-04-21T23:26:28.925Z",
      "endDate": "2024-04-21T23:26:33.046Z",
      "lastStatusCode": 200,
      "holdBeginDate": 0,
      "holdEndDate": 0,
      "endingSide": "local"
    },
    "ACW": "2"
  }
}

The Secondary Manual Dialing Process Event Flow

OnSecondarySessionInitialized
(Clientside Event)

Triggers when an agent initiates a new call while the primary session is already active. 

For a successful call, the possible events are listed below,

  1. OnSecondarySessionInitialized (Clientside Event)

  2. OnSecondarySessionAnswered (Clientside Event) (If the call is answered)

  3. OnSecondarySessionCancelled (Clientside Event)

  4. OnSecondarySessionCompleted (Clientside Event)

  5. OnHold, OnUnhold, OnSwitchToSecondarySession, or OnSwitchToPrimarySession events may be triggered.

  6. OnRemoteComplete (Clientside Event) or OnAgentComplete (Clientside Event)

  7. displayIdleScreen (Backend Event)

{
  "type": "event",
  "group": "agent",
  "name": "OnSecondarySessionInitialized",
  "data": {
    "UID": "26218367-a4bb-49d1-8109-cf83db245c44",
    "EXTEN": "5051",
    "primarySession": {
      "sessionStatus": "Established",
      "initializationReason": "incoming",
      "sessionOrdinal": 1,
      "sessionStartDate": "2024-04-22T00:10:18.703Z",
      "duration": 14,
      "formattedDuration": "00:00:14",
      "remoteNumber": "02123212088",
      "statusMessage": "message_lastmessage03",
      "isMuted": true,
      "isOnHold": false,
      "isRinging": false,
      "isAnswered": true,
      "remoteDisplayName": "John Doe",
      "answerDate": "2024-04-22T00:10:24.023Z",
      "holdBeginDate": 1713744638232,
      "holdEndDate": 0
    },
    "activeCallProperties": {
      "callerIdName": "John Doe",
      "callerId": "02123212088",
      "SKILL": "7000",
      "DIRECTION": "INBOUND",
      "SKILLNAME": "VIP Customers",
      "dstUniqueId": "1713744618.754",
      "INTERFACE": "PJSIP/5051",
      "agentUID": "26218367-a4bb-49d1-8109-cf83db245c44",
      "channelName": "PJSIP/5051-0000010a",
      "REASON": "DEFAULT",
      "uniqueId": "1713744615.753",
      "CONTID": "8c6d3bb9-389b-4a13-ae05-43f05662ddf0",
      "SRCEVENT": "AgentCalled-1713744615.753",
      "callStatusLine1": "Speaking...",
      "callStatusLine2": "00:00:13",
      "isInCall": true,
      "PHOTOURL": "/Tobe/contactImages/8c6d3bb9-389b-4a13-ae05-43f05662ddf0.png",
      "CALLID": "1713744615.753",
      "answered": true,
      "isCameraOn": true,
      "formattedDuration": "00:00:13",
      "isAnswered": true,
      "callTransferType": "secondaryCall",
      "isNewCall": true,
      "transferPhonenumber": "02129125614",
      "isOnHold": false,
      "isMuted": true
    },
    "secondarySession": {
      "sessionStatus": "Initial",
      "initializationReason": "dial",
      "sessionOrdinal": 2,
      "sessionStartDate": "2024-04-22T00:10:38.236Z",
      "duration": 0,
      "formattedDuration": "00:00:00",
      "remoteNumber": "02129125614",
      "statusMessage": "message_lastmessage04",
      "isMuted": false,
      "isOnHold": false,
      "isRinging": false,
      "isAnswered": false,
      "holdBeginDate": 0,
      "holdEndDate": 0
    },
    "ACW": "2"
  }
}

OnSecondarySessionAnswered
(Clientside Event)

Triggers when the remote party answers the call during a secondary session manual dialing.

{
  "type": "event",
  "group": "agent",
  "name": "OnSecondarySessionAnswered",
  "data": {
    "UID": "26218367-a4bb-49d1-8109-cf83db245c44",
    "EXTEN": "5051",
    "primarySession": {
      "sessionStatus": "Established",
      "initializationReason": "incoming",
      "sessionOrdinal": 1,
      "sessionStartDate": "2024-04-22T03:39:55.567Z",
      "duration": 31,
      "formattedDuration": "00:00:31",
      "remoteNumber": "02123212088",
      "statusMessage": "Hold",
      "isMuted": true,
      "isOnHold": true,
      "isRinging": false,
      "isAnswered": true,
      "remoteDisplayName": "John Doe",
      "answerDate": "2024-04-22T03:39:59.813Z",
      "holdBeginDate": 1713757223019,
      "holdEndDate": 0,
      "holdDuration": 8
    },
    "activeCallProperties": {
      "callTransferType": "secondaryCall",
      "callerIdName": "John Doe",
      "callerId": "02123212088",
      "dstUniqueId": "1713757224.1134",
      "INTERFACE": "PJSIP/5051",
      "DIRECTION": "OUTBOUND",
      "agentUID": "26218367-a4bb-49d1-8109-cf83db245c44",
      "channelName": "PJSIP/5051-000001c5",
      "REASON": "DEFAULT",
      "uniqueId": "1713757223.1133",
      "CONTID": "8c6d3bb9-389b-4a13-ae05-43f05662ddf0",
      "SRCEVENT": "DIALEVENT-2-1713757223.1133",
      "callStatusLine1": "Hold",
      "callStatusLine2": "00:00:31",
      "isInCall": true,
      "PHOTOURL": "/Tobe/contactImages/8c6d3bb9-389b-4a13-ae05-43f05662ddf0.png",
      "CALLID": "1713757190.1131",
      "isTransferActive": true,
      "isOnHold": true,
      "isMuted": true,
      "isCameraOn": true,
      "formattedDuration": "00:00:31",
      "isAnswered": true,
      "secondarySessionPhoneNumber": "02129125614",
      "secondarySessionDuration": 7,
      "secondarySessionFormattedDuration": "00:00:07",
      "secondarySessionIsRinging": true
    },
    "secondarySession": {
      "sessionStatus": "Established",
      "initializationReason": "dial",
      "sessionOrdinal": 2,
      "sessionStartDate": "2024-04-22T03:40:23.021Z",
      "duration": 0,
      "formattedDuration": "00:00:00",
      "remoteNumber": "02129125614",
      "statusMessage": "message_lastmessage10",
      "isMuted": false,
      "isOnHold": false,
      "isRinging": false,
      "isAnswered": true,
      "answerDate": "2024-04-22T03:40:31.523Z",
      "lastStatusCode": 200,
      "holdBeginDate": 0,
      "holdEndDate": 0
    },
    "ACW": "2"
  }
}

OnSecondarySessionCancelled
(Clientside Event)

Triggers when the agent cancels a secondary call. 

{
  "type": "event",
  "group": "agent",
  "name": "OnSecondarySessionCancelled",
  "data": {
    "UID": "26218367-a4bb-49d1-8109-cf83db245c44",
    "EXTEN": "5051",
    "primarySession": {
      "sessionStatus": "Established",
      "initializationReason": "incoming",
      "sessionOrdinal": 1,
      "sessionStartDate": "2024-04-22T00:10:18.703Z",
      "duration": 27,
      "formattedDuration": "00:00:27",
      "remoteNumber": "02123212088",
      "statusMessage": "message_lastmessage10",
      "isMuted": false,
      "isOnHold": false,
      "isRinging": false,
      "isAnswered": true,
      "remoteDisplayName": "John Doe",
      "answerDate": "2024-04-22T00:10:24.023Z",
      "holdBeginDate": 1713744638232,
      "holdEndDate": 1713744649919,
      "holdDuration": 11,
      "totalHoldDuration": 11
    },
    "activeCallProperties": {
      "callerIdName": "John Doe",
      "callerId": "02123212088",
      "dstUniqueId": "1713744639.756",
      "INTERFACE": "PJSIP/5051",
      "DIRECTION": "OUTBOUND",
      "agentUID": "26218367-a4bb-49d1-8109-cf83db245c44",
      "channelName": "PJSIP/5051-0000010b",
      "REASON": "DEFAULT",
      "uniqueId": "1713744638.755",
      "CONTID": "8c6d3bb9-389b-4a13-ae05-43f05662ddf0",
      "SRCEVENT": "DIALEVENT-2-1713744638.755",
      "callStatusLine1": "Speaking...",
      "callStatusLine2": "00:00:27",
      "isInCall": true,
      "isAgentHangup": true,
      "PHOTOURL": "/Tobe/contactImages/8c6d3bb9-389b-4a13-ae05-43f05662ddf0.png",
      "CALLID": "1713744615.753",
      "isTransferActive": true,
      "isCameraOn": true,
      "formattedDuration": "00:00:27",
      "isAnswered": true,
      "secondarySessionPhoneNumber": "02129125614",
      "secondarySessionFormattedDuration": "00:00:05",
      "secondarySessionIsAnswered": true,
      "secondarySessionIsMuted": true,
      "secondarySessionIsOnHold": true,
      "isOnHold": false,
      "isMuted": false
    },
    "secondarySession": {
      "sessionStatus": "Terminated",
      "initializationReason": "dial",
      "sessionOrdinal": 2,
      "sessionStartDate": "2024-04-22T00:10:38.236Z",
      "duration": 5,
      "formattedDuration": "00:00:05",
      "remoteNumber": "02129125614",
      "statusMessage": "Hold",
      "isMuted": true,
      "isOnHold": true,
      "isRinging": false,
      "isAnswered": true,
      "answerDate": "2024-04-22T00:10:45.872Z",
      "endDate": "2024-04-22T00:10:51.645Z",
      "lastStatusCode": 200,
      "holdBeginDate": 1713744649919,
      "holdEndDate": 0,
      "holdDuration": 1,
      "endingSide": "local"
    },
    "ACW": "2"
  }
}

OnSecondarySessionCompleted
(Clientside Event)

Triggers when the remote party hangs up the call during a secondary session manual dialing.

{
  "type": "event",
  "group": "agent",
  "name": "OnSecondarySessionCompleted",
  "data": {
    "UID": "26218367-a4bb-49d1-8109-cf83db245c44",
    "EXTEN": "5051",
    "primarySession": {
      "sessionStatus": "Established",
      "initializationReason": "incoming",
      "sessionOrdinal": 1,
      "sessionStartDate": "2024-04-22T03:39:55.567Z",
      "duration": 75,
      "formattedDuration": "00:01:15",
      "remoteNumber": "02123212088",
      "statusMessage": "Hold",
      "isMuted": true,
      "isOnHold": true,
      "isRinging": false,
      "isAnswered": true,
      "remoteDisplayName": "John Doe",
      "answerDate": "2024-04-22T03:39:59.813Z",
      "lastStatusCode": 200,
      "holdBeginDate": 1713757223019,
      "holdEndDate": 0,
      "holdDuration": 52
    },
    "activeCallProperties": {
      "callTransferType": "secondaryCall",
      "callerIdName": "John Doe",
      "callerId": "02123212088",
      "dstUniqueId": "1713757246.1138",
      "INTERFACE": "PJSIP/5051",
      "DIRECTION": "OUTBOUND",
      "agentUID": "26218367-a4bb-49d1-8109-cf83db245c44",
      "channelName": "PJSIP/5051-000001c7",
      "REASON": "DEFAULT",
      "uniqueId": "1713757245.1137",
      "CONTID": "8c6d3bb9-389b-4a13-ae05-43f05662ddf0",
      "SRCEVENT": "DIALEVENT-2-1713757245.1137",
      "callStatusLine1": "Hold",
      "callStatusLine2": "00:01:15",
      "isInCall": true,
      "PHOTOURL": "/Tobe/contactImages/8c6d3bb9-389b-4a13-ae05-43f05662ddf0.png",
      "CALLID": "1713757190.1131",
      "isTransferActive": true,
      "isOnHold": true,
      "isMuted": true,
      "isCameraOn": true,
      "formattedDuration": "00:01:15",
      "isAnswered": true,
      "secondarySessionPhoneNumber": "02129125614",
      "secondarySessionDuration": 23,
      "secondarySessionFormattedDuration": "00:00:23",
      "answered": true
    },
    "secondarySession": {
      "sessionStatus": "Terminated",
      "initializationReason": "dial",
      "sessionOrdinal": 2,
      "sessionStartDate": "2024-04-22T03:40:45.229Z",
      "duration": 23,
      "formattedDuration": "00:00:23",
      "remoteNumber": "02129125614",
      "statusMessage": "message_lastmessage10",
      "isMuted": false,
      "isOnHold": false,
      "isRinging": false,
      "isAnswered": true,
      "answerDate": "2024-04-22T03:40:51.651Z",
      "endDate": "2024-04-22T03:41:15.317Z",
      "lastStatusCode": 200,
      "holdBeginDate": 0,
      "holdEndDate": 0,
      "endingSide": "remote"
    },
    "ACW": "2"
  }
}

List of all Triggers

Agent Status Events
OnLogin
OnNotReady
OnReady
displayIdleScreen

Backend (Skill based) Inbound Voice Call Events
OnAgentRingNoAnswer
OnAgentCalled
OnAgentConnect
OnAgentComplete
OnRemoteComplete

Clientside (Local) Incoming Voice Call Events
OnIncomingCallInitialized
OnIncomingCallRinging
OnIncomingCallAnswered
OnIncomingCallHangup

Manuel outbound dial events
OnDial
OnOutgoingCallInitialized
OnOutgoingCallRinging
OnOutgoingCallAnswered
OnOutgoingCallHangup

Voice call status events
OnHold
OnUnhold
OnMute
OnUnmute

Blind Transfer Events
OnBlindTransferInitialized
OnBlindTransferCompleted

Attended Transfer Events
OnAttendedTransferInitialized
OnAttendedTransferRinging
OnAttendedTransferAnswered
OnAttendedTransferCancelled
OnAttendedTransferCompleted

Secondary Call Events
OnSecondarySessionInitialized
OnSecondarySessionAnswered
OnSecondarySessionCancelled
OnSecondarySessionCompleted

Multi-Line Call Swap Events
OnSwitchToPrimarySession
OnSwitchToSecondarySession

Webchat Events
OnWebchatAgentCalled
OnWebchatAgentConnect
OnWebchatAgentComplete
OnUpdateWebchatMessages

Outbound Voice Campaign Events
OnCampAgentWaitContact
OnCampAgentWaitComplete
OnCampAgentWaitAcw
OnCampAgentComplete
OnCampAgentConnect
OnCampAgentAcw
OnCampAgentTimeout

Ticketing (RM) Events
OnRMAgentConnect

Local action events
OnCtiDataUpdate

➤  Status Event

{
  "type": "event",
  "group": "agent",
  "name": "status",
  "data": {
    "agent": {
      "ready": false,
      "busy": 25,
      "notReadyReason": "AFTERLOGIN",
      "lastStateChange": "01:01",
      "lastStateChangeDuration": 55,
      "phoneAccess": false,
      "popup_mode": "both",
      "dialoutpopup": true,
      "EXTEN": "6003",
      "INTERFACE": "PJSIP/6003",
      "REMOTEINTERFACE": "PJSIP/ebd37af5-260a-436f-9bdf-44bcc9b1b946/6003",
      "EXTID": "6003",
      "PHONETYPE": "WebRTCPhone",
      "seatType": "Extension",
      "UID": "57bcaee3-d33b-48ea-89af-877fdb5d649b",
      "USERCODE": "test.agent",
      "USERNAME": "Test",
      "SURNAME": "Agent",
      "DISPLAYNAME": "Test Agent",
      "PHOTOURL": "/Tobe/image/themes/flat2/tegsoft_user_default.png",
      "isActivityMandatory": false,
      "isActivityMandatoryAfterAnswer": false,
      "autoAnswerActive": false,
      "STATEDURATION": 55,
      "LOGINDURATION": 56,
      "NOTREADYDURATION": 55,
      "TOTALLOGINDURATION": 33567,
      "TOTALNOTREADYDURATION": 31594,
      "TALKDURATION": 0,
      "INBOUND": 0,
      "OUTBOUND": 0,
      "TOTALCALLCOUNT": 0,
      "ANSWERED": 0,
      "AVGTALK": 0,
      "WEBCHAT": 0,
      "CAMPAIGN": 0
    },
    "primarySession": {
      "answerDate": "2022-10-12T07:20:58.990Z",
      "sessionStartDate": "2022-10-12T07:20:58.309Z",
      "endDate": null,
      "isMuted": false,
      "isOnHold": false,
      "remoteNumber": "859995",
      "isRinging": false,
      "isAnswered": true,
      "duration": 12,
      "formattedDuration": "00:00:12",
      "statusMessage": "message_lastmessage10"
    }
  }
}

➤  Inbound Event

{
    "primarySession": {
        "answerDate": null,
        "sessionStartDate": "2022-10-26T13:45:12.339Z",
        "endDate": null,
        "isMuted": false,
        "isOnHold": false,
        "remoteNumber": "1234567890",
        "isRinging": false,
        "isAnswered": false,
        "duration": 0,
        "formattedDuration": "00:00:00",
        "statusMessage": "message_lastmessage04"
    },
    "UID": "5df34f9d-d91f-4e43-be33-f805fc8d84f2",
    "EXTEN": "1001",
    "activeCallProperties": {
        "incomingCallModalVisible": true,
        "SKILL": "7000",
        "DIRECTION": "INBOUND",
        "SKILLNAME": "Technical Support",
        "dstUniqueId": "1666791910.1981",
        "INTERFACE": "PJSIP/1001",
        "agentUID": "5df34f9d-d91f-4e43-be33-f805fc8d84f2",
        "channelName": "PJSIP/1001-00000311",
        "callerId": "1234567890",
        "callerIdName": "",
        "REASON": "DEFAULT",
        "uniqueId": "1666791896.1980",
        "CONTID": "a219063a-4f04-4fe1-9789-36b8a044056d",
        "SRCEVENT": "AgentCalled-1666791896.1980",
        "callStatusLine1": "",
        "callStatusLine2": "",
        "isInCall": true,
        "PHOTOURL": "/Tobe/contactImages/a219063a-4f04-4fe1-9789-36b8a044056d.png",
        "CALLID": "1666791896.1980",
        "answered": false
    }
}

➤  Outbound (Campaign) Event

{
    "primarySession": {
        "answerDate": "2022-10-26T13:43:43.310Z",
        "sessionStartDate": "2022-10-26T13:43:42.647Z",
        "endDate": null,
        "isMuted": false,
        "isOnHold": false,
        "remoteNumber": "859995",
        "isRinging": false,
        "isAnswered": true,
        "duration": 5,
        "formattedDuration": "00:00:05",
        "statusMessage": "message_lastmessage10"
    },
    "UID": "5df34f9d-d91f-4e43-be33-f805fc8d84f2",
    "EXTEN": "1001",
    "activeCallProperties": {
        "incomingCallModalVisible": false,
        "agentUID": "5df34f9d-d91f-4e43-be33-f805fc8d84f2",
        "REASON": "DEFAULT",
        "CALLID": "1666791820.1967",
        "CAMPAIGNID": "2e321272-cace-442e-b89f-e581b137e38a",
        "PHONE": "123456789",
        "DIRECTION": "OUTBOUND",
        "callStatusLine1": "",
        "callStatusLine2": "",
        "isInCall": true,
        "PHOTOURL": "/Tobe/image/themes/flat2//tegsoft_user_default.png",
        "campaignName": "test",
        "eventName": "campAgentConnect",
        "CONTID": "a219063a-4f04-4fe1-9789-36b8a044056d",
        "answered": true
    }
}

➤  Webchat Event

{
    "UID": "5df34f9d-d91f-4e43-be33-f805fc8d84f2",
    "EXTEN": "1001",
    "activeCallProperties": {
        "incomingCallModalVisible": true,
        "ENGINETYPE": "WEBUI",
        "CHATID": "52537aa6-e599-48a7-8ab8-6f1f3614f550",
        "REASON": "DEFAULT",
        "PHONE": "1234567890",
        "CONTID": "7b7828fd-755b-4e2a-a3c5-9fd793a72d93",
        "DIRECTION": "CHAT",
        "callStatusLine1": "",
        "callStatusLine2": "",
        "isInCall": true,
        "PHOTOURL": "data:image/png;base64,iVBORw0gAAABIC==",
        "CALLID": "52537aa6-e599-48a7-8ab8-6f1f3614f550",
        "skillName": "Test_Skill",
        "callerIdName": "Jane Poe",
        "SKILLNAME": "Test",
        "answered": false
    }
}





Tegsoft makes no representations or warranties, either express or implied, by or with respect to anything in this document, and shall not be liable for any implied warranties of merchantability or fitness for a particular purpose or for any indirect, special or consequential damages.

Copyright © 2022, Tegsoft. All rights reserved.

"Tegsoft" and Tegsoft’s products are trademarks of Tegsoft. References to other companies and their products use trademarks owned by the respective companies and are for reference purpose only.


Was this article helpful?

Changing your password will log you out immediately. Use the new password to log back in.
First name must have atleast 2 characters. Numbers and special characters are not allowed.
Last name must have atleast 1 characters. Numbers and special characters are not allowed.
Enter a valid email
Enter a valid password
Your profile has been successfully updated.