The Agent APIs provide various functionality to agents, from logging in and changing state to controlling calls and initiating transfers. The categories listed below are for organizational purposes only.

Call Acceptance

The Call Acceptance APIs support the ability to accept, reject or send a call to voicemail.

Accept Call

Description: Used by an Agent to accept a call when the call acceptance feature is enabled.

User Roles: Agent

Method: POST /callControl/agent/customer/call/accept[?lineNumber={lineNumber}]

Parameters:

Path/Query Parameter NameVariable NameTypeMandatory?Description
lineNumberlineNumberEnumNo

The line of the call which the Agent is accepting, valid values are:

ValueDescription
ACD

Main line or debtor line.

DIRECT

Direct line for the Agent.

EXT1, ... EXT20Extension line if supported.

Body:

None

Response Code: 204 No Content

Body:  

None

Accept Call

#Request
POST /callControl/agent/customer/call/accept?lineNumber=ACD
Host: localhost.com

#Response
204 No Content
CODE

Reject Call

Description: Used by an Agent to reject a call when the call acceptance feature is enabled.

User Roles: Agent

Method: POST /callControl/agent/customer/call/reject[?lineNumber={lineNumber}]

Parameters:

Path/Query Parameter NameVariable NameTypeMandatory?Description
lineNumberlineNumberEnumNo

The line of the call which the Agent is rejecting, valid values are:

ValueDescription
ACD

Main line or debtor line.

DIRECT

Direct line for the Agent.

EXT1, ... EXT20Extension line if supported.

Body:

None

Response Code: 204 No Content

Body:  

None

Reject Call

#Request
POST /callControl/agent/customer/call/reject?lineNumber=ACD
Host: localhost.com

#Response
204 No Content
CODE

Send To Voicemail

Description: Used by an Agent to send a call to the Agent's voicemail.

User Roles: Agent

Method: POST /callControl/agent/customer/call/sendToVoiceMail[?lineNumber={lineNumber}]

Parameters:

Path/Query Parameter NameVariable NameTypeMandatory?Description
lineNumberlineNumberEnumNo

The line of the call which the Agent is sending to voicemail, valid values are:

ValueDescription
ACD

Main line or debtor line.

DIRECT

Direct line for the Agent.

EXT1, ... EXT20Extension line if supported.

Body:

None

Response Code: 204 No Content

Body:  

None

Send Call to Voicemail

#Request
POST /callControl/agent/customer/call/sendToVoiceMail?lineNumber=ACD
Host: localhost.com

#Response
204 No Content
CODE

Call Control

The Call Control APIs supports control over calls such as placing the call on hold, ending the call, saving a term code, etc.

End Call

Description: Allows an Agent to end the current call.

User Roles: Agent

Method: POST /callControl/agent/customer/call/end[?lineNumber={lineNumber}]

Parameters:

Path/Query Parameter NameVariable NameTypeMandatory?Description
lineNumberlineNumberEnumNo

The line of the call which the Agent is ending, valid values are:

ValueDescription
ACD

Main line or debtor line.

DIRECT

Direct line for the Agent.

EXT1, ... EXT20Extension line if supported.

Body:

None

Response Code: 204 No Content

Body:  

None

End Call

#Request
POST /callControl/agent/customer/call/switch?lineNumber=ACD
Host: localhost.com

#Response
204 No Content
CODE

Get Area Code

Description: Allows an Agent to get information about an area code.

User Roles: Agent

Method: GET /callControl/agent/areaCode?serviceId={serviceId}&phoneNumber={phoneNumber}

Parameters:

Path/Query Parameter NameVariable NameTypeMandatory?Description
serviceIdserviceIdInteger (ID)YesID of a Service on which agent wants to get the area code.
phoneNumberphoneNumberStringYesPhone number for which the agent wants to get the area code.

Body:

None

Response Code: 200 OK

Body:

Key

Type

Mandatory?

Description

startTimeIntegerYes

Start time of the area code.

endTimeIntegerYes

End time of the area code.

timeZoneEnumYes

Valid Time zone values are:

Time Zones
SAFE
AL
CHT
PT
MT
AT
CT
HI
UK
ET
GU

Get SIP Account Credentials

#Request (JSON)
GET /callControl/agent/areaCode?serviceId=38049&phoneNumber=6503517490
Accept: application/json
Host: localhost.com

#Response
200 OK
Content-Type: application/json

{"startTime":120,
 "endTime":1620,
 "timeZone":"PT"
}
CODE

Get Screen Pop Details

Description: Gets screen pop details.

User Roles: Agent

Method: GET /callControl/agent/screenpop[?lineNumber={lineNumber}]

Parameters:  

Path/Query Parameter Name

Variable Name

Type

Mandatory?

Description

lineNumberlineNumberStringNo

The line of the call which the Agent is getting screen pop values for, valid values are:

ValueDescription
ACD

Main line or debtor line.

DIRECT

Direct line for the Agent.

EXT1, ... EXT20Extension line if supported.

Body:

None

Response Code: 200 OK

Body:  

Key

Type

Mandatory?

Description

screenPopRowArrayYes

Array of screenpop details

KeyTypeMandatory?Description
keyStringYesName of screenpop field.
valueStringYesValue of screenpop field.

Get Screen Pop Details

#Request (JSON)
GET /callControl/agent/screenpop
Host: localhost.com
Accept: application/json
 
#Response
200 OK
Content-Type: application/json
{
	"screenPopRow": [{
		"key": "FIRST NAME",
		"value": "LV"
	},
	{
		"key": "LAST NAME",
		"value": "SUP"
	},
	{
		"key": "ACCOUNT NUMBER",
		"value": "abc"
	},
	{
		"key": "PHONE DIALED",
		"value": "9174645253"
	},	
	{
		"key": "Call Direction",
		"value": "Outbound"
	},
	{
		"key": "Classification",
		"value": "Spanish"
	},	
	{
		"key": "Call Skill Name",
		"value": "Manual (Manual 4)"
	}]
}

CODE

Get Term Code

Description: Gets the term codes of a Service.

User Roles: Agent

Method: GET /callControl/agent/termCode[?serviceId={n}]

Parameters:  

Path/Query Parameter Name

Variable Name

Type

Mandatory?

Description

serviceIdnIntegerNoService ID.

Body:

None

Response Code: 200 OK

Body:  

Key

Type

Mandatory?

Description

termCodeCategoriesArrayYes

An array of zero or more term code categories. Each term code category contains the following details:

KeyTypeMandatory?Description
nameStringYesTerm code category name.
termCodesArrayYes

An array of zero or more term codes. Each term code contains following details:

KeyTypeMandatory?Description
idStringYesTerm code ID.
nameStringYesName of term code category.
lvResultIdStringYesID of TFH Result.
lvResultStringYesName of TFH Result.
reportDisplayOrderByteYesOrder of display.
previewDialEnabledBooleanYesWhether preview dialing is enabled.
actionTypeStringYes

Valid values include:

ValueDescription
RPC_WITH_PAYMENTRight Party Connect - With Payment
RPC_WITHOUT_PAYMENTRight Party Connect - Without Payment
WPCWrong Party Connect
OTHEROther
paymentAmtRequiredBooleanYesIf true, payment amount is required upon selecting a PTP term code.

Get term codes

#Request (JSON)
GET /callControl/agent/termCode?serviceId=113942
Host: localhost.com
Accept: application/json

#Response
200 OK
Content-Type: application/json

{
  "termCodeCategories": [
    {
      "termCodes": [
        {
          "id": "6004209",
          "name": "722",
          "lvResultId": "731",
          "lvResult": "AGENT - PTP Arranged",
          "reportDisplayOrder": 0,
          "previewDialEnabled": false,
          "actionType": "RPC_WITH_PAYMENT",
          "paymentAmtRequired": true
        }
      ],
      "name": "1 - PTP (RPC)"
    },
    {
      "termCodes": [
        {
          "id": "3873303",
          "name": "Attorney Handling",
          "lvResultId": "723",
          "lvResult": "AGENT - Attorney Handling",
          "reportDisplayOrder": 0,
          "previewDialEnabled": false,
          "actionType": "RPC_WITHOUT_PAYMENT",
          "paymentAmtRequired": false
        }
      ],
      "name": "PTP"
    }
  ]
}
XML

Hold Call

Description: Used by an Agent to put a call on hold.

User Roles: Agent

Method: POST /callControl/agent/customer/call/hold[?lineNumber={lineNumber}]

Parameters:  

Path/Query Parameter NameVariable NameTypeMandatory?Description
lineNumberlineNumberEnumNo

The line of the call which the Agent is placing on hold, valid values are:

ValueDescription
ACD

Main line or debtor line.

DIRECT

Direct line for the Agent.

EXT1, ... EXT20Extension line if supported.

Body:

None

Response Code: 204 No Content

Body:  

None

Put Current Call on Hold

#Request
POST /callControl/agent/customer/call/hold?lineNumber=ACD
Host: localhost.com

#Response
204 No Content
CODE

Manual Dial

Description: Used by an Agent to launch a manual call.

In some cases, you might receive a 204 response but the call was not launched. In that case, you can check the agentManualDialingFailedErrorCode and agentManualDialingFailedReason for the reason why it was unsuccessful. These fields are available in the Get Agent Status API method. For more information, see the Get Agent Status API method on this page.

User Roles: Agent

Method: POST /callControl/agent/customer/call/manual

Parameters:

None

Body:

KeyTypeMandatory?Description
phoneNumberIntegerYesPhone number to be dialed.
accountStringNoAccount number for the call.

Response Code: 204 No Content

Body:  

None

Launch Manual Call

#Request (JSON)
POST /callControl/agent/customer/call/manual
Host: localhost.com
Content-Type: application/json
{
  "phoneNumber": "6503517524"
}

#Response
204 No Content
CODE

Manual Dial Ex

Description: Used by an Agent to launch a manual call. This is a newer version of the Manual Dial method and allows a zip code to be included for zip area mismatch.

In some cases, you might receive a 204 response but the call was not launched. In that case, you can check the agentManualDialingFailedErrorCode and agentManualDialingFailedReason for the reason why it was unsuccessful. These fields are available in the Get Agent Status API method. For more information, see the Get Agent Status API method on this page.

User Roles: Agent

Dependencies: ACD 3.1 or above.

Method: POST /callControl/agent/customer/call/manual/ex

Parameters:

None

Body:

KeyTypeMandatory?Description
phoneNumberIntegerYesPhone number to be dialed.
accountStringNoAccount number for the call.
zipCodeStringNoThe zip code to be used for zip area mismatch.

Response Code: 204 No Content

Body:  

None

Launch Manual Call

#Request (JSON)
POST /callControl/agent/customer/call/manual/ex
Host: localhost.com
Content-Type: application/json
{
  "phoneNumber": "6503517524",
  "zipCode": "94506"
}

#Response
204 No Content
CODE

Retrieve Call

Description: Used by an Agent to retrieve a call on hold.

User Roles: Agent

Method: POST /callControl/agent/customer/call/unhold[?lineNumber={lineNumber}]

Parameters: 

Path/Query Parameter NameVariable NameTypeMandatory?Description
lineNumberlineNumberEnumNo

The line of the call which the Agent is retrieving, valid values are:

ValueDescription
ACD

Main line or debtor line.

DIRECT

Direct line for the Agent.

EXT1, ... EXT20Extension line if supported.

Body:

None

Response Code: 204 No Content

Body:  

None

Retrieve the Call on Hold

#Request
POST /callControl/agent/cusotmer/call/unhold?lineNumber=ACD
Host: localhost.com

#Response
204 No Content
CODE

Save Term Code

Description: Used by an Agent to save the term code of the call.

User Roles: Agent

Method: PUT /callControl/agent/call/termCode[?lineNumber={lineNumber}]

Parameters:  

Path/Query Parameter NameVariable NameTypeMandatory?Description
lineNumberlineNumberStringNo

The line of the call which the Agent is saving the term code for, valid values are:

ValueDescription
ACD

Main line or debtor line.

DIRECT

Direct line for the Agent.

EXT1, ... EXT20Extension line if supported.

Body:

Key

Type

Mandatory?

Description

serviceIdIntegerNoService ID.
callTransactionIdIntegerYesCall Transaction ID.
callSessionIdStringYesCall Session ID.
termCodeIdStringYesTerm Code ID.
paymentAmtStringNo*

Payment amount.

The 'paymentAmt' property is sometimes required for categories such as Promise To Pay. To determine whether the 'paymentAmt' property is required for a specific term code or not, you can use the Get Term Code method's 'paymentAmtRequired' property. 

accountStringNoAccount number.
agentEnteredAccountStringNo

Agent entered account number.

The 'agentEnteredAccount' property is required when you want to change or update account numbers using third-party APIs or custom desktops.

notesStringNoNotes.
phoneDialedStringYesPhone dialed.
moveAgentToNotReadyBooleanYesWhether the agent should be moved to not ready state after saving the termination code.
reasonCodeStringNo

Valid values include:

  • Break
  • Lunch
  • Meeting
  • Other
  • Tech Difficulties
  • Training
  • Voice Mail
immediateCallbackNumberIntegerNoImmediate callback dialing number.

Response Code: 204 No Content

Body:  

None

Save Term Code

#Request (JSON)
PUT /callControl/agent/call/termCode
Host: localhost.com
Accept: application/json
Content-Type: application/json

{
   "callTransactionId": "28348633945",
   "callSessionId": "U2C2B5T5409656A@10.40.88.125",
   "termCodeId": "1232944",
   "paymentAmt": "100",
   "account": "abcde",
   "agentEnteredAccount": "1234567",
   "phoneDialed": "6503517524",
   "moveAgentToNotReady": "true"
}


#Response
204 No Content
CODE

Call Recording Controls

The Call Recording Controls APIs supports the ending, pausing, and resuming of the call recording.

Call Recording End

Description: Ends the call recording.

User Roles: Agent

Method: POST /callControl/agent/callRecord/stop[?lineNumber={lineNumber}] 

Parameters:  

Path/Query Parameter NameVariable NameTypeMandatory?Description
lineNumberlineNumberEnumNo

The line of the call which the Agent is ending the call recording, valid values are:

ValueDescription
ACD

Main line or debtor line.

DIRECT

Direct line for the Agent.

EXT1, ... EXT20Extension line if supported.

Body:

None

Response Code: 204 No Content

Body:  

None

End Call Recording

#Request
POST /callControl/agent/callRecord/stop?lineNumber=ACD
Host: localhost.com

#Response
204 No Content
CODE

Call Recording Pause

Description: Pauses the call recording.

User Roles: Agent

Method: POST /callControl/agent/callRecord/pause[?lineNumber={lineNumber}]

Parameters:  

Path/Query Parameter NameVariable NameTypeMandatory?Description
lineNumberlineNumberEnumNo

The line of the call which the Agent is pausing the call recording, valid values are:

ValueDescription
ACD

Main line or debtor line.

DIRECT

Direct line for the Agent.

EXT1, ... EXT20Extension line if supported.

Body:

None

Response Code: 204 No Content

Body:  

None

Pause the Call Recording

#Request
POST /callControl/agent/callRecord/pause?lineNumber=ACD
Host: localhost.com

#Response
204 No Content
CODE

Call Recording Resume

Description: Resumes the call recording.

User Roles: Agent

Method: POST /callControl/agent/callRecord/resume[?lineNumber={lineNumber}]

Parameters:  

Path/Query Parameter NameVariable NameTypeMandatory?Description
lineNumberlineNumberEnumNo

The line of the call which the Agent is resuming the call recording, valid values are:

ValueDescription
ACD

Main line or debtor line.

DIRECT

Direct line for the Agent.

Body:

None

Response Code: 204 No Content

Body:  

None

Resume Call Recording

#Request
POST /callControl/agent/callRecord/resume?lineNumber=ACD
Host: localhost.com

#Response
204 No Content
CODE

Chat

The Chat APIs support the functions necessary to develop agent-to-agent chat capabilities. A chat between two agents is called a channel and a message is called a post.

Create a Channel

Description: Create a channel.

 If you try to create a channel with an agent that already exists, the message is posted to the already existing channel.

User Roles: Agent

Method: POST /callControl/agent/chat/channel

Parameters:

None

Body:

Key

Type

Mandatory?

Description

agentIdIntegerYes

The ID of the agent with whom you want to chat.

messageStringYesThe message to post.

Response Code: 200 

Body:

Key

Type

Mandatory?

Description

channelIdStringYesThe ID of the chat channel.

Create a Channel with an Initial Post

#Request (JSON)
POST /callControl/agent/chat/channel
Host: localhost.com
Accept: application/json

{
  "message": "Hi Doc1",
  "id": 657105794
}

#Response
200 OK
Content-Type: application/json

{
  "channelId": "d5328ca6-10eb-4e95-80d9-f99baf9a64ed"
}
CODE

Send Post

Description: Send a post to an existing channel.

User Roles: Agent

Method: POST /callControl/agent/chat/channel/{id}/post

Parameters:

ididStringYesThe ID of the channel where you want to post a message.

Path/Query Parameter Name

Variable Name

Type

Mandatory?

Description

Body:

Key

Type

Mandatory?

Description

messageStringYesThe message to post.

Response Code: 204 No Content

Body:

None

Send a Post to the Existing Channel

#Request (JSON)
POST /callControl/agent/chat/channel/fee19625-ad14-4c3a-a17b-ea7d6c91b479/post
Host: localhost.com
Accept: application/json

{
  "message": "Hello Agent3"
}


#Response
204 No Content
CODE

Send a Post to a non-Existing Channel

#Request (JSON)
POST /callControl/agent/chat/channel/fee19625-ad14-4c3a-a17b-ea7d6c91b419/post
Host: localhost.com
Accept: application/json

{
  "message": "Please come to desk"
}


#Response
500 Internal Server Error
Content-Type: application/json

{
  "code": 500,
  "message": "Please contact Livevox with this locator: ea9a4ed0-c2cc-440b-9fb3-d705da847662"
} 
CODE

List Posts

Description: List posts in a channel.

User Roles: Agent

Method: GET /callControl/agent/chat/channel/{id}?page={n}

Parameters:

ididStringYesChannel ID.
pagenIntegerYes

The page number. Your first request for posts must have a page number of 0 and subsequent requests must proceed in ascending order. That is, your second request must have a page of 1, 3rd request a page of 2 and so on. Alternatively, you can make your first request and then use the 'next' property in the response to get to the next page.

  • Once started, any new post does not affect the content of any page unless it restarts with 0.
  • One page shows up to 20 posts maximum.

Path/Query Parameter Name

Variable Name

Type

Mandatory?

Description

Body:

None

Response Code: 200 OK

Body:

Key

Type

Mandatory?

Description

nextURIYesA URI for the next page of entries. If next is not present, or blank, then there are no pages after this one.
postsArrayYes

An array of posts

Key

Type

Mandatory?

Description

postIdStringYesThe identifier for this post.
fromNameStringYesName of the sender of this item.
fromIdLongYesThe identifier of the sender of this item.
contentStringNoContent of the post.
unreadBooleanYesIndicator of whether this post has been read by the recipient agent.
timestampDatetimeyesThe time at which the post sent.

List of Posts in a Channel

#Request (JSON)
GET /callControl/agent/chat/channel/fee19625-ad14-4c3a-a17b-ea7d6c91b479?page=0
Host: localhost.com
Accept: application/json

#Response
200 OK
Content-Type: application/json

{
  "posts": [
    {
      "postId": "1ece099f-8f0f-47a2-a0ab-3cb4566aa141",
      "fromName": "Agent1 Doc1",
      "fromId": 1783267,
      "content": "I am ok.",
      "read": false,
      "timestamp": 1647337651
    },
    {
      "postId": "2b9da884-cae7-459c-9ca2-c79ea9eeff7b",
      "fromName": "Agent3 Doc3",
      "fromId": 1783268,
      "content": "How are you doing?",
      "read": false,
      "timestamp": 1647337632
    },
    {
      "postId": "61483dc8-3a7c-4522-943d-623e4b336a33",
      "fromName": "Agent3 Doc3",
      "fromId": 1783268,
      "content": "Thank you!",
      "read": false,
      "timestamp": 1647337624
    },
    {
      "postId": "a5b36f4d-eaef-433d-ba69-eac522087acc",
      "fromName": "Agent3 Doc3",
      "fromId": 1783268,
      "content": "I am good",
      "read": false,
      "timestamp": 1647337619
    },
    {
      "postId": "6786f229-e92e-4353-a330-a2a6ac09a50b",
      "fromName": "Agent3 Doc3",
      "fromId": 1783268,
      "content": "Hey Agent1",
      "read": false,
      "timestamp": 1647337613
    },
    {
      "postId": "16fcc2a0-073c-4039-bc71-c5d8be116ad3",
      "fromName": "Agent1 Doc1",
      "fromId": 1783267,
      "content": "Hi Agent3, How are you? ",
      "read": false,
      "timestamp": 1647335438
    },
    {
      "postId": "b7bf1883-2a24-43b2-90ca-b339751d5861",
      "fromName": "Agent1 Doc1",
      "fromId": 1783267,
      "content": "Hi Agent3",
      "read": false,
      "timestamp": 1647335116
    },
    {
      "postId": "97120d7d-51b2-441e-b994-8659853abea7",
      "fromName": "Agent1 Doc1",
      "fromId": 1783267,
      "content": "Hi Agent3",
      "read": false,
      "timestamp": 1647335006
    },
    {
      "postId": "51e95843-6627-4419-b3f2-830a2e33fefa",
      "fromName": "Agent3 Doc3",
      "fromId": 1783268,
      "content": "Hi Agent1",
      "read": false,
      "timestamp": 1647334956
    }
  ]
} 
CODE

List Posts in a non-Existing Channel

#Request (JSON)
GET /callControl/agent/chat/channel/d5328ca6-10eb-4e95-80d9-f99baf9a64ed?page=0
Host: localhost.com
Accept: application/json

#Response
400 Bad Request
Content-Type: application/json

{
  "code": 202,
  "message": "Post is not  found"
}
CODE

List Recent Channels

Description: List the most recent chats between the requesting agent and other agents.

The method displays information about 10 most recent channels.

User Roles: Agent

Method: GET /callControl/agent/chat/channel/recent

Parameters:

None

Body:

None

Response Code: 200 OK

Body:  

Body:

Key

Type

Mandatory?

Description

channelsArrayYes

An array of channels

Key

Type

Mandatory?

Description

channelIdStringYesThe ID of the channel.
channelNameStringNo

Name of the channel that contains the first and last name of the agent who created the channel and the first and last name of the agent who received the channel. 

The channel name does not update if agent names are updated after they have created the channel.

unreadCountIntegerYesNumber of unread dialogue entries.
typeStringNoType of channel.
userIdIntegerNoThe ID of the other user (agent) if  the agent is a single party.
userNameStringNoFull name of the other user (agent) if the agent is a single party.
lastPostTimestampDatetimeYesWhen the last post was posted. 

Get Channel Details

#Request (JSON)
GET /callControl/agent/chat/channel/recent
Host: localhost.com
Accept: application/json

#Response
200 OK
Content-Type: application/json

{
  "channels": [
    {
      "channelId": "3c016551-6db9-411c-8e4e-31b98f6039a3",
      "channelName": "Agent1 Doc1-Agent Bbendale",
      "unreadCount": 1,
      "type": "AgentToAgent",
      "userId": 1197006,
      "userName": "Agent Bbendale",
      "lastPostTimestamp": 1647334571
    },
    {
      "channelId": "fee19625-ad14-4c3a-a17b-ea7d6c91b479",
      "channelName": "Agent3 Doc3-Agent1 Doc1",
      "unreadCount": 8,
      "type": "AgentToAgent",
      "userId": 1783268,
      "userName": "Agent3 Doc3",
      "lastPostTimestamp": 1647337632
    }
  ]
} 
CODE

Find Channel

Description: Search the details of an existing channel by Agent ID.

User Roles: Agent

Method: POST /callControl/agent/chat/channel/search

Parameters:

None

Body:

Key

Type

Mandatory?

Description

agentIdIntegerYes

The ID of the other agent in the channel. 

Response Code: 200 OK

Body:

Key

Type

Mandatory?

Description

channelIdStringNoThe ID of the Channel.
channelNameStringNo

Name of the channel that contains the first and last name of the agent who created the channel and the first and last name of the agent who received the channel.

The channel name does not update if the agent names are updated after they have created the channel.

unreadCountIntegerYesNumber of unread dialogue entries.
typeStringNoType of channel.
userIdIntegerYesThe ID of the other user (agent) if the agent is a single party.
userNameStringNoFull name of the other user (agent) if the agent is a single party.
lastPostTimestampDatetimeYesWhen the last post was posted. 

Get Channel Details

#Request (JSON)
POST /callControl/agent/chat/channel/search
Host: localhost.com
Accept: application/json
{
  "agentId": 1783268
}

#Response
200 OK
Content-Type: application/json  

{
  "channelId": "fee19625-ad14-4c3a-a17b-ea7d6c91b479",
  "channelName": "Agent3 Doc3-Agent1 Doc1",
  "unreadCount": 8,
  "type": "AgentToAgent",
  "userId": 1783268,
  "userName": "Agent3 Doc3",
  "lastPostTimestamp": 1647337632
} 
CODE

Mark as Read

Description: Mark a post as read.

User Roles: Agent

Method: GET /callControl/agent/chat/post/{id}

Parameters:

ididStringYesThe ID of the post.

Path/Query Parameter Name

Variable Name

Type

Mandatory?

Description

Body:

None

Response Code: 204 No Content

Body:

None

Mark a Post as Read

#Request (JSON)
GET /callControl/agent/chat/post/41f19864-edda-48a9-83d9-7c268fa1ff39
Host: localhost.com
Accept: application/json

#Response
204 No Content
CODE

Delete Post

Description: Delete a post.

User Roles: Agent

Method: DELETE /callControl/agent/chat/post/{id}

Parameters:

ididStringYesThe ID of the post.

Path/Query Parameter Name

Variable Name

Type

Mandatory?

Description

Body:

None

Response Code: 204 No Content

Body:

None

Delete a Chat

#Request (JSON)
DELETE /callControl/agent/chat/post/e2c3794a-1142-47f5-88c7-a246e615f890
Host: localhost.com
Accept: application/json

#Response
204 No Content
CODE

Message

The Message APIs provide access to the pre-recorded messages configured for an agent.

Get Message

Description: Gets messages for an Agent.

User Roles: Agent

Method: GET /callControl/agent/messages

Parameters:  

None

Body:

None

Response Code: 200 OK

Body:  

Key

Type

Mandatory?

Description

agentMessageIdIntegerNoAgent Message ID.
descriptionStringNoDescription.
messagesArrayYes

Array of phrase

KeyTypeMandatory?Description
messageIdIntegerYesMessage ID.
phraseStringYesPhrase Label.
promptStringYesPrompt content.
languageIntegerYes

Language ID

IDValue
1Julie
2Spanish

Get Agent Messages

#Request (JSON)
GET /callControl/agent/messages 
Accept: application/json
Host: localhost.com

#Response
{
   "messages":    [
            {
         "messageId": 100,
         "phrase": "Greeting",
         "prompt": "Hi dear customer, please be welcome to our company",
         "language": 1
      },
            {
         "messageId": 104,
         "phrase": "Company goal",
         "prompt": "Dear customer, our main goal is to communicate people with their beloved beings",
         "language": 1
      }
   ],
   "agentMessageId": 12345,
   "description": "Test messages"
}    
CODE

Play Message

Description: Play a message to the caller.

User Roles: Agent

Method: POST /callControl/agent/message/play?agentMessageId={agentMessageId}&messageId={messageId}

Parameters:

Path/Query Parameter Name

Variable Name

Type

Mandatory?

Description

agentMessageIdagentMessageIdIntegerYesAgent Message ID.
messageIdmessageIdIntegerYesMessage ID.

Body:

None

Response Code: 204 No Content

Body:  

None

Play Message

#Request (JSON)
POST /callControl/agent/message/play?agentMessageId=12345&messageId=100
Host: localhost.com

#Response
204 No Content
CODE

Stop Message

Description: Stops playing a message.

User Roles: Agent

Method: POST /callControl/agent/message/stop

Parameters:

None

Body:

None

Response Code: 204 No Content

Body:

None

Stop Message

#Request
POST /callControl/agent/message/stop
Host: localhost.com

#Response
204 No Content
CODE

Preview Dial

The Preview Dial APIs allow Agents to dial or skip preview dial calls.

Dial Preview Dial

Description: Dials a preview call.

In some cases, you might receive a 204 response but the call was not launched. In that case, you can check the previewDialingFailedErrorCode and previewDialingFailedReason for the reason why it was unsuccessful. These fields are available in the Get Agent Status API method. For more information, see the Get Agent Status API method on this page.

User Roles: Agent

Method: POST /callControl/agent/customer/call/preview/dial

Parameters:  

None

Body:

Key

Type

Mandatory?

Description

transactionIdStringYesTransaction ID.
numberToDialStringYesNumber to dial.

Response Code: 204 No Content

Body:  

None

Enqueue Preview Dial

#Request (JSON)
POST /callControl/agent/customer/call/preview/dial
Host: localhost.com
Content-Type: application/json

{ "numberToDial":"8565215238","transactionId":"31415762030" }
 
#Response
204 No Content
CODE

Skip Preview Dial

Description: Used to skip a preview dial call.

User Roles: Agent

Method: POST /callControl/agent/customer/call/preview/skip?transactionId={transactionId}

Parameters:  

Path/Query Parameter Name

Variable Name

Type

Mandatory?

Description

transactionIdtransactionIdStringYesTransaction ID.

Body:

None

Response Code: 204 No Content

Body:  

None

Skip Preview Call

#Request
POST /callControl/agent/customer/call/preview/skip?transactionId=8565215238
Host: localhost.com

#Response
204 No Content
CODE

Service

The Service APIs provide the ability to join and leave Services as well as get information about Services.

Get Agent Desktop Stats

Description: Provides the desktop stats for an HCI Service.

User Roles: Agent

Method: GET /callControl/agent/service/stats 

Parameters:

None

Body:

None

Response Code: 200 OK

Body: 

Key

Type

Mandatory?

Description

availableAgentsIntegerYesAvailable agents.
callsOnHoldIntegerYesCalls on hold.
remainingIntegerYesCalls remaining.
cipIntegerYesCalls In Progress.
totalAgentsIntegerYesTotal Agents.
maxCallsOnHoldIntegerYesMaximum calls on hold.
maxCallsInProgressIntegerYesMaximum calls in progress.
loadedIntegerYesRecords loaded.
hciQueueSizeIntegerYesSize of HCI queue.
holdGraphDataObjectYes

Hold graph data

Key

Type

Mandatory?

Description

startTimeStringYesStart time of the graph data.
endTimeStringYesEnd time of the graph data.
dataStringYesComma separated String of values.
agentAverageGraphDataObjectYes

Agent average graph data 

Key

Type

Mandatory?

Description

startTimeStringYesStart time of the graph data.
endTimeStringYesEnd time of the graph data.
dataStringYesComma separated String of values.

Get Agent Desktop Stats

#Request (JSON)
GET /callControl/agent/service/stats
Host: localhost.com
Accept: application/json

#Response
200 OK
Content-Type: application/json

{
 "holdGraphData":{
	"startTime":"06:52",
	"endTime":"07:51",
	"data":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"
	},
 "agentAverageGraphData":{
	"startTime":"07:22",
	"endTime":"07:51",
	"data":"0,0,0,23,0,0,0,0,0,0,0,0,792,0,111,0,0,0,0,0,0,0,0,0,0,0,1253,39,0,0"
	},
 "availableAgents":1,
 "callsOnHold":0,
 "remaining":4,
 "cip":0,
 "totalAgents":1,
 "maxCallsOnHold":150,
 "maxCallsInProgress":111,
 "loaded":6,
 "hciQueueSize":0
}
CODE

Get Details

Description: Provides feature configuration and availability for a Service.

User Roles: Agent

Method: GET /callControl/agent/service/features?serviceId={serviceId}

Parameters:

Path/Query Parameter NameVariable NameTypeMandatory?Description
serviceIdserviceIdInteger (ID)YesID of the Service which you want to retrieve the details for.

Body:

None

Response Code: 200 OK

Body:

KeyTypeMandatory?Description
callInPhoneNumberStringNoFor Agent At Ready In Services, the number on which agent has to dial.
featuresObjectYes

Details of the features currently available to the Agent

KeyTypeMandatory?Description
agentNotesEnabledBooleanYesIndicates whether agent notes is enabled.
agentToAgentTransferEnabledBooleanYesIndicates whether the Agent to Agent Transfer options is enabled.
callRecordingControlEnabledBooleanYesIndicates whether the call recording controllers (pause/resume/stop) are enabled.
reasonCodesEnabledBooleanYesIndicates whether not ready break codes are enabled.
featureCodeByteYes

Feature code of the Livevox ACD mode. The valid values are:

featureCodeDescription
0Non ACD
2Agent At Ready Out
3Manual
6Agent At Ready In
7Agent Call Out
8HCI
9Strict HCI
manualOptionEnabledBooleanYesIndicates whether an agent has an option to dial manual calls on Agent at Ready Services.
manualPreviewButtonEnabledBooleanYesIndicates whether manual option should be presented to Agent in preview dialog.
manualTransferEnabledBooleanYesIndicates whether Manual Transfer options are enabled.
notReadyReasonCodesArrayYes

An array of reason code values. Valid values are:

  • Break
  • Lunch
  • Meeting
  • Other
  • Tech Difficulties
  • Training
  • Voice Mail
phoneBookTransferEnabledBooleanYesIndicates whether Phone book transfer option is enabled.
confirmOnPreviewDialBooleanYesIndicates whether to confirm the dial if agent chooses to dial the preview account.
previewDefaultActionStringYesDefault action to perform once preview timeout expires.
previewTimeoutIntegerYesTime allowed for an Agent to make a decision (dial/skip) for a preview call.
scheduledCallbackByteYes

The schedule callback options available for a requested Service. Valid values are:

scheduledCallbackDescription
3Call only goes to the Agent who scheduled it.
2

Call goes to the Agent, if available. If the Agent is unavailable it will be pooled in the Service (or DRG as set for the service) and go to the next available Agent.

elseIt will be pooled in the Service (or DRG as set for the service) and go to next available Agent.
scheduledCallbackPhoneReadOnlyBooleanYesIndicates whether an Agent is allowed to enter a callback phone number.
previewSkipEnabledBooleanYesIndicates if the Agent is allowed to skip a preview call.
termCodeEnabledBooleanYesIndicates whether termination codes are enabled.
transferOptionEnabledBooleanYesIndicates whether the ability to transfer a call is enabled.
volumeControlEnabledBooleanYesIndicates whether volume control is enabled.
lvzEnabledBooleanYesIndicates whether the service is LVZ enabled.
lvScreenPopUrlStringYesThe URL for the Services' ScreenPop.
strictAccountNumberEnabledBooleanYesIndicates if an account number is required.
callInPinNumberStringNoFor Agent At Ready In Services, the pin the Agent has to provide to login.
provideInstructionsBooleanNoIndicates whether an agent should be provided with login instructions.
clientIdStringNoThe Client ID.
clientCodeStringNoThe Client code.
serviceIdStringNoThe Service ID.
serviceDescriptionStringNoThe description of the Service.
callCenterIdIntegerNoCall Center ID.
callCenterNameStringNoCall Center Name.

Get Details for a Service

#Request (JSON)
GET /callControl/agent/service/features?serviceId=22340 
Host: localhost.com
Accept: application/json

#Response
200 OK
Content-Type: application/json

{
"features": {
        "notReadyReasonCodes": null,
        "agentNotesEnabled"="true",
        "agentToAgentTransferEnabled": true,
        "callRecordingControlEnabled": true,
        "reasonCodesEnabled": false,
        "featureCode": 2,
        "manualOptionEnabled": true,
        "manualPreview": null,
        "manualPreviewButtonEnabled": false,
        "manualTransferEnabled": true,
        "phoneBookTransferEnabled": true,
        "confirmOnPreviewDial": false,
        "previewDefaultAction": "DIAL",
        "previewTimeout": 30,
        "scheduledCallback": 2,
        "scheduledCallbackPhoneReadOnly": false,
        "scheduledCallbackPreview": false,
        "previewSkipEnabled": true,
        "termCodeEnabled": true,
        "transferOptionEnabled": true,
        "volumeControlEnabled": true,
		"lvzEnabled": true,
		"lvScreenPopurl": "JSONScreenPop_ACDDev.jsp",
		"strictAccountNumberEnabled",:true
  },
    "callInPhoneNumber": null,
    "callInPinNumber": null,
    "provideInstructions": null,
	"clientId":"1234",
	"clientCode":"ACD210",
	"serviceId":"22340",
	"serviceDescription":"DIRECT-CALL"
    "callCenterId"=1623,
    "callCenterName"="Test Call Center"
}
CODE

Get Service Details

Description: This method is used by the Agent to get the list of services for which the Agent has access to. This method will return different results depending on whether or not the Agent is logged in and if they are, what type of Service they're logged into.

  1. If an Agent has not joined a service, the system will return the full list of Services the agent can access.
  2. If an Agent is logged into an HCI Service, they are returned only HCI Services they have access to. This is due to the fact that when you are logged into an HCI Service you are only allowed to switch to other HCI Services.
  3. If an Agent is logged into a non-HCI Service, they are returned only non-HCI Services they have access to.

User Roles: Agent

Method: GET /callControl/agent/service/access

Parameters:

None

Body:

None

Response Code: 200 OK

Body:

KeyTypeMandatory?Description
homeAgentBooleanYesIndicator if the Agent is a home agent.
phoneNumberStringNoPhone number of the Agent.
servicesArrayYes

Array of Services the Agent has access to.

KeyTypeMandatory?Description
serviceIdInteger (ID)YesID of the Service.
serviceNameStringYesName of the Service.
sipIdStringNoSIP ID for Agent

Get Service Details

#Request (JSON)
GET /callControl/agent/service/access
Host: localhost.com
Accept: application/json

#Response
200 OK
Content-Type: application/json

{
   "services":    [
            {
         "serviceId": 46014,
         "serviceName": "Omega_Manual_RT"
      },     
            {
         "serviceId": 22131,
         "serviceName": "AgentReg (Agent Call Out 7)"
      },
            {
         "serviceId": 22132,
         "serviceName": "Quick_Connect (Agent At Ready Out 2)"
      },       
            {
         "serviceId": 23068,
         "serviceName": "Preview_All"
      },
			{
         "serviceId": 52811,
         "serviceName": "HCI 2"
      },
            {
         "serviceId": 46797,
         "serviceName": "Omega_QC"
      }
   ],
   "homeAgent": true,
   "phoneNumber": "6503517524"
}
CODE

Join Service

Description: This method is used by an Agent to join a Service on the LiveVox ACD.

User Roles: Agent

Method: POST /callControl/agent/service/join?serviceId={serviceId}[&phoneNumber={phoneNumber}][&sipId={sipId}]

Parameters:

Path/Query Parameter NameVariable NameTypeMandatory?Description
serviceIdserviceIdInteger (ID)YesID of the Service which the Agent wants to join.
phoneNumberphoneNumberStringNoPhone number on which the Agent receives a call. If the value is not provided Agent receives call for his configured number in LVP.
sipIdsipIdStringNoSIP ID for Agent.

Body:

None

Response Code: 204 No Content

Body:  

None

Join a Service

#Request
POST /callControl/agent/service/join?serviceId=24322&phoneNumber=4155555555
Host: localhost.com
 
#Response
204 No Content
CODE

Leave Service

Description: Used by an Agent to leave a Service on the LiveVox ACD.

User Roles: Agent

Method: POST /callControl/agent/service/leave

Parameters:

None

Body:

None

Response Code: 204 No Content

Body:

None

Leave a Service

#Request
POST /callControl/agent/service/leave
Host: localhost.com

#Response
204 No Content
CODE

Switch Service

Description: Used by an Agent to switch the Service they are logged into.

User Roles: Agent

Method: POST /callControl/agent/service/switch?serviceId={serviceId}

Parameters:

Path/Query Parameter NameVariable NameTypeMandatory?Description
serviceIdserviceIdInteger (ID)Yes

ID of the Service the Agent wants to switch to.

Body:

None

Response Code: 204 No Content

Body:

None

Move an Agent from one Service to Another

#Request
POST /callControl/agent/service/switch?serviceId={56746}
Host: localhost.com

#Response
204 No Content
CODE

Status

The Status APIs contain methods that allow for changing of an agents' status (i.e. going from ready to not ready).

Change To Not Ready

Description: Allows an Agent to change their current state to Not Ready on the ACD platform, Agent can also optionally select a reason code.

User Roles: Agent

Method: POST /callControl/agent/status/notReady[?reasonCode={reasonCode}]

Parameters:

Path/Query Parameter NameVariable NameTypeMandatory?Description
reasonCodereasonCodeStringNo

The reason why an Agent was in Not Ready, valid values are:

  • BREAK
  • LUNCH
  • MEETING
  • OTHER
  • TECH_DIFFICULTIES
  • TRAINING

Body:

None

Response Code: 204 No Content

Body:

None

Change Agent State to Not Ready

#Request
POST /callControl/agent/notReady?reasonCode=LUNCH
Host: localhost.com

#Response
204 No Content 
CODE

Change To Manual Dial

Description: Allows an Agent to change their current state to Manual Dial on the ACD platform.

User Roles: Agent

Method: POST /callControl/agent/status/manualDial

Parameters:

None

Body:

None

Response Code: 204 No Content

Body:

None

Change Agent State to Manual Dial

#Request
POST /callControl/agent/status/manualDial
Host: localhost.com
 
#Response
204 No Content
CODE

Change to Ready

Description: Allows an Agent to change their current state to Ready on the ACD platform.

User Roles: Agent

Method: POST /callControl/agent/status/ready

Parameters:

None

Body:

None

Response Code: 204 No Content

Body:

None

Change Agent State to Ready

#Request
POST /callControl/agent/status/ready
Host: localhost.com

#Response
204 No Content 
CODE

Get Agent Status

Description: Gets the status of an Agent.

User Roles: Agent

Method: POST /callControl/agent/status

Parameters:  

None

Body:

KeyTypeMandatory?Description
stateChangedAfterdateTimeNoTimestamp to filter the 'agentStatus' objects.

Response Code:  200 OK

Body:

KeyTypeMandatory?Description
agentStatusArrayYes

Object containing agent status

KeyTypeMandatory?Description
agentCallConnectedBooleanNoIndicates whether agent call is connected or not.
agentManualDialingFailedBooleanNoIndicates if the manual call has failed.
previewDialingFailedBooleanNoIndicates if Preview dialing failed.
previewDialingFailedErrorCodeIntegerNo

Preview dialing failed error code.

This field is populated with the error code on the first agent status call after a failed preview dial attempt.

agentManualDialingFailedErrorCodeIntegerNo

Error code for agent manual dialing failed.

This field is populated with the error code on the first agent status call after a failed manual dial attempt.

agentManualDialingFailedReasonStringNo

Reason for the failure of manual call.

This field is populated with the message on the first agent status call after a failed manual dial attempt.

previewDialingFailedReasonStringNo

Preview dialing failed reason.

This field is populated with the error code on the first agent status call after a failed preview dial attempt.

agentCallFailedErrorCodeIntegerNoError code for agent call failed.
agentCallFailedBooleanNoIndicates if agent call failed.
voicemailStorageLimitReachedBooleanNoIndicates that the voice mail storage limit has reached.
newVoicemailsCountIntegerNoGives the total number of new voicemails.
reasonCodeStringNo

The reason why an Agent was in Not Ready, valid values are:

  • Break
  • Lunch
  • Meeting
  • Other
  • Tech Difficulties
  • Voice Mail
agentMutedBoolean No 

Indicates if Agent is on mute.

serviceObjectYes

Object containing information on the Service the Agent is logged into

KeyTypeMandatory?Description
callsInProgressIntegerYesTotal calls in progress for the Service.
callsRemainingIntegerYesTotal calls remaining for the Service.
callsOnHoldIntegerYesTotal calls currently on hold for the Service.
reloadServiceFeaturesBooleanNoIndicates if switch Service is initiated.
reloadServiceIdIntegerNoNew Service ID after a switch Service action by Agent/Supervisor.

 

voicemailObjectNo

Object containing the Agents' personal voicemail information

KeyTypeMandatory?Description
voicemailCallConnectedBooleanNoIndicates that agent voicemail call is connected.
voicemailFailureErrorCodeIntegerNoError code for voicemail failure.
voicemailFailureResonStringNoReason for voicemail failure.

 

chatObjectNo

Object containing Agent chat sessions

KeyTypeMandatory?Description
chatMessageStringYesChat message.
chatTimeIntegerYesChat time.
chatUserStringYesChat user.
chatMessagesArrayNo

Array of chat messages.

KeyTypeMandatory?Description
sourceIdStringYesSource ID
messageStringYesMessage
timedateTimeYesTime
terminatedChatSessionsArrayNo

Array of terminated chat sessions.

TypeMandatory?Description
StringYesList of source IDs that ended a chat session.

 

linesArrayYes

Array of lines available to the Agent and information for those lines.

KeyTypeMandatory?Description
lineNumberEnumYes

Valid values are:

ValueDescription
ACD

Main line or debtor line.

DIRECT

Direct line for the Agent.

EXT1, ... EXT20Extension line if supported.
displayNameStringYesName of the extension.
playingMessageBooleanNoFlag to indicate if a prerecorded audio message is being played to the caller.
activeBooleanYesIndicates if the line is active.
callControlBooleanYesIndicates if the call controls (transfer, volume control, etc) are enabled.
stateEnumYes

Line's current state, possible values are:

  • LOGOFF
  • LOGON
  • READY
  • NOTREADY
  • INCALL
  • WRAPUP
  • TRANSFERRING
  • MANUALDIAL
  • PREVIEWDIAL
  • DIALING
  • REGISTERING
  • HOLD
  • RESERVED
customerDisconnectedBeforeBridgeBooleanNoIndicates if the Debtor call has hangup.
conferenceInitiatedBooleanNoIndicates if the conference has initiated.
supervisorCallSuccessBeforeConferencedBooleanNoIndicates if the Supervisor call is success.
callConferencedBooleanNoIndicates that the debtor, agent and supervisor/second agent are on conference call.
transferToQueueBooleanNoIndicates whether the current agent call is being transferred to a queue.
transferToQueueFailedBooleanNoIndicates whether the transfer to queue request failed.
transferCallOnHoldBooleanNoIndicates that call is on hold during the transfer.
callTransferredToAgentStringNoThe name of the agent who received the call.
supervisorPhoneNumberStringNoPhone number of the Supervisor.
stateChangedTimedateTimeYesThe time the Agent last changed their state.
callObjectNo

Holds call details

KeyTypeMandatory?Description
callTransactionIdStringYesTransaction ID.
callSessionIdStringYesSession ID.
firstNameStringYesCaller's First Name.
lastNameStringYesCaller's Last Name.
callRequiresAcceptanceBooleanNoIndicates whether the call requires acceptance.
callAcceptanceTimeoutIntegerNoTimeout for call acceptance, after which the call will automatically marked as Not Accepted.
callRecordingStartedBooleanYesIndicates whether the call recording has started or not.
serviceIdIntegerYesID of the service of the call.
callCenterIdIntegerYesID of the call center.
accountNumberStringYesAccount Number for the call.
phoneNumberStringYesCaller's Phone Number.
accountNumberRequiredBooleanYesIndicates whether the account number is required while terming the call.

 

Get Agent Status for an Agent

#Request (JSON)
POST /callControl/agent/status
Host: localhost.com
Content-Type: application/json
Accept: application/json
{
   "stateChangedAfter": "1426164521"
}

#Response
200 OK
Content-Type: application/json

 {"agentStatus": [{
   "service":    {
      "callsInProgress": 1,
      "callsRemaining": 0,
      "callsOnHold": 0
   },
   "voicemail": {},
   "chat": {},
   "lines":    [
            {
         "lineNumber": "ACD",
         "displayName": "Line 1 - ACD",
         "active": true,
         "callControl": false,
         "state": "READY"
        "stateChangedTime": 1428381379986
     },
            {
         "lineNumber": "DIRECT",
         "displayName": "Line 1 - Direct",
         "active": false,
         "callControl": false,
         "state": "READY"
         "stateChangedTime": 1428381388323
    }
   ],
   "agentCallConnected": true,
 }]}
CODE

Switch Line

Description: Switches the current active line when there is more than one active call for an Agent.

User Roles: Agent

Method: POST /callControl/agent/line?lineNumber={lineNumber}

Parameters:

Path/Query Parameter NameVariable NameTypeMandatory?Description
lineNumberlineNumberEnumYes

The line to switch to. Only lines with active calls are valid, ACD line is valid to switch to only if there are no active calls on other lines.

Valid values are:

ValueDescription
ACD

Main line or debtor line.

DIRECT

Direct line for the Agent.

EXT1, ... EXT20Extension line if supported.

Body:

None

Response Code: 204 No Content

Body:  

None

Switch Line

#Request
POST /callControl/agent/line?lineNumber=DIRECT
Host: localhost.com

#Response
204 No Content
CODE

Transfer/Conference

The Transfer/Conference APIs provides functionality related to transferring or conferencing calls. This includes but is not limited to initiating a transfer, getting phonebook details, ending a transfer, etc.

When using the Transfer/Conference APIs there is a set flow needed to achieve the proper functionality. Below is a flow chart that lists what methods should follow others and in parenthesis which parties are on the line after the connection is made. In the chart 'Agent' is the Agent who is on the call to begin with, 'Caller' is the person who called in or was called by LiveVox, and 'Supervisor' is the Agent or Supervisor who is receiving the call transfer. When a party is not listed it usually means they are on hold, or in the case of leave conference and reconnect the third party has been dropped from the call.

Agent to Agent Transfer

Description: Initiates a transfer of a call from one Agent to another.

User Roles: Agent

Method: POST /callControl/agent/conference/agent[?lineNumber={lineNumber}]

Parameters:  

Path/Query Parameter NameVariable NameTypeMandatory?Description
lineNumberlineNumberEnumNo

The line that the Agent wants to transfer, valid values are:

ValueDescription
ACD

Main line or debtor line.

DIRECT

Direct line for the Agent.

EXT1, ... EXT20Extension line if supported.

Body:

Key

Type

Mandatory?

Description

secondAgentLoginIdStringYesTarget Agent logon ID.
callCenterIdIntegerNoCall center ID (blank would be all call centers).

Response Code: 204 No Content

Body:  

None

Agent to Agent Transfer

#Request (JSON)
POST /callControl/agent/conference/agent
Content-Type: application/json
Host: localhost.com

{
 "secondAgentLoginId":"lv_rt",
 "callCenterId":"1623"
}
 
#Response
204 No Content
CODE

Cold Transfer

Description: Allows agents to perform cold transfers.

User Roles: Agent

Method: POST /callControl/agent/phonebook/cold?lineNumber={lineNumber}

Parameters 

Path/Query Parameter Name

Variable Name

Type

Mandatory?

Description

lineNumberlineNumberEnumYes

The line that the Agent wants to cold transfer, valid values are:

ValueDescription
ACDMain Line or Debtor Line.
DirectDirect Line of the Agent.
EXT1, ... EXT20Extension line if supported.

Body:

None

Response Code: 204 No Content

Body:

None

Cold Transfer a Call

#Request (JSON)
POST /callControl/agent/phonebook/cold?lineNumber=ACD
Content-Type: application/json
Accept: application/json

 
#Response
204 No Content
CODE

Complete Conference

Description: Used by an Agent to complete the conference, i.e., all three parties (Agent, caller, Supervisor) are on the same call.

User Roles: Agent

Method: POST /callControl/agent/conference/customer[?lineNumber={lineNumber}]

Parameters:

Path/Query Parameter NameVariable NameTypeMandatory?Description
lineNumberlineNumberEnumNo

The line of the call which the Agent wants to end the conference, valid values are:

ValueDescription
ACD

Main line or debtor line.

DIRECT

Direct line for the Agent.

EXT1, ... EXT20Extension line if supported.

Body:

None

Response Code: 204 No Content

Body:  

None

Complete Conference

#Request
POST /callControl/agent/conference/customer
Host: localhost.com
 
#Response
204 No Content
CODE

Get Available Agent List

Description: Used to get a list of Agents who are available to accept a transfer, only Agents in 'Ready' will be returned.

User Roles: Agent

Method: POST /callControl/agent/available

Parameters:  

None

Body:

KeyTypeMandatory?Description
callCenterObjectYes

Array of Call Centers in which to search for available Agents.

KeyTypeMandatory?Description
idInteger (ID)YesCall Center ID.

Response Code: 200 OK

Body:  

Key

Type

Mandatory?

Description

agentDetailsArrayYes

Array of Agent details

KeyTypeMandatory?Description
phoneStringYesPhone number of the Agent.
wrapupStringYesWrap up duration for the Agent.
loginIdStringYesLogin ID of the Agent.
activeStringYesIndicate if the Agent is active.
lastNameStringYesLast name of the Agent.
firstNameStringYes

First name of the Agent.

homeAgentStringYesIndicates if the Agent is a home agent.
agentIdStringYesID of the Agent.
callCenterIdIntegerYesID of Call Center.
serviceIdIntegerYesID of Service.

Get Available Agent List

#Request (JSON)
POST /callControl/agent/available
Host: localhost.com
Accept: application/json
Content-Type: application/json

{
  "callCenter": [{"id": "38049"}]
}

#Response
200 OK
Content-Type: application/json

{
	"agentDetails": [{
		"phone": "6503517539",
		"wrapup": "-1",
		"loginId": "LV_SUP",
		"active": "true",
		"lastName": "MAT",
		"firstName": "LV",
		"homeAgent": "true",
		"agentId": "344413",
		"callCenterId": 1623,
		"serviceId": 38049
	}]
}
CODE

Get Call Center List

Description: Used to get a list of Call Centers.

User Roles: Agent

Method: GET /callControl/agent/callCenters

Parameters:  

None

Body:

None

Response Code: 200 OK

Body:

Key

Type

Mandatory?

Description

callCenterListArrayYes

Array of call centers

KeyTypeMandatory?Description
idInteger(ID)YesCall Center ID.
nameStringYesCall Center name.

Get a List of Call Centers

#Request (JSON)
GET /callControl/agent/callCenters
Host: localhost.com
Accept: application/json

#Response
200 OK
Content-Type: application/json

{
    "callCenterList": [{
        "id": 1718,
        "name": "Call Center 2"
    },
    {
        "id": 1623,
        "name": "Call Center"
    },
    {
        "id": 3086,
        "name": "TEST Call Center"
    }]
}
CODE

Get Phonebook Details

Description: Used to get information about the phonebooks available to the Agent.

User Roles: Agent

Method: GET /callControl/agent/phonebook[?serviceId={serviceId}]

Parameters:  

Path/Query Parameter NameVariable NameTypeMandatory?Description
serviceIdserviceIdInteger (ID)NoLimits the phonebooks to only ones available for this particular Service.

Body:

None

Response Code: 200 OK

Body:  

Key

Type

Mandatory?

Description

phoneContact

Array

Yes

Array of phonebook contacts

Key

Type

Mandatory?

Description

phoneBookContactId

Integer

Yes

Phonebook contact ID.

phoneBookId

Integer

Yes

Phone book ID.

contactName

String

Yes

Name of the phone book contact.

If the phonebook transfers to a group of agents on LiveVox the contact name will also be followed by information on the state of agents that can accept the phonebook transfer. The state of agents will be reflected as follows: [H:X/R:X/T:X], where X is the number of agents in each state, H stands for agents on hold, R for agents in ready, and T for the total number of agents.

phoneNumber

String

Yes

Phone number.

extension

String

No

Extension.

internalQueue

Boolean

Yes

Indicates whether the phone book contact is routing the calls via internal ACD queue.

description

String

No

Description of the phonebook.

phoneBookId

String

No

ID of the phonebook.

Get Phonebook Details

#Request (JSON)
GET /callControl/agent/phonebook
Host: localhost.com
Accept: application/json

#Response
200 OK
Content-Type: application/json
{
  "GetPhoneBookDetailsResponse": {
    "description": "Amby test1",
    "phoneBookId": "1386",
    "phoneContact": [
      {
        "phoneBookContactId": "6853",
        "phoneBookId": "1386",
        "contactName": "Amby test1",
        "phoneNumber": "4159395722",
        "internalQueue": false,
        "extension": 8976
      },
      {
        "phoneBookContactId": "6855",
        "phoneBookId": "1386",
        "contactName": "Amby test_Warm transfer [H:0/R:0/T:1]",
        "internalQueue": true,
        "extension": 1234
      },
...
      {
        "phoneBookContactId": "9412",
        "phoneBookId": "1386",
        "contactName": "Invalid Queue - On Hold [H:0/R:0/T:0]",
        "internalQueue": true,
        "extension": 3456
      }
    ]
  }
}
CODE

Get Phonebook Details Ext

Description: A newer version of the Get Phonebook Details method used to get information about the phonebooks available to the Agent.

User Roles: Agent

Method: GET /callControl/agent/phonebook/ext?serviceId={serviceId}

Parameters:  

Path/Query Parameter NameVariable NameTypeMandatory?Description
serviceIdserviceIdInteger (ID)YesLimits the phonebooks to only ones available for this particular Service.

Body:

None

Response Code: 200 OK

Body:  

Key

Type

Mandatory?

Description

phoneContact

Array

Yes

Array of phonebook contacts

Key

Type

Mandatory?

Description

phoneBookContactId

Integer

Yes

Phonebook contact ID.

phoneBookId

Integer

Yes

Phone book ID.

contactName

String

Yes

Name of the phone book contact.

If the phonebook transfers to a group of agents on LiveVox the contact name will also be followed by information on the state of agents that can accept the phonebook transfer. The state of agents will be reflected as follows: [H:X/R:X/T:X], where X is the number of agents in each state, H stands for agents on hold, R for agents in ready, and T for the total number of agents.

phoneNumber

String

Yes

Phone number.

extension

String

No

Extension.

internalQueue

Boolean

Yes

Indicates whether the phone book contact is routing the calls via internal ACD queue.

coldTransferBooleanYesIndicated whether the phone book allows cold transfers.

description

String

No

Description of the phonebook.

phoneBookId

String

No

ID of the phonebook.

Get Phonebook Details Ext

#Request (JSON)
GET /callControl/agent/phonebook/ext?serviceId=12345
Host: localhost.com
Accept: application/json

#Response
200 OK
Content-Type: application/json
{
  "phoneContact": [
    {
      "phoneBookContactId": 11532,
      "phoneBookId": 1710,
      "contactName": "k1",
      "phoneNumber": "6503517528",
      "extension": "",
      "internalQueue": false,
      "coldTransfer": false
    },
    {
      "phoneBookContactId": 11533,
      "phoneBookId": 1245,
      "contactName": "K2_hold",
      "phoneNumber": "6503517528",
      "extension": "",
      "internalQueue": false,
      "coldTransfer": false
    },
...
    {
      "phoneBookContactId": 11537,
      "phoneBookId": 1710,
      "contactName": "k6_skill_hold [H:0/R:0/T:0]",
      "extension": "",
      "internalQueue": true,
      "coldTransfer": true
    }
  ],
  "description": "kavya",
  "phoneBookId": "1710"
}
CODE

Hold Supervisor Call

Description: Used by an Agent to hold a supervisor call, i.e., the Supervisor is put on hold while the Agent and caller are connected.

User Roles: Agent

Method: POST /callControl/agent/conference/supervisor/hold[?lineNumber={lineNumber}]

Parameters:

Path/Query Parameter NameVariable NameTypeMandatory?Description
lineNumberlineNumberEnumNo

The line of the call that the Supervisor is on which the Agent wants to put on hold, valid values are:

ValueDescription
ACD

Main line or debtor line.

DIRECT

Direct line for the Agent.

EXT1, ... EXT20Extension line if supported.

Body:

None

Response Code: 204 No Content

Body:  

None

#Request
POST /callControl/agent/conference/supervisor/hold?lineNumber={ACD}
Host: localhost.com
 
#Response
204 No Content

Leave Conference

Description: Used by an Agent to leave a conference, i.e., the Supervisor and caller are left on the call while the Agent is disconnected.

User Roles: Agent

Method: POST /callControl/conference/leave[?lineNumber={lineNumber}]

Parameters:

Path/Query Parameter NameVariable NameTypeMandatory?Description
lineNumberlineNumberEnumNo

The line of the call that the Agent wants to leave, valid values are:

ValueDescription
ACD

Main line or debtor line.

DIRECT

Direct line for the Agent.

EXT1, ... EXT20Extension line if supported.

Body:

None

Response Code: 204 No Content

Body:  

None

Leave Conference

#Request
POST /callControl/agent/conference/leave
Host: localhost.com
 
#Response
204 No Content
CODE

Manual Transfer

Description: Used to transfer a call to an Agent entered 10 digit number.

User Roles: Agent

Method: POST /callControl/agent/conference/manual[?lineNumber={lineNumber}]

Parameters:  

Path/Query Parameter NameVariable NameTypeMandatory?Description
lineNumberlineNumberEnumNo

The line of the call that the Agent wants to manual transfer, valid values are:

ValueDescription
ACD

Main line or debtor line.

DIRECT

Direct line for the Agent.

EXT1, ... EXT20Extension line if supported.

Body:

Key

Type

Mandatory?

Description

supervisorNumberStringYesSupervisor phone number.
extensionStringNoThe extension of the person who will accept the transfer.
delayBeforeExtensionIntegerNoThe delay between the 10 digit number being dialed and the extension being entered.
putCallOnHoldBooleanYesIf true, caller is put on hold while the transfer is completed.
secureTransferBooleanYesIndicates if transfer is secure.

Response Code: 204 No Content

Body:  

None

Manual Transfer

#Request (JSON)
POST /callControl/agent/conference/manual
Content-Type: application/json
Host: localhost.com

{
 "supervisorNumber":"4158395494",
 "putCallOnHold":"true",
 "secureTransfer":"false"
}

#Response
204 No Content
CODE

Phonebook Transfer

Description: Used to transfer a call via a phonebook entry.

User Roles: Agent

In most cases after a phonebook transfer is initiated the caller is put on hold and the Agent is connected to the 3rd party, however, there is a setting available that allows the caller to stay on the line with the Agent the entire time. This is set at the phonebook level, to check which phonebooks have this setting enabled please contact LiveVox support.

Method: POST /callControl/agent/conference/phonebook[?lineNumber={lineNumber}]

Parameters:  

Path/Query Parameter NameVariable NameTypeMandatory?Description
lineNumberlineNumberEnumNo

The line of the call that the Agent wants to transfer via the phonebook, valid values are:

ValueDescription
ACD

Main line or debtor line.

DIRECT

Direct line for the Agent.

EXT1, ... EXT20Extension line if supported.

Body:

Key

Type

Mandatory?

Description

phoneBookIdIntegerYesPhonebook ID.
phoneBookContactIdIntegerYesPhonebook contact ID.

Response Code: 204 No Content

Body:  

None

Transfer Call via Phonebook

#Request (JSON)
POST /callControl/agent/conference/phonebook
Content-Type: application/json
Accept: application/json
Host: localhost.com
 
{
 "phoneBookId":"1386",
 "phoneBookContactId":"6853"
}

#Response
204 No Content
CODE

Reconnect

Description: Used by an Agent to reconnect to a caller. The call is essentially returned to the point before the Agent tried to transfer the call.

User Roles: Agent

Method: POST /callControl/agent/conference/reconnect[?lineNumber={lineNumber}]

Parameters:

Path/Query Parameter NameVariable NameTypeMandatory?Description
lineNumberlineNumberEnumNo

The line of the call which the Agent wants to reconnect to, valid values are:

ValueDescription
ACD

Main line or debtor line.

DIRECT

Direct line for the Agent.

EXT1, ... EXT20Extension line if supported.

Body:

None

Response Code: 204 No Content

Body:  

None

Reconnect to a Conference

#Request
POST /callControl/agent/conference/reconnect
Host: localhost.com
 
#Response
204 No Content
CODE

Reconnect Call

Description: Used by an Agent to reconnect the Agents audio path.

User Roles: Agent

Method: POST /callControl/agent/call/reconnect

Parameters:  

None

Body:

None

Response Code: 200 OK

Body:  

KeyTypeMandatory?Description
resultBooleanYesReturns 'true' if the reconnect was successful.

Reconnect a Call

#Request
POST /callControl/agent/call/reconnect
Host: localhost.com

#Response
200 OK
 
{"result":true}
CODE

Resume Supervisor Call

Description: Used by an Agent to resume a supervisor call, i.e., the Agent and Supervisor are on a call together while the caller is placed on hold.

User Roles: Agent

Method: POST /callControl/agent/conference/supervisor/resume[?lineNumber={lineNumber}]

Parameters:

Path/Query Parameter NameVariable NameTypeMandatory?Description
lineNumberlineNumberEnumNo

The line of the call that the Agent wants to resume the supervisor call, valid values are:

ValueDescription
ACD

Main line or debtor line.

DIRECT

Direct line for the Agent.

EXT1, ... EXT20Extension line if supported.

Body:

None

Response Code: 204 No Content

Body:  

None

Resume Supervisor Call

#Request
POST /callControl/agent/conference/supervisor/resume
Host: localhost.com

#Response
204 No Content
CODE

Voicemail

The Voicemail APIs provide Agents with the ability check their voicemail messages.

Check Voicemail

Description: Used to check the Agents' voicemail box(es) for messages.

User Roles: Agent

Method: GET /callControl/agent/voicemail

Parameters:

None

Body:

None

Response Code: 200 OK

Body:  

Key

Type

Mandatory?

Description

voiceMailsArrayNo

Array of Voicemails

KeyTypeMandatory?Description
idIntegerYesID of the voicemail box.
nameStringYesName of the voicemail box.
numberOfVoicemailsIntegerYesNumber of voicemails.
typeStringYesType of voicemails.
storageLimitReachedBooleanYesWhether storage limit has been reached.

Checks Voicemail

#Request (JSON)
GET /callControl/agent/voicemail
Host: localhost.com
Accept: application/json

#Response
200 OK
Content-Type: application/json

{
 "voiceMails":[
	{
	 "id":4156599164,
	 "name":"Group VM for 22359",
     "numberOfVoicemails":2,
     "type":"agent",
     "storageLimitReached":false
     },
	{
     "id":8992213101,"name":
	 "Group VM for Agent",
     "numberOfVoicemails":22,
	 "type":"agent",
	 "storageLimitReached":false
    },
	{
     "id":8992213102,
	 "name":"Group VM for Customer",
   	 "numberOfVoicemails":23,
	 "type":"agent",
	 "storageLimitReached":false
    }
 ]
}
CODE

Dial Voicemail

Description: Used by an Agent to dial their voicemail box.

User Roles: Agent

Method: POST /callControl/agent/voicemail/dial[?id={id}]

Parameters:  

Path/Query Parameter Name

Type

Mandatory?

Description

idStringYesID of the Voicemail box.

Body:

None

Response Code: 204 No Content

Body:  

None

Dial Voicemail

#Request
POST /callControl/agent/voicemail/dial?id=1234
Host: localhost.com

#Response
204 No Content
CODE

Hangup Voicemail

Description: Used by an Agent to end the call to the voicemail box.

User Roles: Agent

Method: POST /callControl/agent/voicemail/hangup

Parameters:

None

Body:

None

Response Code: 204 No Content

Body:  

None

Hangup Voicemail

#Request
POST /callControl/agent/voicemail/hangup
Host: localhost.com

#Response
204 No Content
CODE

Volume Controls

The Volume Controls APIs provide the ability to change the volume on the Agent or customer leg, as well as muting and unmuting the Agent.

Set Agent Call Volume

Description: Used by an Agent to set the volume of the Agent side.

User Roles: Agent

Method: PUT /callControl/agent/call/volume?outGain={n}[&lineNumber={lineNumber}] 

Parameters:

Path/Query Parameter Name

Variable Name

Type

Mandatory?

Description

outGainnIntegerYesValue (Min = 0 and Max = 24).
lineNumberlineNumberEnumNo

The line of the call that the Agent wants to adjust the volume for, valid values are:

ValueDescription
ACD

Main line or debtor line.

DIRECT

Direct line for the Agent.

EXT1, ... EXT20Extension line if supported.

Body:

None

Response Code: 204 No Content

Body:  

None

Set Agent Side Call Volume

#Request
PUT /callControl/agent/call/volume?outGain=18&lineNumber=ACD
Host: localhost.com
 
#Response
204 No Content
CODE

Set Agent Mute

Description: Used by an Agent to mute the Agent side of a call.

User Roles: Agent

Method: PUT /callControl/agent/call/mute 

Parameters:

None

Body:

None

Response Code: 204 No Content

Body:  

None

Mute the Agent Side of the Call

#Request
PUT /callControl/agent/call/mute
Host: localhost.com

#Response
204 No Content
CODE

Set Agent Unmute

Description: Used by an Agent to unmute the Agent side of the call.

User Roles: Agent

Method: PUT /callControl/agent/call/unmute

Parameters:

None

Body:

None

Response Code: 204 No Content

Body:  

None

Unmute the Agent Side of the Call

#Request
PUT /callControl/agent/call/unmute
Host: localhost.com

#Response
204 No Content
CODE

Set Customer Call Volume

Description: Used by an Agent to set the volume of the customer side of the call.

User Roles: Agent

Method: PUT /callControl/agent/customer/call/volume?outGain={n}[&lineNumber={lineNumber}] 

Parameters:

Path/Query Parameter Name

Variable Name

Type

Mandatory?

Description

outGainnIntegerYesValue (Min = 0 and Max = 24).
lineNumberlineNumberEnumNo

The line of the call that the Agent wants to adjust the volume for, valid values are:

ValueDescription
ACD

Main line or debtor line.

DIRECT

Direct line for the Agent.

EXT1, ... EXT20Extension line if supported.

Body:

None

Response Code: 204 No Content

Body:  

None

Set Customer Side Volume

#Request
PUT /callControl/customer/call/volume?outGain=18&lineNumber=ACD
Host: localhost.com

#Response
204 No Content
CODE

Top of Page