Setera Onecloud enduser API (5.4.22067)

Setera Onecloud enduser API

ACD/Attendant Group

The ACD/Attendant Group API is used to manage agent login status as well as retrieving information about groups and agents.
Use the ACD/Attendant Group API to:

  • Manage login status for agents in ACD, ACD Light or Attendant group
  • Retrieve information about specified ACD/Attendant group for user
  • List ACD/ACD Light or Attendant groups for a user

Get group Deprecated

Retrieve information about a specific ACD/Attendant group for a user.

NOTE: This method is DEPRECATED and will be removed in future releases.

Authorizations:
Bearer
path Parameters
domain
required
string
user
required
string
group
required
integer <int64>

Responses

Response samples

Content type
{
  • "id": 35,
  • "domain": "sampleorg.com",
  • "name": "Customer services",
  • "type": "ACD",
  • "isLoggedIn": true,
  • "isNightMode": true,
  • "agents": {
    },
  • "roles": [
    ],
  • "statistic": {
    },
  • "isAllowUsingFunctionNumber": true,
  • "distributionType": "string"
}

Get group Deprecated

Retrieve information about a specific ACD/Attendant group for a user. It is possible to filter out the statistics.

NOTE: This method is DEPRECATED since 5.2 and will be removed in future releases.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the user's organization

user
required
string

The user id of the user

group
required
integer <int64>

The id of the ACD/Attendant group

group-domain
required
string

The domain of the organization the ACD/Attendant group belongs to

query Parameters
ignoreStatistics
required
boolean

Don't include statistics and immediately return an empty response

Responses

Response samples

Content type
{
  • "id": 5,
  • "domain": "example.org",
  • "name": "TestAttendantGroup",
  • "type": "ATTENDANT",
  • "loggedIn": true,
  • "nightMode": false,
  • "agents": [
    ],
  • "roles": [
    ],
  • "statistic": {
    },
  • "allowUsingFunctionNumber": true
}

Get group

Retrieve information about a specific ACD/ACD Light/Attendant group for a user. It is possible to filter out the statistics.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the user's organization

user
required
string

The user id of the user

group
required
integer <int64>

The id of the ACD/ACD Light/Attendant group

group-domain
required
string

The domain of the organization the ACD/Attendant group belongs to

query Parameters
ignoreStatistics
boolean

Don't include statistics and immediately return an empty response

Responses

Response samples

Content type
application/json
{
  • "id": 5,
  • "domain": "example.org",
  • "name": "TestAttendantGroup",
  • "type": "ATTENDANT",
  • "loggedIn": true,
  • "nightMode": false,
  • "agents": [
    ],
  • "roles": [
    ],
  • "statistic": {
    },
  • "allowUsingFunctionNumber": true,
  • "distributionType": "PRIORITY"
}

List groups Deprecated

List all ACD/Attendant groups for a user.
Login state, availability and activity for all agents/attendants belonging to respective group are also included.

NOTE: This method is DEPRECATED since 5.2 and will be removed in future releases.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the user's organization

user
required
string

The user's id

query Parameters
ignoreStatistics
boolean

Whether statistics shall be included, or not. If omitted, statistics will be included.

ignoreAgents
boolean

Whether agents shall be included, or not. If omitted, agents will be included.

Responses

Response samples

Content type
{
  • "groups": [
    ]
}

List groups

List all ACD/ACD Light/Attendant groups for a user.
Login state, availability and activity for all agents/attendants belonging to respective group are also included.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the user's organization

user
required
string

The user's id

query Parameters
ignoreStatistics
boolean

Whether statistics shall be included, or not. If omitted, statistics will be included.

ignoreAgents
boolean

Whether agents shall be included, or not. If omitted, agents will be included.

Responses

Response samples

Content type
application/json
{
  • "groups": [
    ]
}

Log in/Log out Deprecated

To log in/log out an agent or attendant of an ACD/Attendant group

NOTE: This method is DEPRECATED and will be removed in future releases.

Authorizations:
Bearer
path Parameters
domain
required
string
user
required
string
group
required
integer <int64>
agent
required
string
query Parameters
action
string
logout
string

Responses

Response samples

Content type
{
  • "id": 35,
  • "domain": "sampleorg.com",
  • "name": "Customer services",
  • "type": "ACD",
  • "isLoggedIn": true,
  • "isNightMode": true,
  • "agents": {
    },
  • "roles": [
    ],
  • "statistic": {
    },
  • "isAllowUsingFunctionNumber": true,
  • "distributionType": "string"
}

Log in/Log out

To log in/log out an agent or attendant of an ACD/Attendant group

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the user's organization

user
required
string

The user id of the user

group
required
integer <int64>

The id of the ACD/Attendant group

group-domain
required
string

The domain of the organization the ACD/Attendant group belongs to

agent
required
string

The username of the agent to log in or out, including domain part

query Parameters
action
required
string
Enum: "login" "logout"
Example: action=login

The action to perform

Responses

Response samples

Content type
"string"

Distribution Group

The Distribution Group API allows the calling user to view and handle status for distribution groups (ACD, ACD Light and Attendant groups) that the user has access to, including handling call log items to these groups.
Use the Distribution Group API to:

  • Log in a user to a distribution group
  • Log out a user from a distribution group
  • List the distribution groups available to a user
  • Get the call history for a user
  • Get the call history for a user for a specific distribution group
  • Assign a call to a user
  • List calls assigned to a user
  • List calls assigned to a user for a specific distribution group
  • Subscribe to queue statistics

Get group call history

Get call log items for a specific distribution group accessible to the user.
Calls are normally grouped in call log items by distribution group, caller and item type. For example, missed calls from +155568123456 to ACD 'Customer service' are gathered in one call log item. However, if both callerNumber and itemType are specified as parameters, each individual call is returned as a separate call log item.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the user

user
required
string

The ID of the user

grpid
required
string

The ID of the distribution group

query Parameters
groupDomain
string

If stated, the domain of the organization to which the distribution group belongs. If omitted, this is assumed to be the same as domain

callerNumber
string

If provided, only return group call log items that originate from this number

itemType
Array of strings
Items Enum: "ALL" "ANSWERED" "FORWARDED" "MISSED"

If provided, only return these types of group call log items

since
string

If provided, only return items with ID greater than this.
The purpose of since is to enable retrieving items that have come in since last fetch by providing since=the last known item ID.
Note that since cannot be combined with olderThan.

olderThan
string

If provided, only return group call log items with ID smaller than this.
The purpose of olderThan is to enable 'scrolling' in a list so that when the final item is reached, later items can be fetched by providing olderThan=the last call log ID retrieved.
Note that olderThan cannot be combined with since.

limit
string

If stated, return no more than this amount of group call log items

Responses

Response samples

Content type
{
  • "generatedAt": "2018-05-26T13:00:30Z",
  • "flushCache": true,
  • "hintCount": 35,
  • "callCountAnswered": 12,
  • "callCountForwarded": 12,
  • "callCountMissed": 12,
  • "callLogItem": [
    ]
}

Get call history

Get call log items for all ACD/Attendant groups available for the user.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the user

user
required
string

The ID of the user

query Parameters
callerNumber
string

If provided, only return group call log items that originate from this number

itemType
Array of strings
Items Enum: "ALL" "ANSWERED" "FORWARDED" "MISSED"

If provided, only return these types of group call log items

since
string

If provided, only return items with ID greater than this.
The purpose of since is to enable retrieving items that have come in since last fetch by providing since=the last known item ID.
Note that since cannot be combined with olderThan.

olderThan
string

If provided, only return group call log items with ID smaller than this.
The purpose of olderThan is to enable 'scrolling' in a list so that when the final item is reached, later items can be fetched by providing olderThan=the last call log ID retrieved.
Note that olderThan cannot be combined with since.

limit
string

If stated, return no more than this amount of group call log items

Responses

Response samples

Content type
{
  • "generatedAt": "2018-05-26T13:00:30Z",
  • "flushCache": true,
  • "hintCount": 35,
  • "callCountAnswered": 12,
  • "callCountForwarded": 12,
  • "callCountMissed": 12,
  • "callLogItem": [
    ]
}

List groups

List ACD/Attendant groups available to the user, and the user's current login state.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the user

user
required
string

The ID of the user

Responses

Response samples

Content type
{
  • "group": [
    ]
}

List assigned calls

List group call log items assigned to a user.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the user

user
required
string

The ID of the user

Responses

Response samples

Content type
{
  • "generatedAt": "2018-05-26T13:00:30Z",
  • "flushCache": true,
  • "hintCount": 35,
  • "callCountAnswered": 12,
  • "callCountForwarded": 12,
  • "callCountMissed": 12,
  • "callLogItem": [
    ]
}

List group assigned calls

List call log items assigned to a user from a certain distribution group.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the user

user
required
string

The ID of the user

grpid
required
string

The ID of the distribution group

query Parameters
groupDomain
string

If stated, the domain of the organization to which the distribution group belongs. If omitted, this is assumed to be the same as domain

Responses

Response samples

Content type
{
  • "generatedAt": "2018-05-26T13:00:30Z",
  • "flushCache": true,
  • "hintCount": 35,
  • "callCountAnswered": 12,
  • "callCountForwarded": 12,
  • "callCountMissed": 12,
  • "callLogItem": [
    ]
}

Log in to federated group

Log in a user to a distribution group.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the user

user
required
string

The ID of the user

grpid
required
integer <int64>

The ID of the distribution group

grpid-domain
required
string

If stated, the domain of the organization to which the distribution group belongs. If omitted, this is assumed to be the same as domain

query Parameters
ignoreStatistics
boolean

Don't include statistics and immediately return an empty response.

Responses

Response samples

Content type
{
  • "group": [
    ]
}

Log out of federated group

Log out a user from a distribution group.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the user

user
required
string

The ID of the user

grpid
required
integer <int64>

The ID of the distribution group

grpid-domain
required
string

If stated, the domain of the organization to which the distribution group belongs. If omitted, this is assumed to be the same as domain

query Parameters
ignoreStatistics
boolean

Don't include statistics and immediately return an empty response.

Responses

Response samples

Content type
{
  • "group": [
    ]
}

Subscribe to queue statistics

Produces a SSE stream of queue statistic updates in application/telepo-queue-statistics+xml format. The stream will only contain updates to the queues that the user is a member of.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the user

user
required
string

The ID of the user

Responses

Assign call

Assign a call in a group call log to a user.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the user

user
required
string

The ID of the user

itemid
required
integer <int64>

The ID of the group call log item to assign to the user

Request Body schema:
state
string
Enum: "UNHANDLED" "INPROGRESS" "HANDLED"

The handled-state of this call.
If UNHANDLED is specified in a PUT request to assign a call, the current assignment is removed and handle state is reset.

note
string

If applicable, a note that is attached to the call

Responses

Request samples

Content type
{
  • "state": "INPROGRESS",
  • "note": "Wants to be called back on friday"
}

Response samples

Content type
{
  • "itemId": 15,
  • "groupId": 35,
  • "groupOrgId": 0,
  • "callCount": 35,
  • "itemType": "ANSWERED",
  • "forwardReason": "NO_AGENTS",
  • "startTime": "2018-05-26T13:00:30Z",
  • "callDuration": 20,
  • "queueDuration": 6,
  • "callMetaData": "string",
  • "diversionNumber": "1555054123",
  • "callerNumber": "+46887654321",
  • "callbackToNumber": "+46887654123",
  • "agent": {
    },
  • "forwardedTo": {
    },
  • "handledStatus": {
    },
  • "noteIncluded": true
}

Queue Statistics

The Queue Statistics API gives access to statistics on ACD and attendant groups. Queue statistics is authenticated using api tickets for Queue statistics.
To be able to fetch the queue statistics, the Supervisor license must be assigned to the organization.
Use the Queue Statistics API to:

  • Get queue statistics for an organization
  • Get queue statistics for a user
  • Get queue statistics for a queue

Get organization queue statistics

Retrieve the queue statistics for an organization.

Authorizations:
AdminBearer
path Parameters
domain
required
string

The domain queue statistics shall be fetched for

Responses

Response samples

Content type
application/json
{
  • "queue": [
    ]
}

Get organization queue statistics Deprecated

Retrieve the queue statistics for an organization.

NOTE: This method is DEPRECATED since 5.1 and will be removed in future releases.

Authorizations:
AdminBearer
path Parameters
domain
required
string

The domain queue statistics shall be fetched for

Responses

Response samples

Content type
{
  • "queue": [
    ]
}

Get queue statistics for queue

Retrieve queue statistics for a distribution group.

Authorizations:
AdminBearer
path Parameters
domain
required
string

The domain of the group queue statistics shall be fetched for

queueId
required
string

The id of the group queue statistics shall be fetched for

Responses

Response samples

Content type
application/json
{
  • "name": "ACD_Tax",
  • "domain": "test.com",
  • "number": "+123415",
  • "id": 67899,
  • "queueLength": 3,
  • "availableAgents": 2,
  • "loggedInAgents": 5,
  • "longestWaiting": 20,
  • "lastWait": 15,
  • "averageWait": 14,
  • "droppedCallsForPeriod": 6,
  • "totalCallsForPeriod": 60,
  • "answeredCallsForPeriod": 41,
  • "totalCallsLast24h": 50,
  • "droppedCallsLast24h": 4,
  • "answeredCallsLast24h": 38,
  • "current-agent-presence": [
    ]
}

Get user queue statistics

Retrieve queue statistics for a user who is authorized to supervise specific groups.

Authorizations:
AdminBearer
path Parameters
domain
required
string

The domain of the user queue statistics shall be fetched for

user
required
string

The username of the user queue statistics shall be fetched for

query Parameters
includeFederation
boolean

If queue statistics from federated organizations shall be included (default false)

Responses

Response samples

Content type
application/json
{
  • "queue": [
    ]
}

Get user queue statistics Deprecated

Retrieve queue statistics based on a specific supervisor who is authorized to supervise specific groups.

NOTE: This method is DEPRECATED since 5.1 and will be removed in future releases.

Authorizations:
AdminBearer
path Parameters
domain
required
string

The domain queue statistics shall be fetched for

user
required
string

The username of the user accessing the API

Responses

Response samples

Content type
{
  • "queue": [
    ]
}

Call Recording Control

The Call Recording Control API is used to manage UC analytics/Generic call recording.
Use the Call Recording API to:

  • List call recording for a user
  • Update an ongoing call recording for a user

List recordings Deprecated

Returns a list of calls for the user which are being recorded.

NOTE: This method is DEPRECATED since 5.1 and will be removed in future releases.

Authorizations:
Bearer
path Parameters
domain
required
string

The organization domain.

user
required
string

The user ID without domain suffix.

Responses

Response samples

Content type
application/json
[
  • {
    },
  • {
    }
]

Update ongoing recording Deprecated

The user is allowed to perform the action for the recording in its current state if the action, i.e. save/discard/pause/resume, is listed in the allowed actions of the recording state. A pause/resume action may conflict with an ongoing media session re-negotiation, in which case the action is rejected.

NOTE: This method is DEPRECATED since 5.1 and will be removed in future releases.

Authorizations:
Bearer
path Parameters
domain
required
string

The organization domain.

user
required
string

The user ID without domain suffix.

id
required
string

The ID of the call recording to update.

query Parameters
action
required
string
Enum: "SAVE" "DISCARD" "PAUSE" "RESUME"

The action to perform.

Responses

Response samples

Content type
application/json
{
  • "field": [
    ],
  • "warning": [
    ],
  • "generated-id": "string"
}

Calls

The Calls API enables you to make calls to other users or external numbers. In contrast to other End User API's it is possible for an org-admin to use the Call Setup API in place of another user. Hence it is possible for an org-admin to, via the API, setup calls for other users within the organization. The Call Control ticket API parameter enables you to transfer calls.
Use Calls API to:

  • Set up call
  • Transfer call
  • Cancel call transfer
  • Get call transfer status

Cancel call transfer

Cancel an ongoing attended call transfer.

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization the user belongs to.

user
required
string

The user performing the transfer.

transferId
required
string

The call transfer ID of the transfer that will be cancelled.

Responses

Get call transfer status

Get the status of an ongoing call transfer.

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization the user belongs to.

user
required
string

The user performing the transfer.

Responses

Response samples

Content type
Example

Blind transfer, the transferred call is by default released from the transferring agent as soon as the transfer is initiated and the agent can start attending other calls.

{
  • "transferId": {
    }
}

Transfer call

Transfer a mobile call to the specified number.

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization the user belongs to.

user
required
string

The user performing the transfer.

query Parameters
transferType
required
string
Enum: "BLIND_TRANSFER" "ATTENDED_TRANSFER"

The type of transfer to be performed: BLIND_TRANSFER - transfer the call directly to the specified number,
ATTENDED_TRANSFER - Attended transfer allowing the user to communicate with the destination before the transfer.

destination
required
string

The destination number for the transfer.

Responses

Response samples

Content type
{
  • "transferId": {
    }
}

Set up call

Set up a call-back call to the contact with the specified ID. Examples: If user Alice want to make a call to Bob, and use her mobile as the call device and call with the role Private the following syntax could be used.

POST http://bcs.mydomain.com/api/calls/current/foo.com/alice/mobile/bob@foo.com?role=PRIVATE

Org-admin James wants to setup a call for Alice to call Bob, use Alice's mobile as the call device and call with the role Private. The same syntax as before can be used, but instead of using Alice's token. James should use his own token with access granted for Call setup and Call control.
POST http://bcs.mydomain.com/api/calls/current/foo.com/alice/mobile/bob@foo.com?role=PRIVATE

If Bob happens to be an external party, the parameter needs to be URL encoded and the phone number in international format, i.e a leading "+" ("%2B" when URL encoded):
POST http://bcs.mydomain.com/api/calls/current/foo.com/alice/mobile/%2B468123456789?role=PRIVATE

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization the user belongs to.

user
required
string

The user performing the call setup.

aptype
required
string

The 'aptype' defines where the callback will be connected. It should be a valid answerplace for the specified user. Valid values are:

mobile - to set up the call to the mobile 
soft - to set up the call to the softphone
desktop - to set up the call to the desktop phone
fxs - to set up the call to an analog phone
external_pbx - to set up the call to a phone on an external pbx

cid
required
string

can be one of the following:

receiving_user - the receiving users URL encoded answerplace. For instance: targetname@yourdomain.com.
phone_number - If the answerplace is an external party, the parameter needs to be URL encoded and the phone number in international format, i.e a leading "+" ("%2B" when URL encoded)

query Parameters
role
string

what role to call with. The roles PRIVATE and BUSINESS are always possible to set, but additional roles may be specified. If no role is specified as a parameter, then it will be set to a default according to the call rules.

bypass
string

Bypass call routing ('true' or 'false')

intrude
string

Intrude the current call ('true' or 'false')

callback-via-gsm
boolean

True if the callback should prefer GSM call.

Responses

Response samples

Content type
{
  • "field": [
    ],
  • "warning": [
    ],
  • "generated-id": "string"
}

Line State

The Line State API is used to manage a user's line state.
Use the Line State API to:

  • Get line state
  • Update line state
  • Create line state
  • Delete line state

Get line state

Fetches a specific line state for a user.

Authorizations:
AdminBearer
path Parameters
domain
required
string

The domain of the organization the user belongs to

userId
required
string

The user id

externalId
required
string

The external id

Responses

Response samples

Content type
application/json
{
  • "expiresOn": "2020-03-10T11:05:00+01"
}

Update line state

Updates a line state for a user and external id. If there is no current line state, it will be created.

Authorizations:
AdminBearer
path Parameters
domain
required
string

The domain of the organization the user belongs to

userId
required
string

The user id

externalId
required
string

The external id

Responses

Response samples

Content type
application/json
{
  • "expiresOn": "2020-03-10T11:05:00+01"
}

Create line state

Creates a line state for a user and external id. If the line state already exists, it will be updated.

Authorizations:
AdminBearer
path Parameters
domain
required
string

The domain of the organization the user belongs to

userId
required
string

The user id

externalId
required
string

The external id

Responses

Response samples

Content type
application/json
{
  • "expiresOn": "2020-03-10T11:05:00+01"
}

Delete line state

Removes a specific line state for a user.

Authorizations:
AdminBearer
path Parameters
domain
required
string

The domain of the organization the user belongs to

userId
required
string

The user id

externalId
required
string

The external id

Responses

Communication Log

The Communication Log API is used to manage the communication log for users. The communication log items can of different types including incoming calls, outgoing calls, missed calls, voicemails, recorded calls and faxes.

Use Communication Log API to:

  • Get communication log item
  • List communication log items
  • List group inbox items
  • Mark communication log item as seen/played
  • Mark communication log items as seen/played in batch
  • Mark communication log item as deleted
  • Mark communication log items as deleted in batch
  • Delete communication log item
  • Delete communication log items in batch

Update deletion time

Set or unset the deletion time for a communication log item. Setting deletion time moves an item to the trash, and clearing it moves it back to the inbox.

Authorizations:
Bearer
path Parameters
itemId
required
string

The id of the item

userId
required
string

The username of the user accessing the API

domain
required
string

The domain of the user accessing the API

query Parameters
delete
boolean

Indicates if an item should be marked or unmarked for deletion

Responses

Get log item

Read a specific communication log item.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the user accessing the API

userId
required
string

The username of the user accessing the API

itemId
required
string

The id of the item

query Parameters
deleted
boolean

If true, fetch deleted items only

markAsDelete
boolean

If true, fetch items that are marked as deleted only

Responses

Response samples

Content type
Example

This example shows an incoming call.

{
  • "historyItems": [
    ],
  • "flushCache": true,
  • "generatedAt": "2020-10-05T19:59:21Z",
  • "hintCount": 1
}

Mark item as seen/played

Mark a specific communication log item as seen and/or played.

Authorizations:
Bearer
path Parameters
itemId
required
string

The id of the item

userId
required
string

The username of the user accessing the API

domain
required
string

The domain of the user accessing the API

query Parameters
isSeen
required
boolean

Indicates if the seen state should be set

isPlayed
required
boolean

Indicates if the played state should be set

updateCallItem
required
boolean

Indicates if the call item should be updated too

Responses

Delete log item

Delete a specific communication log item.

Authorizations:
Bearer
path Parameters
itemId
required
string

The id of the item

userId
required
string

The username of the user accessing the API

domain
required
string

The domain of the user accessing the API

query Parameters
updateCallItem
required
boolean

Indicates if the related call item should be deleted too

Responses

List log items

List communication log items for a user.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the user accessing the API

userId
required
string

The username of the user accessing the API

query Parameters
since
string

Fetch items whose ID is larger than this value. For example, if since=10 is provided in the query string, items with ID 11 and upwards are returned.

olderThan
string

Fetch items whose ID is less than this value. For example, if olderThan=20 is provided, call log items with IDs from 19 and downwards are returned.

limit
string

The maximum number of items that should be fetched

itemType
string
Enum: "OUTGOING_CALL" "MISSED_CALL" "INCOMING_CALL" "VOICEMAIL" "RECORDING" "FAX"

The type of items that should be fetched. This parameter can be repeated for each type to be fetched.

contactId
string

If specified, fetch items for this specific contact only

number
string

If specified, fetch items for the specified phone number only

deleted
boolean

If true, fetch deleted items only

markAsDelete
boolean

If true, fetch items that are marked as deleted only

count
boolean

If true, return the number of items instead of the items in the response body

Responses

Response samples

Content type
Example

This example shows calls that are Incoming, Outgoing or Missed ones.

{
  • "historyItems": [
    ],
  • "flushCache": true,
  • "generatedAt": "2020-10-05T19:58:21Z",
  • "hintCount": 3
}

Mark items as seen/played

Mark specific communication log items as seen and/or played. In case if some of the items are existing, they are deleted and the items that are not found are added in the response body as a string. If all items are found, nothing is returned.

Authorizations:
Bearer
path Parameters
userId
required
string

The username of the user accessing the API

domain
required
string

The domain of the user accessing the API

query Parameters
itemId
required
Array of strings

The ids of the items formatted like itemId=1&itemId=2&itemId=3 etc

untilItemId
required
string

Indicates if all items until this id should be updated

itemType
required
string
Enum: "OUTGOING_CALL" "MISSED_CALL" "INCOMING_CALL" "VOICEMAIL" "RECORDING" "FAX"

Indicates that only item types of these types should be updated. The parameter can be repeated.

isSeen
required
boolean

Indicates if the seen state should be set

isPlayed
required
boolean

Indicates if the played state should be set

updateCallItem
required
boolean

Indicates if the call items should be updated too

Responses

Response samples

Content type
*/*
Example

All requested items are existing in the system. So response body carries nothing.

Delete log items

Delete a number of specific communication log items.

Authorizations:
Bearer
path Parameters
userId
required
string

The username of the user accessing the API

domain
required
string

The domain of the user accessing the API

query Parameters
itemId
Array of strings

The ids of the items formatted like itemId=1&itemId=2&itemId=3 etc

untilItemId
string

Delete all items until this id

itemType
string
Enum: "OUTGOING_CALL" "MISSED_CALL" "INCOMING_CALL" "VOICEMAIL" "RECORDING" "FAX"

Delete items of these types. The parameter can be repeated.

updateCallItem
boolean

Indicates if the related call item should be deleted too

Responses

List group inbox items

Read group inbox messages.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the user accessing the API

userId
required
string

The username of the user accessing the API

Responses

Response samples

Content type
Example

This example details the response with one Group Inbox Item in the Communication Log API response.

{}

Mark item as deleted

Set the deleted flag on a specific communication log item. The delete flag is used for further expunging of voicemail items.

Authorizations:
Bearer
path Parameters
itemId
required
string

The id of the item

userId
required
string

The username of the user accessing the API

domain
required
string

The domain of the user accessing the API

Responses

CTI APIs

This group of APIs enable CTI (Computer Telephony Integration) functionality to be able to control end-user calls. The APIs are authenticated using API tickets for Call Control (CALL_CONTROL) and also requires either a Cloud CTI API license or a Call Control API license.

Call Control

The Call Control API enables controlling of calls for a user.
To use the API, the end-user must either have a Cloud CTI API license or a Call Control API license.
Call Control API with Cloud CTI API license allows you to:

  • Make a call from a device
  • Make a call re-using an existing call leg
  • Answer a ringing call
  • Hold a call
  • Resume a held call
  • Alternate call
  • Park a call
  • Pick up a SIP call
  • Mute a call
  • Unmute a muted call
  • Move a call to another device
  • Transfer a call to a new destination
  • Transfer a call to another call that belongs to the user
  • Send DTMF digits
  • Add a call to an ad-hoc conference
  • Leave an ad-hoc conference
  • Remove a participant from an ad-hoc conference
  • Terminate a call
Call Control API with Call Control API license allows you to:
  • Make a call from a device
  • Answer a ringing call
  • Terminate a call

Add call to ad-hoc conference

The call specified by {callId} will be transformed into an ad-hoc conference call, if it is not already, and the call specified in the request body will be added to the conference.

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization

userId
required
string

The user performing the call

callId
required
string

The ID of the call that should be the ad-hoc conference call

Request Body schema: application/json
stateToken
integer <int64>

The expected stateToken of the state at the server. If not matching, the request will fail.

targetCallId
string

The callId of the target call that should be retrieved/answered/added

targetStateToken
integer <int64>

The expected token of the state of target call at the server. If not matching, the request will fail.

Responses

Request samples

Content type
application/json
{
  • "stateToken": 487345453,
  • "targetCallId": "dd33dxw9",
  • "targetStateToken": 63772
}

Response samples

Content type
application/json
{
  • "stateToken": 48738853,
  • "callId": "xxx111yyy",
  • "userId": "alice@organization.org",
  • "remoteParty": {
    },
  • "participants": [
    ],
  • "conference": true,
  • "inbound": true,
  • "intruded": false,
  • "status": "ACTIVE",
  • "event": "PARTICIPANT_ADDED",
  • "muted": false,
  • "duration": 5,
  • "externalRecording": true,
  • "externalRecordingDuration": 5,
  • "externalRecordingPaused": false,
  • "deviceIds": [
    ],
  • "actions": [
    ]
}

Alternate call

Place an existing call on hold and then retrieves a previously held call. This can also be used to place an existing call on hold and then answer to an alerting call at the same device.

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization

userId
required
string

The user having the two calls

callId
required
string

The ID of the call that should be put on hold

Request Body schema: application/json
stateToken
integer <int64>

The expected stateToken of the state at the server. If not matching, the request will fail.

targetCallId
string

The callId of the target call that should be retrieved/answered/added

targetStateToken
integer <int64>

The expected token of the state of target call at the server. If not matching, the request will fail.

Responses

Request samples

Content type
application/json
{
  • "stateToken": 487345453,
  • "targetCallId": "dd33dxw9",
  • "targetStateToken": 63772
}

Response samples

Content type
application/json
{
  • "stateToken": 487345453,
  • "callId": "aaa111bbb",
  • "userId": "bob@organization.org",
  • "remoteParty": {
    },
  • "conference": false,
  • "inbound": true,
  • "intruded": false,
  • "status": "HELD",
  • "muted": false,
  • "duration": 25,
  • "deviceIds": [
    ],
  • "actions": [
    ]
}

Answer call

Answer a call that is in the ringing state using a specific device. Note that it's not possible to perform this action for all devices. The call state will show which devices that can be used.

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization

userId
required
string

The user answering the call

callId
required
string

The ID of the call to answer

deviceId
required
string

The device used to answer the call

Request Body schema: application/json
targetUrl
string

The webhook url to monitor the call state for this call.

targetId
string

A unique id of the webhook. Required if the targetUrl is set.

publicTarget
boolean
Default: true

Indicates if the target node hosting the webhook is deployed on the same network segment as the service nodes or if callbacks needs to go through the edge http proxy

Responses

Callbacks

Request samples

Content type
application/json
Example

Answer a call and request updates using a public webhook url.

{}

Response samples

Content type
application/json
Example

Bob answers an incoming call from Alice in device with id +1555555. Call is not recorded.

{
  • "stateToken": 487345453,
  • "callId": "aaa111bbb",
  • "userId": "bob@organization.org",
  • "remoteParty": {
    },
  • "conference": false,
  • "inbound": true,
  • "intruded": false,
  • "status": "ACTIVE",
  • "muted": false,
  • "duration": 5,
  • "recording": true,
  • "recordingDuration": 5,
  • "deviceIds": [
    ],
  • "actions": [
    ]
}

Callback payload samples

Callback
POST: payload data will be sent
Content type
application/json
{
  • "stateToken": 487345453,
  • "callId": "aaa111bbb",
  • "userId": "alice@organization.org",
  • "remoteParty": {
    },
  • "conference": false,
  • "inbound": false,
  • "intruded": false,
  • "status": "INITIATED",
  • "muted": false,
  • "duration": 0,
  • "deviceIds": [
    ]
}

Terminate call

Hanging up (clear) an established call, reject (decline) a call that is in the ringing state or cancel an outbound ringing call.

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization

userId
required
string

The user deleting the call

callId
required
string

The ID of the call to delete

Responses

Hold call

Put the call on hold. Depending on the configuration of the server, music on hold may be played to the other party.

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization

userId
required
string

The user having the call to hold

callId
required
string

The ID of the call to hold

Request Body schema: application/json
stateToken
integer <int64>

The expected stateToken of the state at the server. If not matching, the request will fail.

Responses

Request samples

Content type
application/json
{
  • "stateToken": 487345453
}

Response samples

Content type
application/json
{
  • "stateToken": 487345453,
  • "callId": "aaa111bbb",
  • "userId": "alice@organization.org",
  • "remoteParty": {
    },
  • "conference": false,
  • "inbound": false,
  • "intruded": false,
  • "status": "HELD",
  • "muted": false,
  • "duration": 50,
  • "deviceIds": [
    ],
  • "actions": [
    ]
}

Leave ad-hoc conference

Leaving an ad-hoc conference allowing any remaining participants to continue the call. To terminate the conference, use the method to terminate a call.

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization

userId
required
string

The user having the ad-hoc conference call

callId
required
string

The ID of the ad-hoc conference call

Responses

Response samples

Content type
application/json
{
  • "stateToken": 48738853,
  • "callId": "xxx222yyy",
  • "userId": "alice@organization.org",
  • "conference": true,
  • "inbound": true,
  • "intruded": false,
  • "status": "TERMINATED",
  • "event": "LEFT_CONFERENCE",
  • "muted": false,
  • "duration": 0
}

Make call

Setup up call from a particular device. The device ID can be fetched from the UserDeviceInfo API. Successful completion of this request does not mean that the call is established, just that the device has successfully initiated the call.

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization

userId
required
string

The user performing the call

deviceId
required
string

The device used to perform the call

Request Body schema: application/json
destination
required
string

The target of the call. A SIP or tel URI.

targetUrl
string

The webhook url to monitor the call state for this call.

targetId
string

A unique id of the webhook. Required if the targetUrl is set.

publicTarget
boolean
Default: true

Indicates if the target node hosting the webhook is deployed on the same network segment as the service nodes or if callbacks needs to go through the edge http proxy

role
string

The user role that should be used when performing the call.

object (UserLineDTO)

The caller ID that should be used for the call.

type
string
Default: "BASIC"
Enum: "BASIC" "DIVERSION_BYPASS" "INTRUSION" "INTERCOM" "VOICEMAIL" "BARGE" "WHISPER" "MONITOR"

The extended type of the call.

Responses

Callbacks

Request samples

Content type
application/json
Example

Alice makes a call from her primary line to the external number +1444344.

{
  • "destination": "tel:+1444344",
  • "userLine": {
    }
}

Response samples

Content type
application/json
{
  • "stateToken": 487345453,
  • "callId": "aaa111bbb",
  • "userId": "alice@organization.org",
  • "remoteParty": {
    },
  • "conference": false,
  • "inbound": false,
  • "intruded": false,
  • "status": "INITIATED",
  • "muted": false,
  • "duration": 0,
  • "deviceIds": [
    ]
}

Callback payload samples

Callback
POST: payload data will be sent
Content type
application/json
{
  • "stateToken": 487345453,
  • "callId": "aaa111bbb",
  • "userId": "alice@organization.org",
  • "remoteParty": {
    },
  • "conference": false,
  • "inbound": false,
  • "intruded": false,
  • "status": "INITIATED",
  • "muted": false,
  • "duration": 0,
  • "deviceIds": [
    ]
}

Make consultation call

Setup up call re-using an existing call leg putting that call on-hold/in the background. This variant of the make call is useful for devices that do not support parallel calls. It's only possible to have one background call per device. If the device supports parallel calls, this API behaves the same way as makeCall. Successful completion of this request does not mean that the call is established, just that the device has successfully initiated the call. The make consultation call API is not supported if the existing call is transcoded.

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization

userId
required
string

The user performing the call

callId
required
string

The Id of the call that should be re-used

Request Body schema: application/json
destination
required
string

The target of the call. A SIP or tel URI.

targetUrl
string

The webhook url to monitor the call state for this call.

targetId
string

A unique id of the webhook. Required if the targetUrl is set.

publicTarget
boolean
Default: true

Indicates if the target node hosting the webhook is deployed on the same network segment as the service nodes or if callbacks needs to go through the edge http proxy

role
string

The user role that should be used when performing the call.

object (UserLineDTO)

The caller ID that should be used for the call.

type
string
Default: "BASIC"
Enum: "BASIC" "DIVERSION_BYPASS" "INTRUSION" "INTERCOM" "VOICEMAIL" "BARGE" "WHISPER" "MONITOR"

The extended type of the call.

Responses

Callbacks

Request samples

Content type
application/json
Example

Alice makes a call from her primary line to the external number +1444344.

{
  • "destination": "tel:+1444344",
  • "userLine": {
    }
}

Response samples

Content type
application/json
{
  • "stateToken": 487345453,
  • "callId": "aaa111bbb",
  • "userId": "alice@organization.org",
  • "remoteParty": {
    },
  • "conference": false,
  • "inbound": false,
  • "intruded": false,
  • "status": "INITIATED",
  • "muted": false,
  • "duration": 0,
  • "deviceIds": [
    ]
}

Callback payload samples

Callback
POST: payload data will be sent
Content type
application/json
{
  • "stateToken": 487345453,
  • "callId": "aaa111bbb",
  • "userId": "alice@organization.org",
  • "remoteParty": {
    },
  • "conference": false,
  • "inbound": false,
  • "intruded": false,
  • "status": "INITIATED",
  • "muted": false,
  • "duration": 0,
  • "deviceIds": [
    ]
}

Move call

Move the established call to another available device for the user. Should the call be on hold, then it will remain on hold in the new device.

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization

userId
required
string

The user having the call to move

callId
required
string

The ID of the call to move

deviceId
required
string

The device to move the call to

Request Body schema: application/json
stateToken
integer <int64>

The expected stateToken of the state at the server. If not matching, the request will fail.

Responses

Request samples

Content type
application/json
Example

Move a call to another device.

{ }

Response samples

Content type
application/json
{
  • "stateToken": 487345453,
  • "callId": "aaa111bbb",
  • "userId": "user@organization.org",
  • "remoteParty": {
    },
  • "participants": [
    ],
  • "conference": false,
  • "conferenceId": "34322",
  • "historyInfo": {
    },
  • "inbound": true,
  • "intruded": false,
  • "status": "RINGING",
  • "event": "FAILED",
  • "muted": true,
  • "eventDescription": "Call setup failed with status code 504",
  • "duration": 0,
  • "recordable": true,
  • "recording": true,
  • "recordingDuration": 0,
  • "externalRecording": true,
  • "externalRecordingDuration": 0,
  • "externalRecordingPaused": false,
  • "deviceIds": "[+1555555]",
  • "actions": "[{action: ANSWER, deviceIds: [+1555555]}]"
}

Mute call

Mute an ongoing call. Depending on the type of call this action may or may not be available.

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization

userId
required
string

The user having the call to mute

callId
required
string

The ID of the call to mute

Request Body schema: application/json
stateToken
integer <int64>

The expected stateToken of the state at the server. If not matching, the request will fail.

Responses

Request samples

Content type
application/json
{
  • "stateToken": 487345453
}

Response samples

Content type
application/json
{
  • "stateToken": 487345453,
  • "callId": "aaa111bbb",
  • "userId": "alice@organization.org",
  • "remoteParty": {
    },
  • "conference": false,
  • "inbound": false,
  • "intruded": false,
  • "status": "ACTIVE",
  • "event": "MUTED",
  • "muted": true,
  • "duration": 50,
  • "deviceIds": [
    ],
  • "actions": [
    ]
}

Park call

Park the call and make it available for other users, or the same user, to pick it up. The call is no longer belonging to the user, meaning that the Call ID is removed from the user's state.

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization

userId
required
string

The user having the call to park

callId
required
string

The ID of the call to park

Request Body schema: application/json
stateToken
integer <int64>

The expected stateToken of the state at the server. If not matching, the request will fail.

Responses

Request samples

Content type
application/json
{
  • "stateToken": 487345453
}

Response samples

Content type
application/json
{
  • "stateToken": 487345453,
  • "callId": "aaa111bbb",
  • "userId": "user@organization.org",
  • "remoteParty": {
    },
  • "participants": [
    ],
  • "conference": false,
  • "conferenceId": "34322",
  • "historyInfo": {
    },
  • "inbound": true,
  • "intruded": false,
  • "status": "RINGING",
  • "event": "FAILED",
  • "muted": true,
  • "eventDescription": "Call setup failed with status code 504",
  • "duration": 0,
  • "recordable": true,
  • "recording": true,
  • "recordingDuration": 0,
  • "externalRecording": true,
  • "externalRecordingDuration": 0,
  • "externalRecordingPaused": false,
  • "deviceIds": "[+1555555]",
  • "actions": "[{action: ANSWER, deviceIds: [+1555555]}]"
}

Pick up SIP call

Pickup a SIP call from a queue or a ringing call for another user using the specified device. The SIP dialog Id of the call must be known and the user must be configured to pick up another user calls.

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization

userId
required
string

The user picking up the call

deviceId
required
string

The device to use to pickup the call

Request Body schema: application/json
callId
required
string

The Call-ID of the SIP call (dialog)

earlyOnly
required
boolean

Indicate if the pickup should only be done in SIP early state. See RFC38961, section User Agent Client Behavior: Sending a Replaces Header

fromTag
required
string

The from tag of the SIP call (dialog)

toTag
required
string

The to tag of the SIP call (dialog)

targetUrl
string

The webhook url to monitor the call state for this call.

targetId
string

A unique id of the webhook. Required if the targetUrl is set.

publicTarget
boolean
Default: true

Indicates if the target node hosting the webhook is deployed on the same network segment as the service nodes or if callbacks needs to go through the edge http proxy

Responses

Callbacks

Request samples

Content type
application/json
{
  • "targetId": "my_callback_id",
  • "publicTarget": true,
  • "callId": "425928@bobster.example.org",
  • "toTag": "7743",
  • "fromTag": "6472",
  • "earlyOnly": true
}

Response samples

Content type
application/json
{
  • "stateToken": 487345453,
  • "callId": "aaa111bbb",
  • "userId": "user@organization.org",
  • "remoteParty": {
    },
  • "participants": [
    ],
  • "conference": false,
  • "conferenceId": "34322",
  • "historyInfo": {
    },
  • "inbound": true,
  • "intruded": false,
  • "status": "RINGING",
  • "event": "FAILED",
  • "muted": true,
  • "eventDescription": "Call setup failed with status code 504",
  • "duration": 0,
  • "recordable": true,
  • "recording": true,
  • "recordingDuration": 0,
  • "externalRecording": true,
  • "externalRecordingDuration": 0,
  • "externalRecordingPaused": false,
  • "deviceIds": "[+1555555]",
  • "actions": "[{action: ANSWER, deviceIds: [+1555555]}]"
}

Callback payload samples

Callback
POST: payload data will be sent
Content type
application/json
{
  • "stateToken": 487345453,
  • "callId": "aaa111bbb",
  • "userId": "alice@organization.org",
  • "remoteParty": {
    },
  • "conference": false,
  • "inbound": false,
  • "intruded": false,
  • "status": "INITIATED",
  • "muted": false,
  • "duration": 0,
  • "deviceIds": [
    ]
}

Remove participant from ad-hoc conference

Removing the participant {participantId} from the ad-hoc conference specified by {callId}.

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization

userId
required
string

The user performing the call

callId
required
string

The ID of the ad-hoc conference call

participantId
required
string

The ID of the participant to remove

Request Body schema: application/json
stateToken
integer <int64>

The expected stateToken of the state at the server. If not matching, the request will fail.

Responses

Request samples

Content type
application/json
{
  • "stateToken": 487345453
}

Response samples

Content type
application/json
{
  • "stateToken": 48738853,
  • "callId": "xxx111yyy",
  • "userId": "alice@organization.org",
  • "remoteParty": {
    },
  • "participants": [
    ],
  • "conference": true,
  • "inbound": true,
  • "intruded": false,
  • "status": "ACTIVE",
  • "event": "PARTICIPANT_LEFT",
  • "muted": false,
  • "duration": 5,
  • "externalRecording": true,
  • "externalRecordingDuration": 5,
  • "externalRecordingPaused": false,
  • "deviceIds": [
    ],
  • "actions": [
    ]
}

Resume call

Resume a call that previously was put on hold.

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization

userId
required
string

The user having the call to resume

callId
required
string

The ID of the call to resume

Request Body schema: application/json
stateToken
integer <int64>

The expected stateToken of the state at the server. If not matching, the request will fail.

Responses

Request samples

Content type
application/json
{
  • "stateToken": 487345453
}

Response samples

Content type
application/json
{
  • "stateToken": 487345453,
  • "callId": "aaa111bbb",
  • "userId": "bob@organization.org",
  • "remoteParty": {
    },
  • "conference": false,
  • "inbound": true,
  • "intruded": false,
  • "status": "ACTIVE",
  • "muted": false,
  • "duration": 80,
  • "externalRecording": true,
  • "externalRecordingDuration": 5,
  • "externalRecordingPaused": false,
  • "deviceIds": [
    ],
  • "actions": [
    ]
}

Send DTMF digits

A string of DTMF digits is sent within the call.

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization

userId
required
string

The user sending the DTMF digits

callId
required
string

The ID of the call to send the DTMF digits in

Request Body schema: application/json
stateToken
integer <int64>

The expected stateToken of the state at the server. If not matching, the request will fail.

digits
string

A string of DTMF digits, allowed values are 0-9, A-D, # or *.

Responses

Request samples

Content type
application/json
{
  • "stateToken": 487345453,
  • "digits": "5"
}

Response samples

Content type
application/json
{
  • "stateToken": 487345453,
  • "callId": "aaa111bbb",
  • "userId": "user@organization.org",
  • "remoteParty": {
    },
  • "participants": [
    ],
  • "conference": false,
  • "conferenceId": "34322",
  • "historyInfo": {
    },
  • "inbound": true,
  • "intruded": false,
  • "status": "RINGING",
  • "event": "FAILED",
  • "muted": true,
  • "eventDescription": "Call setup failed with status code 504",
  • "duration": 0,
  • "recordable": true,
  • "recording": true,
  • "recordingDuration": 0,
  • "externalRecording": true,
  • "externalRecordingDuration": 0,
  • "externalRecordingPaused": false,
  • "deviceIds": "[+1555555]",
  • "actions": "[{action: ANSWER, deviceIds: [+1555555]}]"
}

Transfer call

Transfer a call to a new destination. The call will be automatically unheld if it is currently on hold.

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization

userId
required
string

The user having the call to transfer

callId
required
string

The ID of the call to transfer

Request Body schema: application/json
destination
required
string

The target of the transfer. A SIP or tel URI.

stateToken
integer <int64>

The expected stateToken of the state at the server. If not matching, the request will fail.

blind
boolean
Default: false

Indicate if the transferred call should be automatically cleared after the transfer has been initiated

type
string
Default: "BASIC"
Enum: "BASIC" "VOICEMAIL" "CAMP_ON" "DIVERSION_BYPASS"

The extended type of the transfer.

Responses

Request samples

Content type
application/json
{
  • "stateToken": 487345453,
  • "blind": true,
  • "type": "CAMP_ON",
  • "destination": "tel:+15555"
}

Response samples

Content type
application/json
{
  • "stateToken": 487345453,
  • "callId": "aaa111bbb",
  • "userId": "user@organization.org",
  • "remoteParty": {
    },
  • "participants": [
    ],
  • "conference": false,
  • "conferenceId": "34322",
  • "historyInfo": {
    },
  • "inbound": true,
  • "intruded": false,
  • "status": "RINGING",
  • "event": "FAILED",
  • "muted": true,
  • "eventDescription": "Call setup failed with status code 504",
  • "duration": 0,
  • "recordable": true,
  • "recording": true,
  • "recordingDuration": 0,
  • "externalRecording": true,
  • "externalRecordingDuration": 0,
  • "externalRecordingPaused": false,
  • "deviceIds": "[+1555555]",
  • "actions": "[{action: ANSWER, deviceIds: [+1555555]}]"
}

Transfer call to another call that belongs to the user

A user having two separate calls can use the transfer method to connect the two parties the user is talking to. The two calls does not need to be active on the same device. Should either of the calls be on hold, it will automatically be unheld as the calls are connected. An attempt to update the caller Id to the transferred party will be made for the target call but depending on the device of the remote party, this may not succeed.

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization

userId
required
string

The user having the call to transfer

callId
required
string

The ID of the call to transfer

Request Body schema: application/json
targetCallId
required
string

The callId of the target call the transferred call should be transferred to.
Note: Transferring a call fails if the target call is not in a valid state. Transferring a call fails, for instance, if the target call is an ACD/ACD Light/Attendant/Hunt Group call and call distribution is in progress.

stateToken
integer <int64>

The expected stateToken of the state at the server. If not matching, the request will fail.

waitForAnswer
boolean

If the target call is in ringing state when transferring and waitForAnswer is false, then then the target call will be cancelled and a new call initiated towards the target. If waitForAnswer is true then the transfer will complete when the target call is answered, the transferred party will hear ringing prompt while waiting. The default value of the waitForAnswer property is false.

targetStateToken
integer <int64>

The expected stateToken of the state of the target call at the server. If not matching the request will fail.

Responses

Request samples

Content type
application/json
{
  • "stateToken": 487345453,
  • "targetCallId": "dd33dxw9",
  • "waitForAnswer": false,
  • "targetStateToken": 832211
}

Response samples

Content type
application/json
{
  • "stateToken": 487345453,
  • "callId": "aaa111bbb",
  • "userId": "user@organization.org",
  • "remoteParty": {
    },
  • "participants": [
    ],
  • "conference": false,
  • "conferenceId": "34322",
  • "historyInfo": {
    },
  • "inbound": true,
  • "intruded": false,
  • "status": "RINGING",
  • "event": "FAILED",
  • "muted": true,
  • "eventDescription": "Call setup failed with status code 504",
  • "duration": 0,
  • "recordable": true,
  • "recording": true,
  • "recordingDuration": 0,
  • "externalRecording": true,
  • "externalRecordingDuration": 0,
  • "externalRecordingPaused": false,
  • "deviceIds": "[+1555555]",
  • "actions": "[{action: ANSWER, deviceIds: [+1555555]}]"
}

Unmute call

Unmute a call that previously was muted.

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization

userId
required
string

The user having the call to unmute

callId
required
string

The ID of the call to unmute

Request Body schema: application/json
stateToken
integer <int64>

The expected stateToken of the state at the server. If not matching, the request will fail.

Responses

Request samples

Content type
application/json
{
  • "stateToken": 487345453
}

Response samples

Content type
application/json
{
  • "stateToken": 487345453,
  • "callId": "aaa111bbb",
  • "userId": "bob@organization.org",
  • "remoteParty": {
    },
  • "conference": false,
  • "inbound": true,
  • "intruded": false,
  • "status": "ACTIVE",
  • "event": "UNMUTED",
  • "muted": false,
  • "duration": 80,
  • "externalRecording": true,
  • "externalRecordingDuration": 5,
  • "externalRecordingPaused": false,
  • "deviceIds": [
    ],
  • "actions": [
    ]
}

Call Recording

The Call Recording API enables controlling of call recording for a user.
The API requires that the end-user has the license for Cloud CTI API.
Use the Call Recording API to:

  • Start recording of a call
  • Pause an ongoing recording
  • Resume a paused recording
  • Stop recording of a call
  • Discard an ongoing on-demand recording
  • Save an ongoing on-demand recording

Discard ongoing on-demand recording

If an ongoing on-demand call recording has been explicitly saved, the discard method should be invoked to revoke the save operation. Note that the call is still recorded but will be discarded at the end of the call unless the save operation is once again performed.

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization

userId
required
string

The user recording the call

callId
required
string

The ID of the call not to save

Request Body schema: application/json
stateToken
integer <int64>

The expected stateToken of the state at the server. If not matching, the request will fail.

Responses

Request samples

Content type
application/json
{
  • "stateToken": 487345453
}

Response samples

Content type
application/json
{
  • "stateToken": 487345453,
  • "callId": "aaa111bbb",
  • "userId": "bob@organization.org",
  • "remoteParty": {
    },
  • "conference": false,
  • "inbound": true,
  • "intruded": false,
  • "status": "ACTIVE",
  • "muted": false,
  • "duration": 200,
  • "externalRecording": true,
  • "externalRecordingDuration": 200,
  • "externalRecordingPaused": false,
  • "deviceIds": [
    ],
  • "actions": [
    ]
}

Pause

Pause an ongoing on-demand call recording. It depends on the configuration of the call recording service if this option is available for this user.

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization

userId
required
string

The user recording the call

callId
required
string

The ID of the call to pause recording for

Request Body schema: application/json
stateToken
integer <int64>

The expected stateToken of the state at the server. If not matching, the request will fail.

Responses

Request samples

Content type
application/json
{
  • "stateToken": 487345453
}

Response samples

Content type
application/json
{
  • "stateToken": 487345453,
  • "callId": "aaa111bbb",
  • "userId": "bob@organization.org",
  • "remoteParty": {
    },
  • "conference": false,
  • "inbound": true,
  • "intruded": false,
  • "status": "ACTIVE",
  • "muted": false,
  • "duration": 300,
  • "externalRecording": true,
  • "externalRecordingDuration": 300,
  • "externalRecordingPaused": false,
  • "deviceIds": [
    ],
  • "actions": [
    ]
}

Resume

Resume a paused recording.

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization

userId
required
string

The user that records the call

callId
required
string

The ID of the call to resume recording for

Request Body schema: application/json
stateToken
integer <int64>

The expected stateToken of the state at the server. If not matching, the request will fail.

Responses

Request samples

Content type
application/json
{
  • "stateToken": 487345453
}

Response samples

Content type
application/json
{
  • "stateToken": 487345453,
  • "callId": "aaa111bbb",
  • "userId": "bob@organization.org",
  • "remoteParty": {
    },
  • "conference": false,
  • "inbound": true,
  • "intruded": false,
  • "status": "ACTIVE",
  • "muted": false,
  • "duration": 300,
  • "externalRecording": true,
  • "externalRecordingDuration": 250,
  • "externalRecordingPaused": false,
  • "deviceIds": [
    ],
  • "actions": [
    ]
}

Save ongoing on-demand recording

If on-demand call recording is enabled for this call, which depends on the configuration of the user, then the whole call will be recorded but the recording must be explicitly saved through the invocation of this method or the recording will be discarded at the end of the call.

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization

userId
required
string

The user recording the call

callId
required
string

The ID of the call to save

Request Body schema: application/json
stateToken
integer <int64>

The expected stateToken of the state at the server. If not matching, the request will fail.

Responses

Request samples

Content type
application/json
{
  • "stateToken": 487345453
}

Response samples

Content type
application/json
{
  • "stateToken": 487345453,
  • "callId": "aaa111bbb",
  • "userId": "bob@organization.org",
  • "remoteParty": {
    },
  • "conference": false,
  • "inbound": true,
  • "intruded": false,
  • "status": "ACTIVE",
  • "muted": false,
  • "duration": 80,
  • "externalRecording": true,
  • "externalRecordingDuration": 80,
  • "externalRecordingPaused": false,
  • "deviceIds": [
    ],
  • "actions": [
    ]
}

Start

If it's possible to record this call, which depends on the configuration of the user, then the start method will initate the recording. Any part of the call before the start method is performed will not be part of the recording.

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization

userId
required
string

The user that should record the call

callId
required
string

The ID of the call to record

Request Body schema: application/json
stateToken
integer <int64>

The expected stateToken of the state at the server. If not matching, the request will fail.

Responses

Request samples

Content type
application/json
{
  • "stateToken": 487345453
}

Response samples

Content type
application/json
{
  • "stateToken": 487345453,
  • "callId": "aaa111bbb",
  • "userId": "bob@organization.org",
  • "remoteParty": {
    },
  • "conference": false,
  • "inbound": true,
  • "intruded": false,
  • "status": "ACTIVE",
  • "muted": false,
  • "duration": 100,
  • "recording": true,
  • "recordingDuration": 5,
  • "deviceIds": [
    ],
  • "actions": [
    ]
}

Stop

If the start method has previously been performed to initiate call recording, then the stop method is available to end the call recording.

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization

userId
required
string

The user that should record the call

callId
required
string

The ID of the call to stop recording

Request Body schema: application/json
stateToken
integer <int64>

The expected stateToken of the state at the server. If not matching, the request will fail.

Responses