Download OpenAPI specification:Download
API documentation and description for the Dstny Core User API.
To access an API interface in the Dstny Core an authentication, based on the API tickets, needs to be done.
A ticket can be granted for one or several API scopes
These APIs can only be reached from a user’s token. For example, a superuser cannot use the Contact search API. The token is obtained by creating a ticket in the Dstny Core and is valid for a year.
The authentication is done by setting Bearer {token} as the value in Authorization in the header.
The Core API uses the following HTTP methods for manipulating data
HTTP clients who are unable to use PUT or DELETE HTTP operations should translate PUT and DELETE to POST operations with an additional X-HTTP-Method-Override header, for example:
All requests must have the HTTP-headers Content-Type and Accept set to an applicable value according to the respective operation, e.g. application/json or application/xml.
When using non-7-bit ASCII characters in URIs, they need to be percent-encoded by using UTF-8. For example, to create a user group named mötley crüe, use the following URL:
Never use a newline (line break) within a name. The newlines will then become part of the name. This applies to all data; names and functions. Boolean data types only have the legal literals in lower case (true, false).
It is preferred to use JSON instead of XML to access all APIs. For example:
New operations have primarily support for JSON, older operations have support for both JSON and XML. XML shall be seen as a deprecated format and will be removed in the coming releases. Only Core JSON version 2 is supported from 5.1, “jsonver=2” can still be used but is not needed.
Core returns the following HTTP error response codes when encountering problems:
400 Bad Request – When receiving an invalid request URI, invalid HTTP header, or invalid message body. Usually including a body consisting of validation result.
401 Not Authorized – When missing authorization credentials or not authorized to access the requested resource.
403 Forbidden – The server authorizes the request, but it is forbidden to be fulfilled. The authorization will not help. The current authorization context does not allow the request.
404 Found – The server does not find the resource that matches the request URI.
405 Method Not Allowed – The method specified in the request is not allowed for the resource identified by the request.
406 Not Acceptable – The request does not meet the response that the method can provide. An example is when Accept header demands XML while the method can provide only JSON.
409 Conflict – The request could not be completed due to a conflict with the current state of the resource. This code is only allowed in situations where it is expected that the user might be able to resolve the conflict and resubmit the request.
500 Internal Server Error – This is the default code that is used for all unrecognized errors.
501 Not Implemented – The request was valid but has not yet been implemented by Core.
503 Service Unavailable – A Management Node responds with a 503 response code along with a custom header X-Telepo-Server-Status, when the node is not in READY state. The below are the possible values in a 503 response:
- STARTING – The node is starting
- STARTED – The node is started, but has not reached the READY state (e.g. Management Node does not know to which Service Node an organization domain belongs)
- SHUTTING_DOWN – The node is shutting down
- MAINTENANCE – The node is put in maintenance
Core may add a Warning header with warning code 703 to the response in case of errors. The header text will contain a log token in the form “Error occurred, see {token}“. More information will be available in the server log by searching for this token.
Depending on the operation a response body may be returned upon a successful request. See the respective operation for a description of the possible response structure. Example JSON for GET http://{base url}/api/contacts/list/company.com/john?query=doe using Content-Type: application/json:
{
"query" : "doe",
"contact" : [ {
"id" : "jane@company.com",
"firstname" : "Jane",
"lastname" : "Doe",
"company" : "Company 0120",
"presence" : { },
"inlist" : true,
"type" : "SHORTCUT",
"vcard" : 2,
"contactStatus" : "FAVORITE",
"preferredNumber" : "+1234567001"
}, {
"id" : "mac@company.com",
"firstname" : "Mac",
"lastname" : "Doe",
"company" : "Company 0120",
"presence" : { },
"inlist" : false,
"type" : "DIRECTORY",
"vcard" : 1,
"contactStatus" : "CONTACT",
"preferredNumber" : "+1234567004"
} ]
}
When Core returns an error response as a result of invalid input data, depending on what is set in the Accept header, it returns JSON or XML describing the reason for the error. Example JSON for validation errors http://{base url}/api/contacts/list/company.com/john?query=doe using Content-Type: application/json:
{
"field":[
{
"fieldName":"{value}",
"code":"{value}",
"description":"{value}",
"name":"{value}"
}
]
}
where {value} is replaced by:
All JSON GET requests must have the HTTP header Accept: application/json. Example commands for getting results in JSON:
curl -s -H "Accept: application/json" -H "Authorization: Bearer 2.VDo4YFlZjZkNGJmOTQ2Mzg2" 'http://{base url}/api/admin/user/domain.com'
wget -qO- --header="Accept": application/json" --header="Authorization: Bearer 2.VDo4YFlZjZkNGJmOTQ2Mzg2" 'http://{base url}/api/admin/user/domain.com'
If a body is used, the request must have the HTTP header Content-Type: application/json. An example command for using JSON with POST:
curl -s -X POST -H "Accept: application/json" -H "Content- Type: application/json" -H "Authorization: Bearer 2.VDo4YFlZjZkNGJmOTQ2Mzg2" -d'{}' 'http://{base url}/api/...'
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:
Retrieve information about a specific ACD/Attendant group for a user.
NOTE: This method is DEPRECATED and will be removed in future releases.
domain required | string |
user required | string |
group required | integer <int64> |
{- "id": 35,
- "domain": "sampleorg.com",
- "name": "Customer services",
- "type": "ACD",
- "isLoggedIn": true,
- "isNightMode": true,
- "agents": {
- "id": "jane@example.org",
- "firstName": "Jane",
- "activity": null,
- "lastName": "Doe",
- "skillLevel": 3,
- "isLoggedIn": false,
- "isAvailable": true
}, - "roles": [
- {
- "id": null,
- "name": null,
- "stateName": null
}
], - "statistic": {
- "numberOfLoggedInAgents": 6,
- "numberOfFreeAgents": 5,
- "numberOfCallsInQueue": 3
}, - "isAllowUsingFunctionNumber": true,
- "distributionType": null
}
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.
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 |
ignoreStatistics required | boolean Don't include statistics and immediately return an empty response |
{- "id": 5,
- "domain": "example.org",
- "name": "TestAttendantGroup",
- "type": "ATTENDANT",
- "loggedIn": true,
- "nightMode": false,
- "agents": [
- {
- "id": "jane@example.org",
- "firstName": "Jane",
- "activity": "Available",
- "lastName": "Doe",
- "skillLevel": 3,
- "isLoggedIn": true,
- "isAvailable": true
}, - {
- "id": "agent4@example.org",
- "firstName": "Agent",
- "activity": "Available",
- "lastName": "Four",
- "skillLevel": 3,
- "isLoggedIn": false,
- "isAvailable": true
}
], - "roles": [
- {
- "type": "AGENT"
}
], - "statistic": {
- "numberOfLoggedInAgents": 1,
- "numberOfFreeAgents": 1,
- "numberOfCallsInQueue": 0
}, - "allowUsingFunctionNumber": true
}
Retrieve information about a specific ACD/ACD Light/Attendant group for a user. It is possible to filter out the statistics.
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 |
ignoreStatistics | boolean Don't include statistics and immediately return an empty response |
{- "id": 5,
- "domain": "example.org",
- "name": "TestAttendantGroup",
- "type": "ATTENDANT",
- "loggedIn": true,
- "nightMode": false,
- "agents": [
- {
- "id": "jane@example.org",
- "firstName": "Jane",
- "activity": "Available",
- "lastName": "Doe",
- "skillLevel": 3,
- "isLoggedIn": true,
- "isAvailable": true
}, - {
- "id": "agent4@example.org",
- "firstName": "Agent",
- "activity": "Available",
- "lastName": "Four",
- "skillLevel": 3,
- "isLoggedIn": false,
- "isAvailable": true
}
], - "roles": [
- {
- "type": "AGENT"
}
], - "statistic": {
- "numberOfLoggedInAgents": 1,
- "numberOfFreeAgents": 1,
- "numberOfCallsInQueue": 0
}, - "allowUsingFunctionNumber": true,
- "distributionType": "PRIORITY"
}
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.
domain required | string The domain of the user's organization |
user required | string The user's id |
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. |
{- "groups": [
- {
- "id": 21,
- "domain": "example.org",
- "name": "Acd group 1",
- "type": "ACD",
- "loggedIn": false,
- "nightMode": false,
- "agents": [
- {
- "id": "jane@example.org",
- "firstName": "Jane",
- "activity": "Available",
- "lastName": "Doe",
- "skillLevel": 3,
- "isLoggedIn": false,
- "isAvailable": true
}, - {
- "id": "john@example.org",
- "firstName": "John",
- "activity": "Available",
- "lastName": "Doe",
- "skillLevel": 3,
- "isLoggedIn": false,
- "isAvailable": true
}, - {
- "id": "agent3@example.org",
- "firstName": "Agent",
- "activity": "Available",
- "lastName": "Three",
- "skillLevel": 3,
- "isLoggedIn": false,
- "isAvailable": true
}
], - "roles": [
- {
- "type": "AGENT"
}
], - "statistic": {
- "numberOfLoggedInAgents": 0,
- "numberOfFreeAgents": 0,
- "numberOfCallsInQueue": 0
}, - "allowUsingFunctionNumber": false
}, - {
- "id": 5,
- "domain": "example.org",
- "name": "TestAttendantGroup",
- "type": "ATTENDANT",
- "loggedIn": true,
- "nightMode": false,
- "agents": [
- {
- "id": "jane@example.org",
- "firstName": "Jane",
- "activity": "Available",
- "lastName": "Doe",
- "skillLevel": 3,
- "isLoggedIn": true,
- "isAvailable": true
}, - {
- "id": "agent4@example.org",
- "firstName": "Agent",
- "activity": "Available",
- "lastName": "Four",
- "skillLevel": 3,
- "isLoggedIn": false,
- "isAvailable": true
}
], - "roles": [
- {
- "type": "AGENT"
}
], - "statistic": {
- "numberOfLoggedInAgents": 1,
- "numberOfFreeAgents": 1,
- "numberOfCallsInQueue": 0
}, - "allowUsingFunctionNumber": true
}, - {
- "id": 25,
- "domain": "example.org",
- "name": "Acd group 2",
- "type": "ACD_LIGHT",
- "loggedIn": false,
- "nightMode": false,
- "agents": [
- {
- "id": "jane@example.org",
- "firstName": "Jane",
- "activity": "Available",
- "lastName": "Doe",
- "skillLevel": 3,
- "isLoggedIn": false,
- "isAvailable": true
}, - {
- "id": "john@example.org",
- "firstName": "John",
- "activity": "Available",
- "lastName": "Doe",
- "skillLevel": 3,
- "isLoggedIn": false,
- "isAvailable": true
}, - {
- "id": "agent3@example.org",
- "firstName": "Agent",
- "activity": "Available",
- "lastName": "Three",
- "skillLevel": 3,
- "isLoggedIn": false,
- "isAvailable": true
}
], - "roles": [
- {
- "type": "AGENT"
}
], - "statistic": {
- "numberOfLoggedInAgents": 2,
- "numberOfFreeAgents": 1,
- "numberOfCallsInQueue": 0
}, - "allowUsingFunctionNumber": false
}
]
}
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.
domain required | string The domain of the user's organization |
user required | string The user's id |
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. |
{- "groups": [
- {
- "id": 21,
- "domain": "example.org",
- "name": "Acd group 1",
- "type": "ACD",
- "loggedIn": false,
- "nightMode": false,
- "agents": [
- {
- "id": "jane@example.org",
- "firstName": "Jane",
- "activity": "Available",
- "lastName": "Doe",
- "skillLevel": 3,
- "isLoggedIn": false,
- "isAvailable": true
}, - {
- "id": "john@example.org",
- "firstName": "John",
- "activity": "Available",
- "lastName": "Doe",
- "skillLevel": 3,
- "isLoggedIn": false,
- "isAvailable": true
}, - {
- "id": "agent3@example.org",
- "firstName": "Agent",
- "activity": "Available",
- "lastName": "Three",
- "skillLevel": 3,
- "isLoggedIn": false,
- "isAvailable": true
}
], - "roles": [
- {
- "type": "AGENT"
}
], - "statistic": {
- "numberOfLoggedInAgents": 0,
- "numberOfFreeAgents": 0,
- "numberOfCallsInQueue": 0
}, - "allowUsingFunctionNumber": false,
- "distributionType": "SKILLS"
}, - {
- "id": 5,
- "domain": "example.org",
- "name": "TestAttendantGroup",
- "type": "ATTENDANT",
- "loggedIn": true,
- "nightMode": false,
- "agents": [
- {
- "id": "jane@example.org",
- "firstName": "Jane",
- "activity": "Available",
- "lastName": "Doe",
- "skillLevel": 3,
- "isLoggedIn": true,
- "isAvailable": true
}, - {
- "id": "agent4@example.org",
- "firstName": "Agent",
- "activity": "Available",
- "lastName": "Four",
- "skillLevel": 3,
- "isLoggedIn": false,
- "isAvailable": true
}
], - "roles": [
- {
- "type": "AGENT"
}
], - "statistic": {
- "numberOfLoggedInAgents": 1,
- "numberOfFreeAgents": 1,
- "numberOfCallsInQueue": 0
}, - "allowUsingFunctionNumber": true,
- "distributionType": "PRIORITY"
}, - {
- "id": 25,
- "domain": "example.org",
- "name": "Acd group 2",
- "type": "ACD_LIGHT",
- "loggedIn": false,
- "nightMode": false,
- "agents": [
- {
- "id": "jane@example.org",
- "firstName": "Jane",
- "activity": "Available",
- "lastName": "Doe",
- "skillLevel": 3,
- "isLoggedIn": false,
- "isAvailable": true
}, - {
- "id": "john@example.org",
- "firstName": "John",
- "activity": "Available",
- "lastName": "Doe",
- "skillLevel": 3,
- "isLoggedIn": false,
- "isAvailable": true
}, - {
- "id": "agent3@example.org",
- "firstName": "Agent",
- "activity": "Available",
- "lastName": "Three",
- "skillLevel": 3,
- "isLoggedIn": false,
- "isAvailable": true
}
], - "roles": [
- {
- "type": "AGENT"
}
], - "statistic": {
- "numberOfLoggedInAgents": 2,
- "numberOfFreeAgents": 1,
- "numberOfCallsInQueue": 0
}, - "allowUsingFunctionNumber": false,
- "distributionType": "PRIORITY"
}
]
}
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.
domain required | string |
user required | string |
group required | integer <int64> |
agent required | string |
action | string |
logout | string |
{- "id": 35,
- "domain": "sampleorg.com",
- "name": "Customer services",
- "type": "ACD",
- "isLoggedIn": true,
- "isNightMode": true,
- "agents": {
- "id": "jane@example.org",
- "firstName": "Jane",
- "activity": null,
- "lastName": "Doe",
- "skillLevel": 3,
- "isLoggedIn": false,
- "isAvailable": true
}, - "roles": [
- {
- "id": null,
- "name": null,
- "stateName": null
}
], - "statistic": {
- "numberOfLoggedInAgents": 6,
- "numberOfFreeAgents": 5,
- "numberOfCallsInQueue": 3
}, - "isAllowUsingFunctionNumber": true,
- "distributionType": null
}
To log in/log out an agent or attendant of an ACD/Attendant group
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 |
action required | string Enum: "login" "logout" Example: action=login The action to perform |
"string"
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:
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.
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 |
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. |
olderThan | string If provided, only return group call log items with ID smaller than this. |
limit | string If stated, return no more than this amount of group call log items |
{- "generatedAt": "2018-05-26T13:00:30Z",
- "flushCache": true,
- "hintCount": 35,
- "callCountAnswered": 12,
- "callCountForwarded": 12,
- "callCountMissed": 12,
- "callLogItem": [
- {
- "itemId": 15,
- "groupId": 35,
- "groupOrgId": null,
- "callCount": 35,
- "itemType": "ANSWERED",
- "forwardReason": "NO_AGENTS",
- "startTime": "2018-05-26T13:00:30Z",
- "callDuration": 20,
- "queueDuration": 6,
- "callMetaData": null,
- "diversionNumber": "1555054123",
- "callerNumber": "+46887654321",
- "callbackToNumber": "+46887654123",
- "agent": {
- "name": "Jane Doe",
- "number": "+1555123445",
- "userId": "jdoe"
}, - "forwardedTo": {
- "name": "Joe Smith",
- "number": "1555054222"
}, - "handledStatus": {
- "state": "INPROGRESS",
- "agent": {
- "name": "Jane Doe",
- "number": "+1555123445",
- "userId": "jdoe"
}, - "timeStamp": "2018-05-26T15:30:30Z",
- "note": "Wants to be called back on friday"
}, - "noteIncluded": true
}
]
}
Get call log items for all ACD/Attendant groups available for the user.
domain required | string The domain of the user |
user required | string The ID of the user |
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. |
olderThan | string If provided, only return group call log items with ID smaller than this. |
limit | string If stated, return no more than this amount of group call log items |
{- "generatedAt": "2018-05-26T13:00:30Z",
- "flushCache": true,
- "hintCount": 35,
- "callCountAnswered": 12,
- "callCountForwarded": 12,
- "callCountMissed": 12,
- "callLogItem": [
- {
- "itemId": 15,
- "groupId": 35,
- "groupOrgId": null,
- "callCount": 35,
- "itemType": "ANSWERED",
- "forwardReason": "NO_AGENTS",
- "startTime": "2018-05-26T13:00:30Z",
- "callDuration": 20,
- "queueDuration": 6,
- "callMetaData": null,
- "diversionNumber": "1555054123",
- "callerNumber": "+46887654321",
- "callbackToNumber": "+46887654123",
- "agent": {
- "name": "Jane Doe",
- "number": "+1555123445",
- "userId": "jdoe"
}, - "forwardedTo": {
- "name": "Joe Smith",
- "number": "1555054222"
}, - "handledStatus": {
- "state": "INPROGRESS",
- "agent": {
- "name": "Jane Doe",
- "number": "+1555123445",
- "userId": "jdoe"
}, - "timeStamp": "2018-05-26T15:30:30Z",
- "note": "Wants to be called back on friday"
}, - "noteIncluded": true
}
]
}
List ACD/Attendant groups available to the user, and the user's current login state.
domain required | string The domain of the user |
user required | string The ID of the user |
{- "group": [
- {
- "id": 35,
- "domain": "sampleorg.com",
- "name": "customer_acd",
- "type": "ACD",
- "loggedIn": true,
- "nightMode": false,
- "loggedInAgents": 4,
- "freeAgents": 3,
- "callsWaiting": 1
}
]
}
List group call log items assigned to a user.
domain required | string The domain of the user |
user required | string The ID of the user |
{- "generatedAt": "2018-05-26T13:00:30Z",
- "flushCache": true,
- "hintCount": 35,
- "callCountAnswered": 12,
- "callCountForwarded": 12,
- "callCountMissed": 12,
- "callLogItem": [
- {
- "itemId": 15,
- "groupId": 35,
- "groupOrgId": null,
- "callCount": 35,
- "itemType": "ANSWERED",
- "forwardReason": "NO_AGENTS",
- "startTime": "2018-05-26T13:00:30Z",
- "callDuration": 20,
- "queueDuration": 6,
- "callMetaData": null,
- "diversionNumber": "1555054123",
- "callerNumber": "+46887654321",
- "callbackToNumber": "+46887654123",
- "agent": {
- "name": "Jane Doe",
- "number": "+1555123445",
- "userId": "jdoe"
}, - "forwardedTo": {
- "name": "Joe Smith",
- "number": "1555054222"
}, - "handledStatus": {
- "state": "INPROGRESS",
- "agent": {
- "name": "Jane Doe",
- "number": "+1555123445",
- "userId": "jdoe"
}, - "timeStamp": "2018-05-26T15:30:30Z",
- "note": "Wants to be called back on friday"
}, - "noteIncluded": true
}
]
}
List call log items assigned to a user from a certain distribution group.
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 |
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 |
{- "generatedAt": "2018-05-26T13:00:30Z",
- "flushCache": true,
- "hintCount": 35,
- "callCountAnswered": 12,
- "callCountForwarded": 12,
- "callCountMissed": 12,
- "callLogItem": [
- {
- "itemId": 15,
- "groupId": 35,
- "groupOrgId": null,
- "callCount": 35,
- "itemType": "ANSWERED",
- "forwardReason": "NO_AGENTS",
- "startTime": "2018-05-26T13:00:30Z",
- "callDuration": 20,
- "queueDuration": 6,
- "callMetaData": null,
- "diversionNumber": "1555054123",
- "callerNumber": "+46887654321",
- "callbackToNumber": "+46887654123",
- "agent": {
- "name": "Jane Doe",
- "number": "+1555123445",
- "userId": "jdoe"
}, - "forwardedTo": {
- "name": "Joe Smith",
- "number": "1555054222"
}, - "handledStatus": {
- "state": "INPROGRESS",
- "agent": {
- "name": "Jane Doe",
- "number": "+1555123445",
- "userId": "jdoe"
}, - "timeStamp": "2018-05-26T15:30:30Z",
- "note": "Wants to be called back on friday"
}, - "noteIncluded": true
}
]
}
Log in a user to a distribution group.
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 |
ignoreStatistics | boolean Don't include statistics and immediately return an empty response. |
{- "group": [
- {
- "id": 35,
- "domain": "sampleorg.com",
- "name": "customer_acd",
- "type": "ACD",
- "loggedIn": true,
- "nightMode": false,
- "loggedInAgents": 4,
- "freeAgents": 3,
- "callsWaiting": 1
}
]
}
Log out a user from a distribution group.
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 |
ignoreStatistics | boolean Don't include statistics and immediately return an empty response. |
{- "group": [
- {
- "id": 35,
- "domain": "sampleorg.com",
- "name": "customer_acd",
- "type": "ACD",
- "loggedIn": true,
- "nightMode": false,
- "loggedInAgents": 4,
- "freeAgents": 3,
- "callsWaiting": 1
}
]
}
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.
domain required | string The domain of the user |
user required | string The ID of the user |
Assign a call in a group call log to a user.
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 |
state | any Enum: "UNHANDLED" "INPROGRESS" "HANDLED" The handled-state of this call. |
note | any If applicable, a note that is attached to the call |
{- "state": "INPROGRESS",
- "note": "Wants to be called back on friday"
}
{- "itemId": 15,
- "groupId": 35,
- "groupOrgId": null,
- "callCount": 35,
- "itemType": "ANSWERED",
- "forwardReason": "NO_AGENTS",
- "startTime": "2018-05-26T13:00:30Z",
- "callDuration": 20,
- "queueDuration": 6,
- "callMetaData": null,
- "diversionNumber": "1555054123",
- "callerNumber": "+46887654321",
- "callbackToNumber": "+46887654123",
- "agent": {
- "name": "Jane Doe",
- "number": "+1555123445",
- "userId": "jdoe"
}, - "forwardedTo": {
- "name": "Joe Smith",
- "number": "1555054222"
}, - "handledStatus": {
- "state": "INPROGRESS",
- "agent": {
- "name": "Jane Doe",
- "number": "+1555123445",
- "userId": "jdoe"
}, - "timeStamp": "2018-05-26T15:30:30Z",
- "note": "Wants to be called back on friday"
}, - "noteIncluded": true
}
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:
Retrieve the queue statistics for an organization.
domain required | string The domain queue statistics shall be fetched for |
{- "queue": [
- {
- "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": [
- {
- "name": "Available",
- "count": 1
}
]
}
]
}
Retrieve the queue statistics for an organization.
NOTE: This method is DEPRECATED since 5.1 and will be removed in future releases.
domain required | string The domain queue statistics shall be fetched for |
{- "queue": [
- {
- "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": [
- {
- "name": "Available",
- "count": 1
}
]
}
]
}
Retrieve queue statistics for a distribution group.
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 |
{- "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": [
- {
- "name": "Available",
- "count": 1
}
]
}
Retrieve queue statistics for a user who is authorized to supervise specific groups.
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 |
includeFederation | boolean If queue statistics from federated organizations shall be included (default false) |
{- "queue": [
- {
- "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": [
- {
- "name": "Available",
- "count": 1
}
]
}
]
}
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.
domain required | string The domain queue statistics shall be fetched for |
user required | string The username of the user accessing the API |
{- "queue": [
- {
- "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": [
- {
- "name": "Available",
- "count": 1
}
]
}
]
}
The Call Recording Control API is used to manage UC analytics/Generic call recording.
Use the Call Recording API to:
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.
domain required | string The organization domain. |
user required | string The user ID without domain suffix. |
[- {
- "id": "173:8635322",
- "deviceType": "MOBILE_VOIP",
- "mobileNumber": "+4676123123",
- "isLocalDevice": true,
- "displayName": "bob",
- "number": "+466456456",
- "calledNumber": "456456",
- "contactId": "bob@bob.com",
- "isSaved": true,
- "isPaused": true,
- "allowedActions": [
- "PAUSE",
- "SAVE"
], - "duration": 15,
- "recordDuration": 15,
- "callId": "Sei8BS7D02h0Sik3q1RoGw"
}, - {
- "id": "177:8635322",
- "deviceType": "EXTERNAL_PBX",
- "mobileNumber": "+4676321321",
- "isLocalDevice": true,
- "displayName": "john",
- "number": "+468345345",
- "calledNumber": "345345",
- "contactId": "john@john.com",
- "isSaved": true,
- "isPaused": true,
- "allowedActions": [
- "PAUSE",
- "SAVE"
], - "duration": 15,
- "recordDuration": 15,
- "callId": "Sei0BS8D02h0Sik3q1RoGw"
}
]
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.
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. |
action required | string Enum: "SAVE" "DISCARD" "PAUSE" "RESUME" The action to perform. |
{- "field": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": null,
- "name": "baduser@baddomain.com"
}
], - "warning": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": null,
- "name": "baduser@baddomain.com"
}
], - "generated-id": null
}
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:
Cancel an ongoing attended call transfer.
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. |
Get the status of an ongoing call transfer.
domain required | string The domain of the organization the user belongs to. |
user required | string The user performing the transfer. |
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": {
- "transferStartTime": 1685537882186,
- "type": "BLIND_TRANSFER",
- "id": "5",
- "destination": "+9633996603"
}
}
Transfer a mobile call to the specified number.
domain required | string The domain of the organization the user belongs to. |
user required | string The user performing the transfer. |
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, |
destination required | string The destination number for the transfer. |
{- "transferId": {
- "transferStartTime": 0,
- "id": "5"
}
}
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://{base url}/api/calls/current/foo.com/alice/mobile/bob@foo.com?role=PRIVATE
POST http://{base url}/api/calls/current/foo.com/alice/mobile/bob@foo.com?role=PRIVATE
POST http://{base url}/api/calls/current/foo.com/alice/mobile/%2B468123456789?role=PRIVATE
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 |
cid required | string can be one of the following: receiving_user - the receiving users URL encoded answerplace. For instance: targetname@yourdomain.com. |
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. |
{- "field": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": null,
- "name": "baduser@baddomain.com"
}
], - "warning": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": null,
- "name": "baduser@baddomain.com"
}
], - "generated-id": null
}
The Line State API is used to manage a user's line state.
Use the Line State API to:
Fetches a specific line state for a user.
domain required | string The domain of the organization the user belongs to |
userId required | string The user id |
externalId required | string The external id |
{- "expiresOn": "2020-03-10T11:05:00+01"
}
Updates a line state for a user and external id. If there is no current line state, it will be created.
domain required | string The domain of the organization the user belongs to |
userId required | string The user id |
externalId required | string The external id |
{- "expiresOn": "2020-03-10T11:05:00+01"
}
Creates a line state for a user and external id. If the line state already exists, it will be updated.
domain required | string The domain of the organization the user belongs to |
userId required | string The user id |
externalId required | string The external id |
{- "expiresOn": "2020-03-10T11:05:00+01"
}
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:
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.
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 |
delete | boolean Indicates if an item should be marked or unmarked for deletion |
Read a specific communication log item.
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 |
deleted | boolean If true, fetch deleted items only |
markAsDelete | boolean If true, fetch items that are marked as deleted only |
This example shows an incoming call.
{- "historyItems": [
- {
- ".CallDTO": {
- "itemId": 1245,
- "startTime": "2020-10-05T11:09:29Z",
- "remoteParty": {
- "contactId": "jane.doe@example.com",
- "number": "+1555123001",
- "displayName": "Jane Doe"
}, - "itemType": "INCOMING_CALL",
- "isSeen": true,
- "duration": 145
}
}
], - "flushCache": true,
- "generatedAt": "2020-10-05T19:59:21Z",
- "hintCount": 1
}
Mark a specific communication log item as seen and/or played.
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 |
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 |
Delete a specific communication log item.
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 |
updateCallItem required | boolean Indicates if the related call item should be deleted too |
List communication log items for a user. Use either since/olderThan or sinceTime/untilTime parameters to specify an interval of items.
domain required | string The domain of the user accessing the API |
userId required | string The username of the user accessing the API |
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. |
sinceTime | string Fetch items whose startTime occurred after this value. |
untilTime | string Fetch items whose startTime occurred before this value. |
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 |
This example shows calls that are Incoming, Outgoing or Missed ones.
{- "historyItems": [
- {
- ".CallDTO": {
- "itemId": 1245,
- "startTime": "2020-10-05T11:09:29Z",
- "remoteParty": {
- "contactId": "jane.doe@example.com",
- "number": "+1555123001",
- "displayName": "Jane Doe"
}, - "itemType": "INCOMING_CALL",
- "isSeen": true,
- "duration": 145
}
}, - {
- ".CallDTO": {
- "itemId": 1246,
- "startTime": "2020-10-05T14:06:20Z",
- "remoteParty": {
- "contactId": "jane.doe@example.com",
- "number": "+1555123001",
- "displayName": "Jane Doe"
}, - "itemType": "OUTGOING_CALL",
- "isSeen": true,
- "duration": 25
}
}, - {
- ".CallDTO": {
- "itemId": 1247,
- "startTime": "2020-10-05T15:16:54Z",
- "remoteParty": {
- "contactId": "jane.doe@example.com",
- "number": "+1555123001",
- "displayName": "Jane Doe"
}, - "itemType": "MISSED_CALL",
- "isSeen": false,
- "duration": 0
}
}
], - "flushCache": true,
- "generatedAt": "2020-10-05T19:58:21Z",
- "hintCount": 3
}
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.
userId required | string The username of the user accessing the API |
domain required | string The domain of the user accessing the API |
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 |
All requested items are existing in the system. So response body carries nothing.
Delete a number of specific communication log items.
userId required | string The username of the user accessing the API |
domain required | string The domain of the user accessing the API |
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 |
Read group inbox messages.
domain required | string The domain of the user accessing the API |
userId required | string The username of the user accessing the API |
This example details the response with one Group Inbox Item in the Communication Log API response.
{- "historyItems": [
- {
- ".GroupInboxVoiceMailDTO": {
- "itemId": 370,
- "startTime": "2020-01-30T17:11:13Z",
- "remoteParty": {
- "contactId": "jane.doe@example.com",
- "number": "+1555123001",
- "displayName": "Jane Doe"
}, - "itemType": "VOICEMAIL",
- "isSeen": true,
- "callItemId": 0,
- "isPlayed": false,
- "inboxName": "Group Inbox 1"
}
}
], - "flushCache": true,
- "generatedAt": "2020-01-31T09:28:21Z",
- "hintCount": 1
}
Set the deleted flag on a specific communication log item. The delete flag is used for further expunging of voicemail items.
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 |
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.
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:
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.
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 |
stateToken | any <int64> The expected stateToken of the state at the server. If not matching, the request will fail. |
targetCallId | any The callId of the target call that should be retrieved/answered/added |
targetStateToken | any <int64> The expected token of the state of target call at the server. If not matching, the request will fail. |
{- "stateToken": 487345453,
- "targetCallId": "dd33dxw9",
- "targetStateToken": 63772
}
{- "stateToken": 48738853,
- "callId": "xxx111yyy",
- "userId": "alice@organization.org",
- "remoteParty": {
- "partyId": "conference@organization.org",
- "type": "SERVICE_ID",
- "telUri": "tel:+46277100",
- "displayName": "Conference",
- "displayNumber": "7100"
}, - "participants": [
- {
- "id": "xxx22yyy",
- "remoteParty": {
- "partyId": "adhoc@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+46277565",
- "displayName": "Adrian Hocksley",
- "displayNumber": "7565"
}, - "historyInfo": {
- "subject": "Main Switchboad number",
- "campOn": true,
- "initialParty": {
- "partyId": "daisy@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+46277469",
- "displayName": "Daisy Smith",
- "displayNumber": "7469"
}, - "previousParty": {
- "partyId": "1234@organization.org",
- "type": "FUNCTION_NUMBER_ID",
- "telUri": "tel:+46277400",
- "displayName": "Switchboard",
- "displayNumber": "7400"
}, - "previousRetargetReason": "DISTRIBUTED"
}
}, - {
- "id": "xxx222yyy",
- "remoteParty": {
- "partyId": "adhoc@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+46277566",
- "displayName": "Ada Hocklington",
- "displayNumber": "7566"
}
}
], - "conference": true,
- "inbound": true,
- "intruded": false,
- "status": "ACTIVE",
- "event": "PARTICIPANT_ADDED",
- "muted": false,
- "duration": 5,
- "externalRecording": true,
- "externalRecordingDuration": 5,
- "externalRecordingPaused": false,
- "deviceIds": [
- "+1555555"
], - "actions": [
- {
- "action": "MOVE"
}, - {
- "action": "HOLD"
}, - {
- "action": "SAVE_REC"
}, - {
- "action": "PAUSE_REC"
}
]
}
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.
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 |
stateToken | any <int64> The expected stateToken of the state at the server. If not matching, the request will fail. |
targetCallId | any The callId of the target call that should be retrieved/answered/added |
targetStateToken | any <int64> The expected token of the state of target call at the server. If not matching, the request will fail. |
{- "stateToken": 487345453,
- "targetCallId": "dd33dxw9",
- "targetStateToken": 63772
}
{- "stateToken": 487345453,
- "callId": "aaa111bbb",
- "userId": "bob@organization.org",
- "remoteParty": {
- "partyId": "alice@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+46277463",
- "displayName": "Alice Alison",
- "displayNumber": "7463"
}, - "conference": false,
- "inbound": true,
- "intruded": false,
- "status": "HELD",
- "muted": false,
- "duration": 25,
- "deviceIds": [
- "+1555555"
], - "actions": [
- {
- "action": "MOVE"
}, - {
- "action": "TRANSFER"
}, - {
- "action": "RESUME"
}, - {
- "action": "PARK"
}
]
}
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.
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 |
targetUrl | any The webhook url to monitor the call state for this call. |
targetId | any A unique id of the webhook. Required if the targetUrl is set. |
publicTarget | any 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 |
Answer a call and request updates using a public webhook url.
{- "targetId": "my_callback_id"
}
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": {
- "partyId": "alice@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+46277463",
- "displayName": "Alice Alison",
- "displayNumber": "7463"
}, - "conference": false,
- "inbound": true,
- "intruded": false,
- "status": "ACTIVE",
- "muted": false,
- "duration": 5,
- "recording": true,
- "recordingDuration": 5,
- "deviceIds": [
- "+1555555"
], - "actions": [
- {
- "action": "MOVE"
}, - {
- "action": "TRANSFER"
}, - {
- "action": "HOLD"
}, - {
- "action": "PARK"
}, - {
- "action": "STOP_REC"
}
]
}
{- "stateToken": 487345453,
- "callId": "aaa111bbb",
- "userId": "alice@organization.org",
- "remoteParty": {
- "partyId": "bob@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+46277464",
- "displayName": "Bob Bobson",
- "displayNumber": "7464"
}, - "conference": false,
- "inbound": false,
- "intruded": false,
- "status": "INITIATED",
- "muted": false,
- "duration": 0,
- "deviceIds": [
- "+1555555"
]
}
Hanging up (clear) an established call, reject (decline) a call that is in the ringing state or cancel an outbound ringing call.
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 |
Put the call on hold. Depending on the configuration of the server, music on hold may be played to the other party.
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 |
stateToken | any <int64> The expected stateToken of the state at the server. If not matching, the request will fail. |
{- "stateToken": 487345453
}
{- "stateToken": 487345453,
- "callId": "aaa111bbb",
- "userId": "alice@organization.org",
- "remoteParty": {
- "partyId": "bob@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+46277464",
- "displayName": "Bob Bobson",
- "displayNumber": "7464"
}, - "conference": false,
- "inbound": false,
- "intruded": false,
- "status": "HELD",
- "muted": false,
- "duration": 50,
- "deviceIds": [
- "+1555555"
], - "actions": [
- {
- "action": "MOVE"
}, - {
- "action": "TRANSFER"
}, - {
- "action": "RESUME"
}, - {
- "action": "PARK"
}
]
}
Leaving an ad-hoc conference allowing any remaining participants to continue the call. To terminate the conference, use the method to terminate a call.
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 |
{- "stateToken": 48738853,
- "callId": "xxx222yyy",
- "userId": "alice@organization.org",
- "conference": true,
- "inbound": true,
- "intruded": false,
- "status": "TERMINATED",
- "event": "LEFT_CONFERENCE",
- "muted": false,
- "duration": 0
}
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.
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 |
targetUrl | any The webhook url to monitor the call state for this call. |
targetId | any A unique id of the webhook. Required if the targetUrl is set. |
publicTarget | any 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 |
destination required | any The target of the call. A SIP or tel URI. |
role | any The user role that should be used when performing the call. |
object (UserLineDTO) The caller ID that should be used for the call. | |
type | any Default: "BASIC" Enum: "BASIC" "DIVERSION_BYPASS" "INTRUSION" "INTERCOM" "VOICEMAIL" "BARGE" "WHISPER" "MONITOR" The extended type of the call. |
Alice makes a call from her primary line to the external number +1444344.
{- "destination": "tel:+1444344",
- "userLine": {
- "type": "OFFICE_FIXED",
- "groupId": 1
}
}
{- "stateToken": 487345453,
- "callId": "aaa111bbb",
- "userId": "alice@organization.org",
- "remoteParty": {
- "partyId": "bob@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+46277464",
- "displayName": "Bob Bobson",
- "displayNumber": "7464"
}, - "conference": false,
- "inbound": false,
- "intruded": false,
- "status": "INITIATED",
- "muted": false,
- "duration": 0,
- "deviceIds": [
- "+1555555"
]
}
{- "stateToken": 487345453,
- "callId": "aaa111bbb",
- "userId": "alice@organization.org",
- "remoteParty": {
- "partyId": "bob@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+46277464",
- "displayName": "Bob Bobson",
- "displayNumber": "7464"
}, - "conference": false,
- "inbound": false,
- "intruded": false,
- "status": "INITIATED",
- "muted": false,
- "duration": 0,
- "deviceIds": [
- "+1555555"
]
}
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.
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 |
targetUrl | any The webhook url to monitor the call state for this call. |
targetId | any A unique id of the webhook. Required if the targetUrl is set. |
publicTarget | any 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 |
destination required | any The target of the call. A SIP or tel URI. |
role | any The user role that should be used when performing the call. |
object (UserLineDTO) The caller ID that should be used for the call. | |
type | any Default: "BASIC" Enum: "BASIC" "DIVERSION_BYPASS" "INTRUSION" "INTERCOM" "VOICEMAIL" "BARGE" "WHISPER" "MONITOR" The extended type of the call. |
Alice makes a call from her primary line to the external number +1444344.
{- "destination": "tel:+1444344",
- "userLine": {
- "type": "OFFICE_FIXED",
- "groupId": 1
}
}
{- "stateToken": 487345453,
- "callId": "aaa111bbb",
- "userId": "alice@organization.org",
- "remoteParty": {
- "partyId": "bob@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+46277464",
- "displayName": "Bob Bobson",
- "displayNumber": "7464"
}, - "conference": false,
- "inbound": false,
- "intruded": false,
- "status": "INITIATED",
- "muted": false,
- "duration": 0,
- "deviceIds": [
- "+1555555"
]
}
{- "stateToken": 487345453,
- "callId": "aaa111bbb",
- "userId": "alice@organization.org",
- "remoteParty": {
- "partyId": "bob@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+46277464",
- "displayName": "Bob Bobson",
- "displayNumber": "7464"
}, - "conference": false,
- "inbound": false,
- "intruded": false,
- "status": "INITIATED",
- "muted": false,
- "duration": 0,
- "deviceIds": [
- "+1555555"
]
}
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.
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 |
stateToken | any <int64> The expected stateToken of the state at the server. If not matching, the request will fail. |
Move a call to another device.
{ }
{- "stateToken": 487345453,
- "callId": "aaa111bbb",
- "userId": "user@organization.org",
- "remoteParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "participants": [
- {
- "id": "aaa111bbb",
- "remoteParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473",
- "intrusionType": "BARGE"
}, - "historyInfo": {
- "subject": "Main Switchboad number",
- "acdSupport": "+134777",
- "campOn": false,
- "initialParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "previousParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "previousRetargetReason": "TRANSFERRED"
}
}
], - "conference": false,
- "conferenceId": "34322",
- "historyInfo": {
- "subject": "Main Switchboad number",
- "acdSupport": "+134777",
- "campOn": false,
- "initialParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "previousParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "previousRetargetReason": "TRANSFERRED"
}, - "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 an ongoing call. Depending on the type of call this action may or may not be available.
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 |
stateToken | any <int64> The expected stateToken of the state at the server. If not matching, the request will fail. |
{- "stateToken": 487345453
}
{- "stateToken": 487345453,
- "callId": "aaa111bbb",
- "userId": "alice@organization.org",
- "remoteParty": {
- "partyId": "bob@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+46277464",
- "displayName": "Bob Bobson",
- "displayNumber": "7464"
}, - "conference": false,
- "inbound": false,
- "intruded": false,
- "status": "ACTIVE",
- "event": "MUTED",
- "muted": true,
- "duration": 50,
- "deviceIds": [
- "+1555555"
], - "actions": [
- {
- "action": "MOVE"
}, - {
- "action": "TRANSFER"
}, - {
- "action": "RESUME"
}, - {
- "action": "PARK"
}, - {
- "action": "UNMUTE"
}
]
}
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.
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 |
stateToken | any <int64> The expected stateToken of the state at the server. If not matching, the request will fail. |
{- "stateToken": 487345453
}
{- "stateToken": 487345453,
- "callId": "aaa111bbb",
- "userId": "user@organization.org",
- "remoteParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "participants": [
- {
- "id": "aaa111bbb",
- "remoteParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473",
- "intrusionType": "BARGE"
}, - "historyInfo": {
- "subject": "Main Switchboad number",
- "acdSupport": "+134777",
- "campOn": false,
- "initialParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "previousParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "previousRetargetReason": "TRANSFERRED"
}
}
], - "conference": false,
- "conferenceId": "34322",
- "historyInfo": {
- "subject": "Main Switchboad number",
- "acdSupport": "+134777",
- "campOn": false,
- "initialParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "previousParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "previousRetargetReason": "TRANSFERRED"
}, - "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]}]"
}
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.
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 |
targetUrl | any The webhook url to monitor the call state for this call. |
targetId | any A unique id of the webhook. Required if the targetUrl is set. |
publicTarget | any 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 |
callId required | any The Call-ID of the SIP call (dialog) |
toTag required | any The to tag of the SIP call (dialog) |
fromTag required | any The from tag of the SIP call (dialog) |
earlyOnly required | any Indicate if the pickup should only be done in SIP early state. See RFC38961, section User Agent Client Behavior: Sending a Replaces Header |
{- "targetId": "my_callback_id",
- "publicTarget": true,
- "callId": "425928@bobster.example.org",
- "toTag": "7743",
- "fromTag": "6472",
- "earlyOnly": true
}
{- "stateToken": 487345453,
- "callId": "aaa111bbb",
- "userId": "user@organization.org",
- "remoteParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "participants": [
- {
- "id": "aaa111bbb",
- "remoteParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473",
- "intrusionType": "BARGE"
}, - "historyInfo": {
- "subject": "Main Switchboad number",
- "acdSupport": "+134777",
- "campOn": false,
- "initialParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "previousParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "previousRetargetReason": "TRANSFERRED"
}
}
], - "conference": false,
- "conferenceId": "34322",
- "historyInfo": {
- "subject": "Main Switchboad number",
- "acdSupport": "+134777",
- "campOn": false,
- "initialParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "previousParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "previousRetargetReason": "TRANSFERRED"
}, - "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]}]"
}
{- "stateToken": 487345453,
- "callId": "aaa111bbb",
- "userId": "alice@organization.org",
- "remoteParty": {
- "partyId": "bob@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+46277464",
- "displayName": "Bob Bobson",
- "displayNumber": "7464"
}, - "conference": false,
- "inbound": false,
- "intruded": false,
- "status": "INITIATED",
- "muted": false,
- "duration": 0,
- "deviceIds": [
- "+1555555"
]
}
Removing the participant {participantId} from the ad-hoc conference specified by {callId}.
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 |
stateToken | any <int64> The expected stateToken of the state at the server. If not matching, the request will fail. |
{- "stateToken": 487345453
}
{- "stateToken": 48738853,
- "callId": "xxx111yyy",
- "userId": "alice@organization.org",
- "remoteParty": {
- "partyId": "conference@organization.org",
- "type": "SERVICE_ID",
- "telUri": "tel:+46277100",
- "displayName": "Conference",
- "displayNumber": "7100"
}, - "participants": [
- {
- "id": "xxx22yyy",
- "remoteParty": {
- "partyId": "adhoc@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+46277565",
- "displayName": "Adrian Hocksley",
- "displayNumber": "7565"
}, - "historyInfo": {
- "subject": "Main Switchboad number",
- "campOn": true,
- "initialParty": {
- "partyId": "daisy@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+46277469",
- "displayName": "Daisy Smith",
- "displayNumber": "7469"
}, - "previousParty": {
- "partyId": "1234@organization.org",
- "type": "FUNCTION_NUMBER_ID",
- "telUri": "tel:+46277400",
- "displayName": "Switchboard",
- "displayNumber": "7400"
}, - "previousRetargetReason": "DISTRIBUTED"
}
}
], - "conference": true,
- "inbound": true,
- "intruded": false,
- "status": "ACTIVE",
- "event": "PARTICIPANT_LEFT",
- "muted": false,
- "duration": 5,
- "externalRecording": true,
- "externalRecordingDuration": 5,
- "externalRecordingPaused": false,
- "deviceIds": [
- "+1555555"
], - "actions": [
- {
- "action": "MOVE"
}, - {
- "action": "HOLD"
}, - {
- "action": "SAVE_REC"
}, - {
- "action": "PAUSE_REC"
}
]
}
Resume a call that previously was put on hold.
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 |
stateToken | any <int64> The expected stateToken of the state at the server. If not matching, the request will fail. |
{- "stateToken": 487345453
}
{- "stateToken": 487345453,
- "callId": "aaa111bbb",
- "userId": "bob@organization.org",
- "remoteParty": {
- "partyId": "alice@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+46277463",
- "displayName": "Alice Alison",
- "displayNumber": "7463"
}, - "conference": false,
- "inbound": true,
- "intruded": false,
- "status": "ACTIVE",
- "muted": false,
- "duration": 80,
- "externalRecording": true,
- "externalRecordingDuration": 5,
- "externalRecordingPaused": false,
- "deviceIds": [
- "+1555555"
], - "actions": [
- {
- "action": "MOVE"
}, - {
- "action": "TRANSFER"
}, - {
- "action": "HOLD"
}, - {
- "action": "PARK"
}, - {
- "action": "DISCARD_REC"
}
]
}
A string of DTMF digits is sent within the call.
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 |
stateToken | any <int64> The expected stateToken of the state at the server. If not matching, the request will fail. |
digits | any A string of DTMF digits, allowed values are 0-9, A-D, # or *. |
{- "stateToken": 487345453,
- "digits": "5"
}
{- "stateToken": 487345453,
- "callId": "aaa111bbb",
- "userId": "user@organization.org",
- "remoteParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "participants": [
- {
- "id": "aaa111bbb",
- "remoteParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473",
- "intrusionType": "BARGE"
}, - "historyInfo": {
- "subject": "Main Switchboad number",
- "acdSupport": "+134777",
- "campOn": false,
- "initialParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "previousParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "previousRetargetReason": "TRANSFERRED"
}
}
], - "conference": false,
- "conferenceId": "34322",
- "historyInfo": {
- "subject": "Main Switchboad number",
- "acdSupport": "+134777",
- "campOn": false,
- "initialParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "previousParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "previousRetargetReason": "TRANSFERRED"
}, - "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 a call to a new destination. The call will be automatically unheld if it is currently on hold.
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 |
stateToken | any <int64> The expected stateToken of the state at the server. If not matching, the request will fail. |
blind | any Default: false Indicate if the transferred call should be automatically cleared after the transfer has been initiated |
type | any Default: "BASIC" Enum: "BASIC" "VOICEMAIL" "CAMP_ON" "DIVERSION_BYPASS" The extended type of the transfer. |
destination required | any The target of the transfer. A SIP or tel URI. |
{- "stateToken": 487345453,
- "blind": true,
- "type": "CAMP_ON",
- "destination": "tel:+15555"
}
{- "stateToken": 487345453,
- "callId": "aaa111bbb",
- "userId": "user@organization.org",
- "remoteParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "participants": [
- {
- "id": "aaa111bbb",
- "remoteParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473",
- "intrusionType": "BARGE"
}, - "historyInfo": {
- "subject": "Main Switchboad number",
- "acdSupport": "+134777",
- "campOn": false,
- "initialParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "previousParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "previousRetargetReason": "TRANSFERRED"
}
}
], - "conference": false,
- "conferenceId": "34322",
- "historyInfo": {
- "subject": "Main Switchboad number",
- "acdSupport": "+134777",
- "campOn": false,
- "initialParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "previousParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "previousRetargetReason": "TRANSFERRED"
}, - "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]}]"
}
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.
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 |
stateToken | any <int64> The expected stateToken of the state at the server. If not matching, the request will fail. |
targetCallId required | any The callId of the target call the transferred call should be transferred to. |
waitForAnswer | any 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 | any <int64> The expected stateToken of the state of the target call at the server. If not matching the request will fail. |
{- "stateToken": 487345453,
- "targetCallId": "dd33dxw9",
- "waitForAnswer": false,
- "targetStateToken": 832211
}
{- "stateToken": 487345453,
- "callId": "aaa111bbb",
- "userId": "user@organization.org",
- "remoteParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "participants": [
- {
- "id": "aaa111bbb",
- "remoteParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473",
- "intrusionType": "BARGE"
}, - "historyInfo": {
- "subject": "Main Switchboad number",
- "acdSupport": "+134777",
- "campOn": false,
- "initialParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "previousParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "previousRetargetReason": "TRANSFERRED"
}
}
], - "conference": false,
- "conferenceId": "34322",
- "historyInfo": {
- "subject": "Main Switchboad number",
- "acdSupport": "+134777",
- "campOn": false,
- "initialParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "previousParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "previousRetargetReason": "TRANSFERRED"
}, - "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 a call that previously was muted.
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 |
stateToken | any <int64> The expected stateToken of the state at the server. If not matching, the request will fail. |
{- "stateToken": 487345453
}
{- "stateToken": 487345453,
- "callId": "aaa111bbb",
- "userId": "bob@organization.org",
- "remoteParty": {
- "partyId": "alice@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+46277463",
- "displayName": "Alice Alison",
- "displayNumber": "7463"
}, - "conference": false,
- "inbound": true,
- "intruded": false,
- "status": "ACTIVE",
- "event": "UNMUTED",
- "muted": false,
- "duration": 80,
- "externalRecording": true,
- "externalRecordingDuration": 5,
- "externalRecordingPaused": false,
- "deviceIds": [
- "+1555555"
], - "actions": [
- {
- "action": "MOVE"
}, - {
- "action": "TRANSFER"
}, - {
- "action": "HOLD"
}, - {
- "action": "PARK"
}, - {
- "action": "DISCARD_REC"
}, - {
- "action": "MUTE"
}
]
}
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:
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.
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 |
stateToken | any <int64> The expected stateToken of the state at the server. If not matching, the request will fail. |
{- "stateToken": 487345453
}
{- "stateToken": 487345453,
- "callId": "aaa111bbb",
- "userId": "bob@organization.org",
- "remoteParty": {
- "partyId": "alice@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+46277463",
- "displayName": "Alice Alison",
- "displayNumber": "7463"
}, - "conference": false,
- "inbound": true,
- "intruded": false,
- "status": "ACTIVE",
- "muted": false,
- "duration": 200,
- "externalRecording": true,
- "externalRecordingDuration": 200,
- "externalRecordingPaused": false,
- "deviceIds": [
- "+1555555"
], - "actions": [
- {
- "action": "MOVE"
}, - {
- "action": "TRANSFER"
}, - {
- "action": "HOLD"
}, - {
- "action": "PARK"
}, - {
- "action": "SAVE_REC"
}, - {
- "action": "PAUSE_REC"
}
]
}
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.
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 |
stateToken | any <int64> The expected stateToken of the state at the server. If not matching, the request will fail. |
{- "stateToken": 487345453
}
{- "stateToken": 487345453,
- "callId": "aaa111bbb",
- "userId": "bob@organization.org",
- "remoteParty": {
- "partyId": "alice@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+46277463",
- "displayName": "Alice Alison",
- "displayNumber": "7463"
}, - "conference": false,
- "inbound": true,
- "intruded": false,
- "status": "ACTIVE",
- "muted": false,
- "duration": 300,
- "externalRecording": true,
- "externalRecordingDuration": 300,
- "externalRecordingPaused": false,
- "deviceIds": [
- "+1555555"
], - "actions": [
- {
- "action": "MOVE"
}, - {
- "action": "TRANSFER"
}, - {
- "action": "HOLD"
}, - {
- "action": "PARK"
}, - {
- "action": "DISCARD_REC"
}, - {
- "action": "RESUME_REC"
}
]
}
Resume a paused recording.
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 |
stateToken | any <int64> The expected stateToken of the state at the server. If not matching, the request will fail. |
{- "stateToken": 487345453
}
{- "stateToken": 487345453,
- "callId": "aaa111bbb",
- "userId": "bob@organization.org",
- "remoteParty": {
- "partyId": "alice@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+46277463",
- "displayName": "Alice Alison",
- "displayNumber": "7463"
}, - "conference": false,
- "inbound": true,
- "intruded": false,
- "status": "ACTIVE",
- "muted": false,
- "duration": 300,
- "externalRecording": true,
- "externalRecordingDuration": 250,
- "externalRecordingPaused": false,
- "deviceIds": [
- "+1555555"
], - "actions": [
- {
- "action": "MOVE"
}, - {
- "action": "TRANSFER"
}, - {
- "action": "HOLD"
}, - {
- "action": "PARK"
}, - {
- "action": "DISCARD_REC"
}, - {
- "action": "PAUSE_REC"
}
]
}
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.
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 |
stateToken | any <int64> The expected stateToken of the state at the server. If not matching, the request will fail. |
{- "stateToken": 487345453
}
{- "stateToken": 487345453,
- "callId": "aaa111bbb",
- "userId": "bob@organization.org",
- "remoteParty": {
- "partyId": "alice@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+46277463",
- "displayName": "Alice Alison",
- "displayNumber": "7463"
}, - "conference": false,
- "inbound": true,
- "intruded": false,
- "status": "ACTIVE",
- "muted": false,
- "duration": 80,
- "externalRecording": true,
- "externalRecordingDuration": 80,
- "externalRecordingPaused": false,
- "deviceIds": [
- "+1555555"
], - "actions": [
- {
- "action": "MOVE"
}, - {
- "action": "TRANSFER"
}, - {
- "action": "HOLD"
}, - {
- "action": "PARK"
}, - {
- "action": "DISCARD_REC"
}, - {
- "action": "PAUSE_REC"
}
]
}
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.
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 |
stateToken | any <int64> The expected stateToken of the state at the server. If not matching, the request will fail. |
{- "stateToken": 487345453
}
{- "stateToken": 487345453,
- "callId": "aaa111bbb",
- "userId": "bob@organization.org",
- "remoteParty": {
- "partyId": "alice@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+46277463",
- "displayName": "Alice Alison",
- "displayNumber": "7463"
}, - "conference": false,
- "inbound": true,
- "intruded": false,
- "status": "ACTIVE",
- "muted": false,
- "duration": 100,
- "recording": true,
- "recordingDuration": 5,
- "deviceIds": [
- "+1555555"
], - "actions": [
- {
- "action": "TRANSFER"
}, - {
- "action": "HOLD"
}, - {
- "action": "STOP_REC"
}
]
}
If the start method has previously been performed to initiate call recording, then the stop method is available to end the call recording.
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 |
stateToken | any <int64> The expected stateToken of the state at the server. If not matching, the request will fail. |
{- "stateToken": 487345453
}
{- "stateToken": 487345453,
- "callId": "aaa111bbb",
- "userId": "bob@organization.org",
- "remoteParty": {
- "partyId": "alice@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+46277463",
- "displayName": "Alice Alison",
- "displayNumber": "7463"
}, - "conference": false,
- "inbound": true,
- "intruded": false,
- "status": "ACTIVE",
- "muted": false,
- "duration": 200,
- "recording": false,
- "deviceIds": [
- "+1555555"
], - "actions": [
- {
- "action": "MOVE"
}, - {
- "action": "TRANSFER"
}, - {
- "action": "HOLD"
}, - {
- "action": "PARK"
}, - {
- "action": "START_REC"
}
]
}
The Call State API enables fetching and monitoring states for users and call.
In order to use the API, the user must have either a Cloud CTI API License or Call Control API License.
Use the Call State API to:
Unregister an existing webhook registered for specific user call.
domain required | string The domain of the organization |
userId required | string The ID of the user |
callId required | string The ID of the call |
targetId required | string The unique id of the webhook that should be unregistered |
Unregister an existing webhook registered for the user.
domain required | string The domain of the organization |
userId required | string The ID of the user |
targetId required | string The unique ID of the webhook that should be unregistered |
Fetch a snapshot of the current state of a call.
domain required | string The domain of the organization |
userId required | string The username of the user accessing the API |
callId required | string The ID of the call |
{- "stateToken": 487345453,
- "callId": "aaa111bbb",
- "userId": "user@organization.org",
- "remoteParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "participants": [
- {
- "id": "aaa111bbb",
- "remoteParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473",
- "intrusionType": "BARGE"
}, - "historyInfo": {
- "subject": "Main Switchboad number",
- "acdSupport": "+134777",
- "campOn": false,
- "initialParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "previousParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "previousRetargetReason": "TRANSFERRED"
}
}
], - "conference": false,
- "conferenceId": "34322",
- "historyInfo": {
- "subject": "Main Switchboad number",
- "acdSupport": "+134777",
- "campOn": false,
- "initialParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "previousParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "previousRetargetReason": "TRANSFERRED"
}, - "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]}]"
}
Fetch a snapshot of the current state of a user.
domain required | string The domain of the organization |
userId required | string The username of the user accessing the API |
{- "fullState": true,
- "calls": [
- {
- "stateToken": 487345453,
- "callId": "aaa111bbb",
- "userId": "alice@organization.org",
- "remoteParty": {
- "partyId": "bob@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+46277464",
- "displayName": "Bob Bobson",
- "displayNumber": "7464"
}, - "conference": false,
- "inbound": false,
- "intruded": false,
- "status": "HELD",
- "muted": false,
- "duration": 50,
- "deviceIds": [
- "+1555555"
], - "actions": [
- {
- "action": "MOVE"
}, - {
- "action": "TRANSFER"
}, - {
- "action": "RESUME"
}, - {
- "action": "PARK"
}
]
}
]
}
Register a webhook to be notified if the state of the call has been updated in the server. The new stateToken of the state will be posted to the registered URL allowing the CTI client to compare it to the token of any state it currently knows about and decide if it needs to fetch the latest state.
domain required | string The domain of the organization |
userId required | string The ID of the user |
callId required | string The ID of the call |
targetUrl required | any The webhook url |
targetId required | any A unique id of the webhook. |
publicTarget required | any 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 |
{- "targetId": "434356",
- "publicTarget": true
}
{- "stateToken": 487345453,
- "callId": "aaa111bbb",
- "userId": "alice@organization.org",
- "remoteParty": {
- "partyId": "bob@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+46277464",
- "displayName": "Bob Bobson",
- "displayNumber": "7464"
}, - "conference": false,
- "inbound": false,
- "intruded": false,
- "status": "INITIATED",
- "muted": false,
- "duration": 0,
- "deviceIds": [
- "+1555555"
]
}
Register a webhook where notifications about new and deleted calls for the user will be pushed. The user must be CTI enabled, and the registration is valid for all the users devices.
domain required | string The domain of the organization |
userId required | string The ID of the user |
targetUrl required | any The webhook url |
targetId required | any A unique id of the webhook. |
publicTarget required | any 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 |
{- "targetId": "434356",
- "publicTarget": true
}
{- "expiresOn": 3600
}
{- "fullState": true,
- "calls": [
- {
- "stateToken": 487345453,
- "callId": "aaa111bbb",
- "userId": "alice@organization.org",
- "remoteParty": {
- "partyId": "bob@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+46277464",
- "displayName": "Bob Bobson",
- "displayNumber": "7464"
}, - "conference": false,
- "inbound": false,
- "intruded": false,
- "status": "HELD",
- "muted": false,
- "duration": 50,
- "deviceIds": [
- "+1555555"
], - "actions": [
- {
- "action": "MOVE"
}, - {
- "action": "TRANSFER"
}, - {
- "action": "RESUME"
}, - {
- "action": "PARK"
}
]
}
]
}
The Event API is used to do different event related operations, such as handling conferences.
Use Event API to:
Fetch a specified event.
domain required | string The organization domain |
userId required | string The user id of the user |
eventId required | integer <int64> Event id to fetch an event |
The single non-recurring event
{- "id": 1,
- "dateTimeStart": "2023-05-31T15:38:39Z",
- "dateTimeEnd": "2023-05-31T16:38:39Z",
- "name": "Test meeting",
- "organizer": {
- "id": "alice@abc.com",
- "firstName": "Alice",
- "lastName": "Test",
- "email": "alice@abc.com",
- "businessPhone": "+123402",
- "mobilePhone": "+46767676195"
}, - "participants": [
- {
- "id": "bob@abc.com",
- "firstName": "Bob",
- "lastName": "Test",
- "email": "bob@abc.com",
- "businessPhone": "+123403",
- "mobilePhone": "+46767676194"
}
], - "minutesBeforeMeetingReminder": 15,
- "minutesBeforeMeetingSMS": 15,
- "pincode": "151512",
- "timeZone": "Europe/Stockholm",
- "recurringType": "NONE",
- "note": "Test meeting ongoing",
- "dialInNumbers": "+46767676767,+46767611000,5752222",
- "moxtraBinderId": "IBcgJw9swZjy68F2tP1XEKA3",
- "moxtraMeetId": "408052103",
- "webmeetAllowed": true,
- "recurrenceRangeType": "NONE",
- "synchronizedMeeting": false
}
Update an event.
domain required | string The organization domain |
userId required | string The user id of the user |
eventId required | integer <int64> Event id to update an event |
endDate | any Date and time for the end of an event serie, according to ISO 8601: YYYY-MM-DDTHH:mm:ssZ. The time should be the start time of the event. |
id | any <int64> The event's id. |
dateTimeStart | any Date and time for start of the event according to ISO 8601: YYYY-MM-DDTHH:mm:ssZ. |
dateTimeEnd | any Date and time for end of the event according to ISO 8601: YYYY-MM-DDTHH:mm:ssZ. |
name | any The name of the event. |
required | object (EventParticipantDTO) List of attendees who are participating in the event instance, excluding the organizer. |
Array of objects (EventParticipantDTO) List of participants excluding the organizer. | |
minutesBeforeMeetingReminder | any <int32> How many minutes before an event a reminder email should be sent to the participants. |
minutesBeforeMeetingSMS | any <int32> How many minutes before an event a reminder SMS should be sent to the participants. |
pincode | any Pincode for the event. |
timeZone | any The organizer's time zone (or selected time zone) to be used for the event. |
recurringType | any Enum: "NONE" "DAILY" "WEEKLY" "BIWEEKLY" "MONTHLY" "YEARLY" "MONTHLY_ABSOLUTE" "MONTHLY_RELATIVE" "YEARLY_ABSOLUTE" "YEARLY_RELATIVE" Recurring type. |
note | any Event note. |
dialInNumbers | any The numbers that should be used by event participants when calling in to the event. |
moxtraBinderId | any The id of the stream where the event is initiated. |
moxtraMeetId | any The id of Moxtra meeting. |
webmeetAllowed | any Whether web meeting is allowed or not. |
interval | any <int32> The number of units between occurrences, where units can be in days, weeks, months, or years, depending on the type. Required. |
recurrenceRangeType | any Enum: "NONE" "END_DATE" "NUMBERED" The recurrence range type. The possible values are: END_DATE, NONE, NUMBERED. Required when recurrence is used for an event. |
daysOfWeek | Array of any The days of week an event should take place. |
dayOfMonth | any <int32> The day of the month on which the event occurs. Valid values are 1-31. Required if recurringType is MONTHLY_ABSOLUTE or YEARLY_ABSOLUTE. |
monthOfYear | any <int32> The month in which the event occurs. This is a number from 1 to 12, where 1 represents January and 12 represents December. Required if recurringType is YEARLY_ABSOLUTE. |
weekPosition | any Enum: "FIRST" "SECOND" "THIRD" "FOURTH" "LAST" "NONE" Specifies on which instance of the allowed days specified in daysOfsWeek the event occurs, counted from the first instance in the month. Optional and used if type is MONTHLY_ABSOLUTE or YEARLY_ABSOLUTE. |
numberOfOccurrences | any <int32> The number of times to repeat the event. Required and must be positive if recurrenceRangeType is NUMBERED. |
Array of objects (eventexception) List of exceptions. | |
synchronizedMeeting | any Indicates if the meeting has been synchronized from other sources. |
synchronizedSeries | any Indicates if this synchronized meeting is part of a series. |
rRule | any Specifies the recurrence rule of an event. |
{- "id": 1,
- "dateTimeStart": "2023-05-31T15:38:39Z",
- "dateTimeEnd": "2023-05-31T16:38:39Z",
- "name": "Test meeting",
- "organizer": {
- "id": "alice@abc.com",
- "firstName": "Alice",
- "lastName": "Test",
- "email": "alice@abc.com",
- "businessPhone": "+123402",
- "mobilePhone": "+46767676195"
}, - "participants": [
- {
- "id": "bob@abc.com",
- "firstName": "Bob",
- "lastName": "Test",
- "email": "bob@abc.com",
- "businessPhone": "+123403",
- "mobilePhone": "+46767676194"
}
], - "minutesBeforeMeetingReminder": 15,
- "minutesBeforeMeetingSMS": 15,
- "timeZone": "Europe/Stockholm",
- "recurringType": "DAILY",
- "note": "Test meeting ongoing",
- "moxtraBinderId": "IBcgJw9swZjy68F2tP1XEKA3",
- "moxtraMeetId": "408052103",
- "webmeetAllowed": true,
- "interval": 1,
- "recurrenceRangeType": "NONE",
- "weekPosition": "NONE",
- "synchronizedMeeting": false
}
{- "id": 1,
- "dateTimeStart": "2023-05-31T15:38:39Z",
- "dateTimeEnd": "2023-05-31T16:38:39Z",
- "name": "Test meeting",
- "organizer": {
- "id": "alice@abc.com",
- "firstName": "Alice",
- "lastName": "Test",
- "email": "alice@abc.com",
- "businessPhone": "+123402",
- "mobilePhone": "+46767676195"
}, - "participants": [
- {
- "id": "bob@abc.com",
- "firstName": "Bob",
- "lastName": "Test",
- "email": "bob@abc.com",
- "businessPhone": "+123403",
- "mobilePhone": "+46767676194"
}
], - "minutesBeforeMeetingReminder": 15,
- "minutesBeforeMeetingSMS": 15,
- "pincode": "151512",
- "timeZone": "Europe/Stockholm",
- "recurringType": "DAILY",
- "note": "Test meeting ongoing",
- "dialInNumbers": "+4676767676",
- "moxtraBinderId": "IBcgJw9swZjy68F2tP1XEKA3",
- "moxtraMeetId": "408052103",
- "webmeetAllowed": true,
- "interval": 1,
- "recurrenceRangeType": "NONE",
- "weekPosition": "NONE",
- "synchronizedMeeting": false,
- "rRule": "FREQ=DAILY;INTERVAL=1"
}
Remove a specified event.
domain required | string The organization domain |
userId required | string The user id of the user |
eventId required | integer <int64> Event id to delete an event |
{- "field": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": null,
- "name": "baduser@baddomain.com"
}
], - "warning": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": null,
- "name": "baduser@baddomain.com"
}
], - "generated-id": null
}
Get the details of a single occurrence or exception from a recurring event.
domain required | string The organization domain |
userId required | string The user id of the user |
confId required | integer <int64> Event id to fetch an occurrence or exception |
eventDate required | string The date of the event instance in 'yyyy-MM-dd' format |
The occurrence of an event is a non-updated instance of the event.
{- "dateTimeStart": "2023-05-31T12:38:39Z",
- "dateTimeEnd": "2023-05-31T13:38:39Z",
- "name": "Test meeting update",
- "note": "Test meeting instance",
- "isUpdated": true,
- "isCancelled": false,
- "eventId": 1,
- "organizer": {
- "id": "alice@abc.com",
- "firstName": "Alice",
- "lastName": "Test",
- "email": "alice@abc.com",
- "businessPhone": "+123402",
- "mobilePhone": "+46767676195"
}, - "participants": [
- {
- "id": "bob@abc.com",
- "firstName": "Bob",
- "lastName": "Test",
- "email": "bob@abc.com",
- "businessPhone": "+123403",
- "mobilePhone": "+46767676194"
}
]
}
Modify a single event occurrence or an exception from a recurring event.
domain required | string The organization domain |
userId required | string The user id of the user |
confId required | integer <int64> Event id to update an event occurrence or exception |
eventDate required | string The date of the event instance in 'yyyy-MM-dd' format |
id | any <int64> The event exception's id. |
dateTimeStart required | any Date and time for start of the event instance according to ISO 8601: YYYY-MM-DDTHH:mm:ssZ. |
dateTimeEnd required | any Date and time for end of the event instance according to ISO 8601: YYYY-MM-DDTHH:mm:ssZ. |
name | any The name of the event instance. |
note | any Event instance note. |
isUpdated | any Whether the event instance is updated or not. |
isCancelled | any Whether the event instance is cancelled or not. |
eventId | any <int64> The Id of the event |
required | object (EventParticipantDTO) List of attendees who are participating in the event instance, excluding the organizer. |
required | Array of objects (EventParticipantDTO) List of attendees who are participating in the event instance, excluding the organizer. |
dateTimeOld | any Original date and time before updating the exception according to ISO 8601: YYYY-MM-DDTHH:mm:ssZ. |
The exception of an event is an updated occurrence or exception of the event.
{- "id": 1,
- "dateTimeStart": "2023-05-31T12:38:39Z",
- "dateTimeEnd": "2023-05-31T13:38:39Z",
- "name": "Test meeting update",
- "note": "Test meeting instance",
- "isUpdated": true,
- "isCancelled": false,
- "eventId": 1,
- "organizer": {
- "id": "alice@abc.com",
- "firstName": "Alice",
- "lastName": "Test",
- "email": "alice@abc.com",
- "businessPhone": "+123402",
- "mobilePhone": "+46767676195"
}, - "participants": [
- {
- "id": "bob@abc.com",
- "firstName": "Bob",
- "lastName": "Test",
- "email": "bob@abc.com",
- "businessPhone": "+123403",
- "mobilePhone": "+46767676194"
}
]
}
Exception
{- "id": 1,
- "dateTimeStart": "2023-05-31T12:38:39Z",
- "dateTimeEnd": "2023-05-31T13:38:39Z",
- "name": "Test meeting update",
- "note": "Test meeting instance",
- "isUpdated": true,
- "isCancelled": false,
- "eventId": 1,
- "organizer": {
- "id": "alice@abc.com",
- "firstName": "Alice",
- "lastName": "Test",
- "email": "alice@abc.com",
- "businessPhone": "+123402",
- "mobilePhone": "+46767676195"
}, - "participants": [
- {
- "id": "bob@abc.com",
- "firstName": "Bob",
- "lastName": "Test",
- "email": "bob@abc.com",
- "businessPhone": "+123403",
- "mobilePhone": "+46767676194"
}
], - "dateTimeOld": "2023-05-31T15:38:39Z"
}
Remove a single event occurrence or an exception from a recurring event.
domain required | string The organization domain |
userId required | string The user id of the user |
confId required | integer <int64> Event id to delete an event occurrence or exception |
eventDate required | string The date of the event instance in 'yyyy-MM-dd' format |
Cancelled exception
{- "id": 2,
- "dateTimeStart": "2023-05-31T12:38:39Z",
- "dateTimeEnd": "2023-05-31T13:38:39Z",
- "name": "Test meeting update",
- "note": "Test meeting instance",
- "isUpdated": false,
- "isCancelled": true,
- "eventId": 1,
- "participants": [
- { }
], - "dateTimeOld": "2023-05-31T15:38:39Z"
}
Fetch events for a specified user, where the user is either the organizer or a participant.
domain required | string The organization domain |
userId required | string The user id of the user |
{- "events": [
- {
- "id": 1,
- "dateTimeStart": "2023-05-31T15:38:39Z",
- "dateTimeEnd": "2023-05-31T16:38:39Z",
- "name": "Test meeting",
- "organizer": {
- "id": "alice@abc.com",
- "firstName": "Alice",
- "lastName": "Test",
- "email": "alice@abc.com",
- "businessPhone": "+123402",
- "mobilePhone": "+46767676195"
}, - "participants": [
- {
- "id": "bob@abc.com",
- "firstName": "Bob",
- "lastName": "Test",
- "email": "bob@abc.com",
- "businessPhone": "+123403",
- "mobilePhone": "+46767676194"
}
], - "minutesBeforeMeetingReminder": 15,
- "minutesBeforeMeetingSMS": 15,
- "pincode": "151512",
- "timeZone": "Europe/Stockholm",
- "recurringType": "DAILY",
- "note": "Test meeting ongoing",
- "dialInNumbers": "+46767676767,+46767611000,5752222",
- "moxtraBinderId": "IBcgJw9swZjy68F2tP1XEKA3",
- "moxtraMeetId": "408052103",
- "webmeetAllowed": true,
- "interval": 1,
- "recurrenceRangeType": "NONE",
- "weekPosition": "NONE",
- "exceptions": [
- {
- "id": 1,
- "dateTimeStart": "2023-05-31T12:38:39Z",
- "dateTimeEnd": "2023-05-31T13:38:39Z",
- "name": "Test meeting update",
- "note": "Test meeting instance",
- "isUpdated": true,
- "isCancelled": false,
- "eventId": 1,
- "organizer": {
- "id": "alice@abc.com",
- "firstName": "Alice",
- "lastName": "Test",
- "email": "alice@abc.com",
- "businessPhone": "+123402",
- "mobilePhone": "+46767676195"
}, - "participants": [
- {
- "id": "bob@abc.com",
- "firstName": "Bob",
- "lastName": "Test",
- "email": "bob@abc.com",
- "businessPhone": "+123403",
- "mobilePhone": "+46767676194"
}
], - "dateTimeOld": "2023-05-31T15:38:39Z"
}
], - "synchronizedMeeting": false,
- "rRule": "FREQ=DAILY;INTERVAL=1"
}
]
}
Schedule a new event.
domain required | string The organization domain |
userId required | string The user id of the user |
endDate | any Date and time for the end of an event serie, according to ISO 8601: YYYY-MM-DDTHH:mm:ssZ. The time should be the start time of the event. |
id | any <int64> The event's id. |
dateTimeStart | any Date and time for start of the event according to ISO 8601: YYYY-MM-DDTHH:mm:ssZ. |
dateTimeEnd | any Date and time for end of the event according to ISO 8601: YYYY-MM-DDTHH:mm:ssZ. |
name | any The name of the event. |
required | object (EventParticipantDTO) List of attendees who are participating in the event instance, excluding the organizer. |
Array of objects (EventParticipantDTO) List of participants excluding the organizer. | |
minutesBeforeMeetingReminder | any <int32> How many minutes before an event a reminder email should be sent to the participants. |
minutesBeforeMeetingSMS | any <int32> How many minutes before an event a reminder SMS should be sent to the participants. |
pincode | any Pincode for the event. |
timeZone | any The organizer's time zone (or selected time zone) to be used for the event. |
recurringType | any Enum: "NONE" "DAILY" "WEEKLY" "BIWEEKLY" "MONTHLY" "YEARLY" "MONTHLY_ABSOLUTE" "MONTHLY_RELATIVE" "YEARLY_ABSOLUTE" "YEARLY_RELATIVE" Recurring type. |
note | any Event note. |
dialInNumbers | any The numbers that should be used by event participants when calling in to the event. |
moxtraBinderId | any The id of the stream where the event is initiated. |
moxtraMeetId | any The id of Moxtra meeting. |
webmeetAllowed | any Whether web meeting is allowed or not. |
interval | any <int32> The number of units between occurrences, where units can be in days, weeks, months, or years, depending on the type. Required. |
recurrenceRangeType | any Enum: "NONE" "END_DATE" "NUMBERED" The recurrence range type. The possible values are: END_DATE, NONE, NUMBERED. Required when recurrence is used for an event. |
daysOfWeek | Array of any The days of week an event should take place. |
dayOfMonth | any <int32> The day of the month on which the event occurs. Valid values are 1-31. Required if recurringType is MONTHLY_ABSOLUTE or YEARLY_ABSOLUTE. |
monthOfYear | any <int32> The month in which the event occurs. This is a number from 1 to 12, where 1 represents January and 12 represents December. Required if recurringType is YEARLY_ABSOLUTE. |
weekPosition | any Enum: "FIRST" "SECOND" "THIRD" "FOURTH" "LAST" "NONE" Specifies on which instance of the allowed days specified in daysOfsWeek the event occurs, counted from the first instance in the month. Optional and used if type is MONTHLY_ABSOLUTE or YEARLY_ABSOLUTE. |
numberOfOccurrences | any <int32> The number of times to repeat the event. Required and must be positive if recurrenceRangeType is NUMBERED. |
Array of objects (eventexception) List of exceptions. | |
synchronizedMeeting | any Indicates if the meeting has been synchronized from other sources. |
synchronizedSeries | any Indicates if this synchronized meeting is part of a series. |
rRule | any Specifies the recurrence rule of an event. |
{- "dateTimeStart": "2023-05-31T15:38:39Z",
- "dateTimeEnd": "2023-05-31T16:38:39Z",
- "name": "Test meeting",
- "organizer": {
- "id": "alice@abc.com",
- "firstName": "Alice",
- "lastName": "Test",
- "email": "alice@abc.com",
- "businessPhone": "+123402",
- "mobilePhone": "+46767676195"
}, - "participants": [
- {
- "id": "bob@abc.com",
- "firstName": "Bob",
- "lastName": "Test",
- "email": "bob@abc.com",
- "businessPhone": "+123403",
- "mobilePhone": "+46767676194"
}
], - "minutesBeforeMeetingReminder": 15,
- "minutesBeforeMeetingSMS": 15,
- "timeZone": "Europe/Stockholm",
- "recurringType": "DAILY",
- "note": "Test meeting ongoing",
- "moxtraBinderId": "IBcgJw9swZjy68F2tP1XEKA3",
- "moxtraMeetId": "408052103",
- "webmeetAllowed": true,
- "interval": 1,
- "recurrenceRangeType": "NONE",
- "weekPosition": "NONE",
- "synchronizedMeeting": false
}
{- "id": 1,
- "dateTimeStart": "2023-05-31T15:38:39Z",
- "dateTimeEnd": "2023-05-31T16:38:39Z",
- "name": "Test meeting",
- "organizer": {
- "id": "alice@abc.com",
- "firstName": "Alice",
- "lastName": "Test",
- "email": "alice@abc.com",
- "businessPhone": "+123402",
- "mobilePhone": "+46767676195"
}, - "participants": [
- {
- "id": "bob@abc.com",
- "firstName": "Bob",
- "lastName": "Test",
- "email": "bob@abc.com",
- "businessPhone": "+123403",
- "mobilePhone": "+46767676194"
}
], - "minutesBeforeMeetingReminder": 15,
- "minutesBeforeMeetingSMS": 15,
- "pincode": "151512",
- "timeZone": "Europe/Stockholm",
- "recurringType": "DAILY",
- "note": "Test meeting ongoing",
- "dialInNumbers": "+4676767676",
- "moxtraBinderId": "IBcgJw9swZjy68F2tP1XEKA3",
- "moxtraMeetId": "408052103",
- "webmeetAllowed": true,
- "interval": 1,
- "recurrenceRangeType": "NONE",
- "weekPosition": "NONE",
- "synchronizedMeeting": false,
- "rRule": "FREQ=DAILY;INTERVAL=1"
}
Fetch events for a stream.
binder_id required | string Stream identification |
unique_id required | string Unique id of a user, can be either en email address or a mobile number |
{- "events": [
- {
- "id": 1,
- "dateTimeStart": "2023-05-31T15:38:39Z",
- "dateTimeEnd": "2023-05-31T16:38:39Z",
- "name": "Test meeting",
- "organizer": {
- "id": "alice@abc.com",
- "firstName": "Alice",
- "lastName": "Test",
- "email": "alice@abc.com",
- "businessPhone": "+123402",
- "mobilePhone": "+46767676195"
}, - "participants": [
- {
- "id": "bob@abc.com",
- "firstName": "Bob",
- "lastName": "Test",
- "email": "bob@abc.com",
- "businessPhone": "+123403",
- "mobilePhone": "+46767676194"
}
], - "minutesBeforeMeetingReminder": 15,
- "minutesBeforeMeetingSMS": 15,
- "pincode": "151512",
- "timeZone": "Europe/Stockholm",
- "recurringType": "DAILY",
- "note": "Test meeting ongoing",
- "dialInNumbers": "+46767676767,+46767611000,5752222",
- "moxtraBinderId": "IBcgJw9swZjy68F2tP1XEKA3",
- "moxtraMeetId": "408052103",
- "webmeetAllowed": true,
- "interval": 1,
- "recurrenceRangeType": "NONE",
- "weekPosition": "NONE",
- "exceptions": [
- {
- "id": 1,
- "dateTimeStart": "2023-05-31T12:38:39Z",
- "dateTimeEnd": "2023-05-31T13:38:39Z",
- "name": "Test meeting update",
- "note": "Test meeting instance",
- "isUpdated": true,
- "isCancelled": false,
- "eventId": 1,
- "organizer": {
- "id": "alice@abc.com",
- "firstName": "Alice",
- "lastName": "Test",
- "email": "alice@abc.com",
- "businessPhone": "+123402",
- "mobilePhone": "+46767676195"
}, - "participants": [
- {
- "id": "bob@abc.com",
- "firstName": "Bob",
- "lastName": "Test",
- "email": "bob@abc.com",
- "businessPhone": "+123403",
- "mobilePhone": "+46767676194"
}
], - "dateTimeOld": "2023-05-31T15:38:39Z"
}
], - "synchronizedMeeting": false,
- "rRule": "FREQ=DAILY;INTERVAL=1"
}
]
}
Get a web meeting.
domain required | string The organization domain |
userId required | string The user id of the user |
eventId required | integer <int64> Event id to fetch a web meet |
{- "data": {
- "id": "654297226"
}, - "code": "RESPONSE_SUCCESS"
}
Join conference call on user's answer place.
domain required | string The organization domain |
userId required | string The user id of the user |
eventId required | integer <int64> Event id to join a conference |
answerPlace | string Deprecated The register user device name |
sipInstance | string Deprecated Instance Id (sipInstance) of the user agent |
autoAnswer | string Deprecated Auto answer on user device |
selectedDeviceID | string The Device ID of the user agent |
"string"
Hangs up conference call on user's answer place.
domain required | string The organization domain |
userId required | string The user id of the user |
eventId required | integer <int64> Event id to leave a conference |
answerPlace | string Deprecated The register user device name |
sipInstance | string Deprecated Instance Id (sipInstance) of the user agent |
selectedDeviceID | string The Device ID of the user agent |
{- "field": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": null,
- "name": "baduser@baddomain.com"
}
], - "warning": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": null,
- "name": "baduser@baddomain.com"
}
], - "generated-id": null
}
The Buddy List API is used to manage user's favourites. Favourites list is the default contact list. It can contain personal contacts, directory contacts and function numbers. Favourites show up by default when no contact has been searched.
Use the Buddy List API to:
Verify a contact is in the favourite contact list.
domain required | string The domain of the user accessing the API |
user required | string The username of the user whose contact list we are managing |
cid required | string The contact ID of the user we want to verify is in the favourites list |
Add a contact to a user's favourites.
domain required | string The domain of the user accessing the API |
user required | string The username of the user whose contact list we are managing |
cid required | string The contact ID of the user we want to add to the favourites list |
Delete a contact from a user's favourites.
domain required | string The domain of the user accessing the API |
user required | string The username of the user whose contact list we are managing |
cid required | string The contact ID of the user we want to remove from the favourites list |
Update the favourites of a user based on the configured favourites templates of the organization and groups the user belongs to.
domain required | string The domain of the user accessing the API |
user required | string The username of the user whose contact list we are managing |
applyContactTemplates required | string Set to 'true' to generate favourites based on exisiting templates on organization and group level |
The Contacts API operates primarily against a user's contact list. Searches can return results from the directory as well.
Use the Contacts API to:
Add a contact to a user's contact list.
domain required | string The domain of the user accessing the API. |
user required | string The username of the user accessing the API. |
cid required | string The ID of the contact to be added to the contact list. |
{- "query": "query",
- "contact": [
- {
- "id": "user2@abc.com",
- "firstname": "Jack",
- "lastname": "Jill",
- "company": "abc",
- "presence": {
- "futurePresenceAccess": "WRITE",
- "activityAccess": "WRITE",
- "roleAccess": "WRITE",
- "noteAccess": "WRITE",
- "role": "Business",
- "note": "Vacation",
- "activity": {
- "id": "1231141551161",
- "expiration": "NEVER",
- "available": true
}, - "idle": false,
- "available": true,
- "capabilities": [
- "MESSAGE",
- "PARTIAL_COLLABORATION",
- "SMS"
]
}, - "incall": false,
- "inlist": true,
- "diversionAccess": "NONE",
- "type": "DIRECTORY",
- "image": 12,
- "vcard": 113,
- "contactStatus": "FAVORITE",
- "preferredNumber": "+1231231",
- "collaboration": true
}
]
}
Remove a contact from a user's contact list
domain required | string The domain of the user accessing the API |
user required | string The username of the user accessing the API |
cid required | string The ID of the contact to be deleted |
{- "field": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": null,
- "name": "baduser@baddomain.com"
}
], - "warning": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": null,
- "name": "baduser@baddomain.com"
}
], - "generated-id": null
}
Get a list of matching contacts for a user. By default contacts are ordered alphabetically by name. The user of the API is expected to reorder them as needed.
domain required | string The domain of the user accessing the API. |
user required | string The username of the user accessing the API. |
query | string If stated, contacts where any word in a searchable field starts with the stated query will be returned. If not stated, only user's favourites will be returned. |
maxResults | string Limit the amount of results when searching with a provided filter. If omitted, a maximum of 25 matching contacts will be returned. |
dontIncludeFnrs | boolean Exclude function numbers from the search result by providing this parameter with value 'true'. Otherwise, function numbers are included. |
{- "query": "query",
- "contact": [
- {
- "id": "user1@abc.com",
- "firstname": "Alice",
- "lastname": "Bob",
- "company": "abc",
- "presence": {
- "futurePresenceAccess": "WRITE",
- "activityAccess": "WRITE",
- "roleAccess": "WRITE",
- "noteAccess": "WRITE",
- "role": "Business",
- "note": "Example Note",
- "activity": {
- "id": "1230040550060",
- "expiration": "NEVER",
- "available": true
}, - "idle": false,
- "available": true,
- "capabilities": [
- "MESSAGE",
- "PARTIAL_COLLABORATION",
- "SMS"
]
}, - "incall": false,
- "inlist": true,
- "diversionAccess": "NONE",
- "type": "SHORTCUT",
- "image": 12,
- "vcard": 168,
- "contactStatus": "FAVORITE",
- "preferredNumber": "+1234567",
- "collaboration": true
}
]
}
Add multiple contacts to a user's contact list.
domain required | string The domain of the user accessing the API. |
user required | string The username of the user accessing the API. |
query | any The query that was used to get the list of contacts. |
Array of objects (ContactDTO) List of contacts. |
{- "query": "query",
- "contact": [
- {
- "id": "user2@abc.com",
- "firstname": "Jack",
- "lastname": "Jill",
- "company": "abc",
- "presence": {
- "futurePresenceAccess": "NONE",
- "activityAccess": "NONE",
- "roleAccess": "NONE",
- "noteAccess": "NONE",
- "role": "Business",
- "note": "Vacation",
- "activity": {
- "id": "1231141551161",
- "expiration": "NEVER",
- "available": true
}, - "capabilities": [
- "MESSAGE",
- "PARTIAL_COLLABORATION",
- "SMS"
]
}, - "incall": false,
- "inlist": true,
- "type": "DIRECTORY",
- "image": 12,
- "vcard": 113,
- "contactStatus": "FAVORITE",
- "collaboration": true
}
]
}
{- "query": "query",
- "contact": [
- {
- "id": "user2@abc.com",
- "firstname": "Jack",
- "lastname": "Jill",
- "company": "abc",
- "presence": {
- "futurePresenceAccess": "WRITE",
- "activityAccess": "WRITE",
- "roleAccess": "WRITE",
- "noteAccess": "WRITE",
- "role": "Business",
- "note": "Vacation",
- "activity": {
- "id": "1231141551161",
- "expiration": "NEVER",
- "available": true
}, - "idle": false,
- "available": true,
- "capabilities": [
- "MESSAGE",
- "PARTIAL_COLLABORATION",
- "SMS"
]
}, - "incall": false,
- "inlist": true,
- "diversionAccess": "NONE",
- "type": "DIRECTORY",
- "image": 12,
- "vcard": 113,
- "contactStatus": "FAVORITE",
- "preferredNumber": "+1231231",
- "collaboration": true
}
]
}
Add contact status for a user in contact list
domain required | string The domain of the user accessing the API |
user required | string The username of the user accessing the API |
cid required | string The ID of the contact |
contactStatus required | any Enum: "FAVORITE" "CONTACT" "VIP" "BLOCKED" The status of the contact. |
{- "contactStatus": "FAVORITE"
}
The Contacts Information API has a set of commands to get more information and manipulate individual contacts. This is based on the presence authorization in Dstny Core. Contact management is authenticated using API tickets for Contact search.
Use the Contacts Information API to:
Retrieve a contact's information.
domain required | string The domain of the contact |
cid required | string The ID of the contact |
A directory contact
{- "id": "john@example.org",
- "firstname": "John",
- "lastname": "Doe",
- "company": "Example organization",
- "presence": {
- "futurePresenceAccess": "NONE",
- "activityAccess": "NONE",
- "roleAccess": "NONE",
- "noteAccess": "NONE",
- "capabilities": [
- "SMS",
- "FULL_COLLABORATION"
]
}, - "inlist": false,
- "diversionAccess": "NONE",
- "type": "DIRECTORY",
- "vcard": 22,
- "contactStatus": "CONTACT",
- "preferredNumber": "+46812345001",
- "collaboration": true
}
Fetches the contact image of the specified user in an organization.
domain required | string The domain of the contact |
cid required | string The ID of the contact |
ver required | string The image version |
prefWidth | integer <int32> Preferred width (pixels) |
prefHeight | integer <int32> Preferred height (pixels) |
Update a contact's presence information. If the user has no permission to change particular field, it will reply with an old field, without producing forbidden error(silent mode).
If PIDF format is used as input, the response will be empty.
domain required | string The domain of the contact |
cid required | string The ID of the contact |
forcePremappedDiversion | string If set to 'true', activity diversion will override the premapped diversion. |
role | any The current role of the contact |
note | any The presence note |
object (Activity) The presence activity of the contact |
{- "activity": {
- "id": "meeting",
- "expiration": "2010-10-11T05:30:00Z",
- "available": false
}, - "available": false
}
{- "futurePresenceAccess": "NONE",
- "activityAccess": "NONE",
- "roleAccess": "NONE",
- "noteAccess": "NONE",
- "capabilities": [
- "FULL_COLLABORATION"
]
}
Retrieve a contact's presence information.
domain required | string The domain of the contact |
cid required | string The ID of the contact |
{- "presence": {
- "futurePresenceAccess": "NONE",
- "activityAccess": "NONE",
- "roleAccess": "NONE",
- "noteAccess": "NONE",
- "capabilities": [
- "FULL_COLLABORATION"
]
}, - "forbidden": [
- "role",
- "activity",
- "note"
]
}
Update the presence information for a directory contact, with information returned on which fields that failed to update. Note this is not an atomic API. The response will contain a set of fields (in forbidden tag) that were not allowed to change for a particular user. The response will also contain the new presence result. The fields that were allowed to change have their new values and the fields that was forbidden have their old value.
domain required | string The domain of the contact |
cid required | string The ID of the contact |
forcePremappedDiversion | string If set to 'true', activity diversion will override the premapped diversion |
object (presence) The presence information for the contact. | |
forbidden | Array of any Contains one or multiple elements (fields) that the user does not have write access to. |
Unsuccessful
{- "activity": {
- "id": "meeting",
- "expiration": "2010-10-11T05:30:00Z",
- "available": false
}, - "available": false
}
{- "presence": {
- "futurePresenceAccess": "NONE",
- "activityAccess": "NONE",
- "roleAccess": "NONE",
- "noteAccess": "NONE",
- "capabilities": [
- "FULL_COLLABORATION"
]
}, - "forbidden": [
- "role",
- "activity",
- "note"
]
}
Retrieve a contact's vCard information.
domain required | string The domain of the contact |
cid required | string The ID of the contact |
ver | string The vCard version |
{- "Description": {
- "TEL": [
- {
- "value": "+46812345001",
- "parseType": "Resource",
- "type": [
]
}, - {
- "value": "5001",
- "parseType": "Resource",
- "type": [
]
}
], - "group": [
- {
- "value": "Support",
- "parseType": "Resource"
}, - {
- "value": "Technical Support",
- "parseType": "Resource"
}
], - "field": [
- {
- "id": "field1",
- "value": "Field1 content"
}, - {
- "id": "field2",
- "value": "Field2 content"
}, - {
- "id": "field3",
- "value": "Field3 content"
}, - {
- "id": "field4",
- "value": "Field4 content"
}
], - "FN": "John Doe",
- "N": {
- "parseType": "Resource",
- "Family": "Doe",
- "Given": "John"
}, - "ADR": {
- "parseType": "Resource",
- "Country": "Sweden",
- "Street": "Example Street 1",
- "Locality": "111 11",
- "Pcode": "Stockholm"
}, - "EMAIL": {
- "value": "john.doe@example.org",
- "parseType": "Resource"
}, - "ORG": {
- "parseType": "Resource",
- "Orgunit": "Support",
- "Orgname": "Example Organisation"
}
}
}
Update a contact's vCard information.
domain required | string The domain of the contact |
cid required | string The ID of the contact |
required | object (Desc) Contact description |
{- "Description": {
- "TEL": [
- {
- "value": "+46812345001",
- "type": [
]
}, - {
- "value": "5001",
- "type": [
]
}
], - "group": [
- {
- "value": "Support"
}, - {
- "value": "Technical Support"
}
], - "N": {
- "Family": "Doe",
- "Given": "John"
}, - "ADR": {
- "Country": "Sweden",
- "Street": "Example Street 1",
- "Locality": "111 11",
- "Pcode": "Stockholm"
}, - "EMAIL": {
- "value": "john.doe@example.org"
}, - "ORG": {
- "Orgunit": "Support",
- "Orgname": "Example Organisation"
}
}
}
{- "field": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": null,
- "name": "baduser@baddomain.com"
}
], - "warning": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": null,
- "name": "baduser@baddomain.com"
}
], - "generated-id": null
}
Retrieve a contact's directory fields.
domain required | string The domain of the contact |
cid required | string The ID of the contact |
{- "field": [
- {
- "id": "field1",
- "label": "Label1",
- "currentValue": "Field1",
- "editable": true
}, - {
- "id": "field2",
- "currentValue": "Field2",
- "editable": true
}, - {
- "id": "field3",
- "label": "Field3",
- "currentValue": "Field3",
- "editable": true
}, - {
- "id": "field4",
- "currentValue": "Field4",
- "editable": true
}
]
}
Update a contact's directory fields.
domain required | string The domain of the contact |
cid required | string The ID of the contact. |
object (field) List of fields. |
{ "field": [ { "id": "field1", "currentValue": "Field1", "requestedValue": "Field1" }, { "id": "field2", "currentValue": "Field2", "requestedValue": "Field2" }, { "id": "field3", "currentValue": "Field3", "requestedValue": "Field3" }, { "id": "field4", "currentValue": "Field4", "requestedValue": "Field4" } ] }
{- "field": [
- {
- "id": "field1",
- "currentValue": "Field1",
- "requestedValue": "Field1"
}, - {
- "id": "field2",
- "currentValue": "Field2",
- "requestedValue": "Field2"
}, - {
- "id": "field3",
- "currentValue": "Field3",
- "requestedValue": "Field3"
}, - {
- "id": "field4",
- "currentValue": "Field4",
- "requestedValue": "Field4"
}
]
}
Update a contact's activity.
domain required | string The domain of the contact |
cid required | string The ID of the contact |
activity required | string The presence activity |
available | boolean The availability |
Update a contact's activity expiration.
domain required | string The domain of the contact |
cid required | string The ID of the contact |
expires required | string The activity expires string, or 'never' if the activity should not have an expiry time. |
The Contacts Information V1 API has a set of commands to get more information and manipulate individual contacts. This is based on the presence authorization in Dstny Core. Contact management is authenticated using API tickets for Contact search.
Use the Contacts Information V1 API to:
Retrieve a contact's presence information, either as structure or in 'application/pidf+xml' format, see RFC3863/RFC4480/4481/RFC4482.
When fetching information in PIDF format, only domain and cid shall be used as input parameters.
domain required | string The domain of the contact |
cid required | string The ID of the contact |
startDate | string Start date in UTC format. Eg. 2020-04-01T00:00:00Z. If startDate is not used, it will be set to now. |
endDate | string End date in UTC format. Eg. 2020-05-01T00:00:00Z. If endDate is not used, it will be set to 24 hours from startDate. |
expandRecurrence | string If set to true, the recurrence data should be expanded in the response. If expandRecurrence is not set, it will default to false. |
eventType | string The type of events that should be included in the result. Valid values are: |
cachedCalendar | boolean Fetch only synchronized calendar events when value is true, i.e. the response will only contain events that are within 24 hours. If cachedCalendar is not set, it will default to false. |
{- "presence": [
- {
- "role": "business",
- "note": "Daily standup",
- "presenceId": "3",
- "activity": "meeting",
- "priority": 0,
- "name": "Standup meeting",
- "source": "INTERNAL",
- "modifiable": true,
- "deleted": false,
- "futurePresenceAccess": "WRITE",
- "activityAccess": "WRITE",
- "roleAccess": "WRITE",
- "noteAccess": "WRITE",
- "dt-start": "2021-02-01T08:30:00Z",
- "dt-end": "2021-02-01T09:00:00Z",
- "tzid": "Europe/Stockholm",
- "instances": [
- {
- "deleted": false,
- "dt-start": "2021-02-01T09:30:00Z",
- "dt-end": "2021-02-01T10:00:00Z",
- "instanceId": "1612168200000"
}, - {
- "deleted": false,
- "dt-start": "2021-02-02T09:30:00Z",
- "dt-end": "2021-02-02T10:00:00Z",
- "instanceId": "1612254600000"
}
], - "recur": {
- "freq": "WEEKLY",
- "byday": "MO,TU,WE,TH"
}
}, - {
- "role": "business",
- "note": "Lunch",
- "presenceId": "1",
- "activity": "lunch",
- "priority": 0,
- "name": "Lunch",
- "source": "INTERNAL",
- "modifiable": true,
- "deleted": false,
- "futurePresenceAccess": "WRITE",
- "activityAccess": "WRITE",
- "roleAccess": "WRITE",
- "noteAccess": "WRITE",
- "dt-start": "2021-01-10T11:00:00Z",
- "dt-end": "2021-01-10T12:00:00Z",
- "tzid": "Europe/Stockholm",
- "instances": [
- {
- "deleted": false,
- "dt-start": "2021-02-01T12:00:00Z",
- "dt-end": "2021-02-01T13:00:00Z",
- "instanceId": "1612341000000"
}, - {
- "deleted": false,
- "dt-start": "2021-02-02T12:00:00Z",
- "dt-end": "2021-02-02T13:00:00Z",
- "instanceId": "1612427400000"
}
], - "recur": {
- "until": "2021-02-14T23:00:00Z",
- "freq": "DAILY"
}
}
], - "calendar-sync-status": "calendar-sync-not-enabled"
}
Update presence information in 'application/pidf+xml' format, see RFC3863/RFC4480/4481/RFC4482.
domain required | string The domain of the contact |
cid required | string The ID of the contact |
{- "field": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": null,
- "name": "baduser@baddomain.com"
}
], - "warning": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": null,
- "name": "baduser@baddomain.com"
}
], - "generated-id": null
}
Add scheduled presence change for a contact.
domain required | string The domain of the contact |
cid required | string The ID of the contact |
role | any A role type. Eg. business or private. Role types can be managed under 'Presence states/Roles' in the 'Admin view'. |
note | any A string containing a note, maximum 250 characters long. |
presenceId | any An identifier of this future presence to be used in URL for methods(GET/PUT/DELETE) operating on a specific future presence. |
activity | any An activity type. Eg. free, busy, lunch, meeting. Activity types can be managed under 'Presence states/Activities' in the 'Admin view'. |
priority | any <int32> The priority decides how activities overlap. Highest priority overrides lower priority presence changes. This makes it possible to handle "double booking" due to synchronizing with external calendars. The lowest priority 0 is default. |
name | any The name of the scheduled activity. |
busyType | any Enum: "FREE" "TENTATIVE" "BUSY" "OOF" "WORKING_ELSEWHERE" The free/busy type of the external calendar event. |
source | any The source of the presence item. Values are INTERNAL for client app created items and CALENDAR for items synchronized from external calendar. |
modifiable | any A boolean value denoting whether the presence item is modifiable (i.e. a locally created item) or not modifiable (synced from external calendar). |
deleted | any A boolean value denoting whether the presence has been deleted (true) and therefore should either not be displayed if the tag modifiable is set to true or displayed as greyed out if synchronized from an external calendar. |
private | any Indicate if the external calendar event is set to private. |
dt-start | any The start date and time for activity. Standard XML schema formatted date string in UTC format. Eg. 2020-04-04T09:00:00Z |
dt-end | any The end date and time for activity. Can be max 30 days apart from dt-start. Eg. 2020-04-04T09:00:00Z |
tzid | any The timezone for the dt-start and dt-end value. |
Array of objects (PresenceInstanceDto) List of presence instances, only presented when expandRecurrance is set to true in the request. | |
object (RecurrenceDTO) Recurrence settings |
{- "role": "business",
- "note": "Coffee time",
- "activity": "out_of_office",
- "priority": 0,
- "name": "Coffe break",
- "source": "INTERNAL",
- "modifiable": true,
- "deleted": false,
- "futurePresenceAccess": "WRITE",
- "activityAccess": "WRITE",
- "roleAccess": "WRITE",
- "noteAccess": "WRITE",
- "dt-start": "2021-01-10T14:30:00Z",
- "dt-end": "2021-01-10T14:45:00Z",
- "tzid": "Europe/Stockholm",
- "recur": {
- "freq": "WEEKLY",
- "byday": "MO,TU,WE,TH"
}
}
{- "role": "business",
- "note": "Coffee time",
- "presenceId": "4",
- "activity": "out_of_office",
- "priority": 0,
- "name": "Coffe break",
- "source": "INTERNAL",
- "modifiable": true,
- "deleted": false,
- "futurePresenceAccess": "WRITE",
- "activityAccess": "WRITE",
- "roleAccess": "WRITE",
- "noteAccess": "WRITE",
- "dt-start": "2021-01-10T14:30:00Z",
- "dt-end": "2021-01-10T14:45:00Z",
- "tzid": "Europe/Stockholm",
- "recur": {
- "freq": "WEEKLY",
- "byday": "MO,TU,WE,TH"
}
}
Retrieve a specific scheduled presence change for a contact.
domain required | string The domain of the contact |
cid required | string The ID of the contact |
presenceId required | string The presence ID that identifies scheduled presence |
{- "role": "business",
- "note": "Daily standup",
- "presenceId": "3",
- "activity": "meeting",
- "priority": 0,
- "name": "Standup meeting",
- "source": "INTERNAL",
- "modifiable": true,
- "deleted": false,
- "futurePresenceAccess": "WRITE",
- "activityAccess": "WRITE",
- "roleAccess": "WRITE",
- "noteAccess": "WRITE",
- "dt-start": "2021-02-01T08:30:00Z",
- "dt-end": "2021-02-01T09:00:00Z",
- "tzid": "Europe/Stockholm",
- "recur": {
- "freq": "WEEKLY",
- "byday": "MO,TU,WE,TH"
}
}
Update a contact's scheduled presence change.
domain required | string The domain of the contact |
cid required | string The ID of the contact |
presenceId required | string The presence ID that identifies scheduled presence |
role | any A role type. Eg. business or private. Role types can be managed under 'Presence states/Roles' in the 'Admin view'. |
note | any A string containing a note, maximum 250 characters long. |
presenceId | any An identifier of this future presence to be used in URL for methods(GET/PUT/DELETE) operating on a specific future presence. |
activity | any An activity type. Eg. free, busy, lunch, meeting. Activity types can be managed under 'Presence states/Activities' in the 'Admin view'. |
priority | any <int32> The priority decides how activities overlap. Highest priority overrides lower priority presence changes. This makes it possible to handle "double booking" due to synchronizing with external calendars. The lowest priority 0 is default. |
name | any The name of the scheduled activity. |
busyType | any Enum: "FREE" "TENTATIVE" "BUSY" "OOF" "WORKING_ELSEWHERE" The free/busy type of the external calendar event. |
source | any The source of the presence item. Values are INTERNAL for client app created items and CALENDAR for items synchronized from external calendar. |
modifiable | any A boolean value denoting whether the presence item is modifiable (i.e. a locally created item) or not modifiable (synced from external calendar). |
deleted | any A boolean value denoting whether the presence has been deleted (true) and therefore should either not be displayed if the tag modifiable is set to true or displayed as greyed out if synchronized from an external calendar. |
private | any Indicate if the external calendar event is set to private. |
dt-start | any The start date and time for activity. Standard XML schema formatted date string in UTC format. Eg. 2020-04-04T09:00:00Z |
dt-end | any The end date and time for activity. Can be max 30 days apart from dt-start. Eg. 2020-04-04T09:00:00Z |
tzid | any The timezone for the dt-start and dt-end value. |
Array of objects (PresenceInstanceDto) List of presence instances, only presented when expandRecurrance is set to true in the request. | |
object (RecurrenceDTO) Recurrence settings |
{- "role": "business",
- "note": "Daily standup",
- "presenceId": "3",
- "activity": "meeting",
- "priority": 0,
- "name": "Standup meeting",
- "source": "INTERNAL",
- "modifiable": true,
- "deleted": false,
- "futurePresenceAccess": "WRITE",
- "activityAccess": "WRITE",
- "roleAccess": "WRITE",
- "noteAccess": "WRITE",
- "dt-start": "2021-02-01T08:30:00Z",
- "dt-end": "2021-02-01T09:00:00Z",
- "tzid": "Europe/Stockholm",
- "recur": {
- "freq": "WEEKLY",
- "byday": "MO,TU,WE,TH"
}
}
{- "field": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": null,
- "name": "baduser@baddomain.com"
}
], - "warning": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": null,
- "name": "baduser@baddomain.com"
}
], - "generated-id": null
}
Remove a contact's scheduled presence change.
domain required | string The domain of the contact |
cid required | string The ID of the contact |
presenceId required | string The presence ID that identifies scheduled presence |
startDate | string Delete from date in UTC format. Eg. 2020-04-01T00:00:00Z |
untilDate | string Delete to date in UTC format. Eg. 2020-05-01T00:00:00Z |
{- "field": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": null,
- "name": "baduser@baddomain.com"
}
], - "warning": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": null,
- "name": "baduser@baddomain.com"
}
], - "generated-id": null
}
Retrieve a contact's information.
domain required | string The domain of the contact |
cid required | string The ID of the contact |
A directory contact
{- "id": "john@example.org",
- "firstname": "John",
- "lastname": "Doe",
- "company": "Example organization",
- "presence": {
- "futurePresenceAccess": "NONE",
- "activityAccess": "NONE",
- "roleAccess": "NONE",
- "noteAccess": "NONE",
- "capabilities": [
- "SMS",
- "FULL_COLLABORATION"
]
}, - "inlist": false,
- "diversionAccess": "NONE",
- "type": "DIRECTORY",
- "vcard": 22,
- "contactStatus": "CONTACT",
- "preferredNumber": "+46812345001",
- "collaboration": true
}
Retrieve a contact's image.
domain required | string The domain of the contact |
cid required | string The ID of the contact |
ver required | string The image version |
prefWidth | integer <int32> Preferred width (pixels) |
prefHeight | integer <int32> Preferred height (pixels) |
Retrieve a contact's line state.
domain required | string The domain of the user accessing the API |
cid required | string The contact ID (including domain) for the user with the fields. The field should have the follow format user@domain or number@domain when fetching a mobile subscriber's line state |
Set a contact's presence note.
domain required | string The domain of the user accessing the API |
cid required | string The contact ID (including domain) for the user with the fields. The field should have the follow format user@domain or number@domain when fetching a mobile subscriber's line state |
note | string The note |
ver | string Version number (not used) |
To read a contact's vCard information.
domain required | string The domain of the contact |
cid required | string The ID of the contact. The ID can be in 2 formats: user@domain or phonenumber |
ver | string The vCard version |
{- "Description": {
- "TEL": [
- {
- "value": "+46812345001",
- "parseType": "Resource",
- "type": [
]
}, - {
- "value": "5001",
- "parseType": "Resource",
- "type": [
]
}
], - "group": [
- {
- "value": "Support",
- "parseType": "Resource"
}, - {
- "value": "Technical Support",
- "parseType": "Resource"
}
], - "field": [
- {
- "id": "field1",
- "value": "Field1 content"
}, - {
- "id": "field2",
- "value": "Field2 content"
}, - {
- "id": "field3",
- "value": "Field3 content"
}, - {
- "id": "field4",
- "value": "Field4 content"
}
], - "FN": "John Doe",
- "N": {
- "parseType": "Resource",
- "Family": "Doe",
- "Given": "John"
}, - "ADR": {
- "parseType": "Resource",
- "Country": "Sweden",
- "Street": "Example Street 1",
- "Locality": "111 11",
- "Pcode": "Stockholm"
}, - "EMAIL": {
- "value": "john.doe@example.org",
- "parseType": "Resource"
}, - "ORG": {
- "parseType": "Resource",
- "Orgunit": "Support",
- "Orgname": "Example Organisation"
}
}
}
Update a contact's vCard information.
domain required | string The domain of the contact |
cid required | string The ID of the contact |
required | object (Desc) Contact description |
{- "Description": {
- "TEL": [
- {
- "value": "+46812345001",
- "type": [
]
}, - {
- "value": "5001",
- "type": [
]
}
], - "group": [
- {
- "value": "Support"
}, - {
- "value": "Technical Support"
}
], - "N": {
- "Family": "Doe",
- "Given": "John"
}, - "ADR": {
- "Country": "Sweden",
- "Street": "Example Street 1",
- "Locality": "111 11",
- "Pcode": "Stockholm"
}, - "EMAIL": {
- "value": "john.doe@example.org"
}, - "ORG": {
- "Orgunit": "Support",
- "Orgname": "Example Organisation"
}
}
}
{- "field": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": null,
- "name": "baduser@baddomain.com"
}
], - "warning": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": null,
- "name": "baduser@baddomain.com"
}
], - "generated-id": null
}
Do a number lookup in an external directory.
domain required | string The domain of the organization in which the request is made |
number required | string The number to look up in the external directory |
{- "name": "Jane Doe"
}
List the supported time zone ID values and their offset values
when | string Calculate offsets for this given date Standard XML schema formatted date string in UTC format. Eg. 2021-01-01T09:00:00Z |
tzid | string Set to a time zone ID to view only that timezone. Useful when the offset for a time zone is wanted. |
{- "timezone": [
- {
- "region": "America",
- "city": "Montreal",
- "offset": "-18000000",
- "tzid": "America/Montreal"
}, - {
- "region": "Europe",
- "city": "Stockholm",
- "offset": "3600000",
- "tzid": "Europe/Stockholm"
}, - {
- "region": "Etc",
- "city": "GMT",
- "offset": "0",
- "tzid": "Etc/GMT"
}
]
}
Update a contact's activity.
domain required | string The domain of the contact |
cid required | string The ID of the contact |
activity required | string The presence activity |
available | boolean The availability |
Update a contact's activity expiration.
domain required | string The domain of the contact |
cid required | string The ID of the contact |
expires required | string The activity expires string, or 'never' if the activity should not have an expiry time. |
The Personal Contacts API is used to manage contact list for all users at user/group/organization level in a specific organization.
Use the Personal Contacts API to:
List all contacts for a user in the organization.
domain required | string The domain of the user that owns the contacts |
user required | string The username of the user that owns the contacts |
{- "personal_contact": [
- {
- "cid": "167271@internal",
- "company": "MinFirma AB",
- "department": "Rnd",
- "firstname": "John",
- "lastname": "Doe",
- "shortname": "jodo",
- "email": "info@example.com",
- "street": "Firmagatan 1",
- "city": "Stockholm",
- "postalcode": "12177",
- "country": "Sweden",
- "speeddial": 5,
- "showInDefaultContactList": true,
- "contactStatus": "VIP",
- "ownerType": "USER",
- "phoneNumbers": [
- {
- "type": "WORK",
- "phoneNumber": "+46850654760",
- "preferredNumber": true
}
]
}, - {
- "cid": "167271@internal",
- "company": "MinFirma AB",
- "department": "Support",
- "firstname": "Bob",
- "lastname": "Dilen",
- "shortname": "bodi",
- "email": "info@example.com",
- "street": "Firmagatan 1",
- "city": "Stockholm",
- "postalcode": "12177",
- "country": "Sweden",
- "speeddial": 7,
- "showInDefaultContactList": true,
- "contactStatus": "CONTACT",
- "ownerType": "USER",
- "phoneNumbers": [
- {
- "type": "MAIN",
- "phoneNumber": "+46890657890",
- "preferredNumber": true
}
]
}
]
}
Create a contact for a user in the organization.
domain required | string The domain of the user that owns the contact |
user required | string The username of the user that owns the contact |
cid | any The ID of the contact. Required when updating a contact. |
company | string <= 64 characters The company of the contact. |
department | string <= 64 characters The department that the contact belongs to. |
firstname | string <= 64 characters The first name of the contact. A string preferably without spaces as it is not possible to search for first name together with last name if either has a space in the name. |
lastname | string <= 64 characters The last name of the contact. A string preferably without spaces as it is not possible to search for first name together with last name if either has a space in the name. |
shortname | string <= 64 characters The short name of the contact. A string preferably without spaces as it is not possible to search for first name together with last name if either has a space in the name. |
string <= 64 characters The email of the contact. | |
street | string <= 64 characters The street address of the contact. |
city | string <= 64 characters The city of residence for the contact. |
postalcode | string <= 64 characters The postal code of the address of the contact. |
country | string <= 64 characters The country of residence for the contact. |
speeddial | number <int32> [ 1 .. 10 ] The speed dial number. The value should be an integer in range from 1 to 10. |
showInDefaultContactList | any If set to 'true' then the contact is shown in the default contact list. Otherwise set to 'false'. |
contactStatus | any Enum: "FAVORITE" "CONTACT" "VIP" "BLOCKED" The status of the contact. Default is 'CONTACT'. |
object (phoneNumbers) A list of phone numbers for the contact. |
{- "company": "MinFirma AB",
- "department": "Rnd",
- "firstname": "John",
- "lastname": "Doe",
- "shortname": "jodo",
- "email": "info@example.com",
- "street": "Firmagatan 1",
- "city": "Stockholm",
- "postalcode": "12177",
- "country": "Sweden",
- "speeddial": 5,
- "showInDefaultContactList": true,
- "contactStatus": "VIP",
- "phoneNumbers": [
- {
- "type": "WORK",
- "phoneNumber": "+46850654760",
- "preferredNumber": true
}
]
}
{- "cid": "167271@internal",
- "company": "MinFirma AB",
- "department": "Rnd",
- "firstname": "John",
- "lastname": "Doe",
- "shortname": "jodo",
- "email": "info@example.com",
- "street": "Firmagatan 1",
- "city": "Stockholm",
- "postalcode": "12177",
- "country": "Sweden",
- "speeddial": 5,
- "showInDefaultContactList": true,
- "contactStatus": "VIP",
- "ownerType": "USER",
- "phoneNumbers": [
- {
- "type": "WORK",
- "phoneNumber": "+46850654760",
- "preferredNumber": true
}
]
}
List all contacts for a user group in the organization.
domain required | string The domain of the user group that owns the contacts |
groupId required | string The name of the user group that owns the contacts |
{- "personal_contact": [
- {
- "cid": "167271@internal",
- "company": "MinFirma AB",
- "department": "Rnd",
- "firstname": "John",
- "lastname": "Doe",
- "shortname": "jodo",
- "email": "info@example.com",
- "street": "Firmagatan 1",
- "city": "Stockholm",
- "postalcode": "12177",
- "country": "Sweden",
- "speeddial": 5,
- "showInDefaultContactList": true,
- "contactStatus": "VIP",
- "ownerType": "GROUP",
- "phoneNumbers": [
- {
- "type": "WORK",
- "phoneNumber": "+46850654760",
- "preferredNumber": true,
- "abbreviatednumber": "4760"
}
]
}, - {
- "cid": "167271@internal",
- "company": "MinFirma AB",
- "department": "Support",
- "firstname": "Bob",
- "lastname": "Dilen",
- "shortname": "bodi",
- "email": "info@example.com",
- "street": "Firmagatan 1",
- "city": "Stockholm",
- "postalcode": "12177",
- "country": "Sweden",
- "speeddial": 7,
- "showInDefaultContactList": true,
- "contactStatus": "CONTACT",
- "ownerType": "GROUP",
- "phoneNumbers": [
- {
- "type": "MAIN",
- "phoneNumber": "+46890657890",
- "preferredNumber": true,
- "abbreviatednumber": "7890"
}
]
}
]
}
Create a contact for a user group in the organization.
domain required | string The domain of the user group that owns the contact |
groupId required | string The name of the user group that owns the contact |
cid | any The ID of the contact. Required when updating a contact. |
company | string <= 64 characters The company of the contact. |
department | string <= 64 characters The department that the contact belongs to. |
firstname | string <= 64 characters The first name of the contact. A string preferably without spaces as it is not possible to search for first name together with last name if either has a space in the name. |
lastname | string <= 64 characters The last name of the contact. A string preferably without spaces as it is not possible to search for first name together with last name if either has a space in the name. |
shortname | string <= 64 characters The short name of the contact. A string preferably without spaces as it is not possible to search for first name together with last name if either has a space in the name. |
string <= 64 characters The email of the contact. | |
street | string <= 64 characters The street address of the contact. |
city | string <= 64 characters The city of residence for the contact. |
postalcode | string <= 64 characters The postal code of the address of the contact. |
country | string <= 64 characters The country of residence for the contact. |
speeddial | number <int32> [ 1 .. 10 ] The speed dial number. The value should be an integer in range from 1 to 10. |
showInDefaultContactList | any If set to 'true' then the contact is shown in the default contact list. Otherwise set to 'false'. |
contactStatus | any Enum: "FAVORITE" "CONTACT" "VIP" "BLOCKED" The status of the contact. Default is 'CONTACT'. |
object (phoneNumbers) A list of phone numbers for the contact. |
{- "company": "MinFirma AB",
- "department": "Rnd",
- "firstname": "John",
- "lastname": "Doe",
- "shortname": "jodo",
- "email": "info@example.com",
- "street": "Firmagatan 1",
- "city": "Stockholm",
- "postalcode": "12177",
- "country": "Sweden",
- "speeddial": 5,
- "showInDefaultContactList": true,
- "contactStatus": "VIP",
- "phoneNumbers": [
- {
- "type": "WORK",
- "phoneNumber": "+46850654760",
- "preferredNumber": true,
- "abbreviatednumber": "4760"
}
]
}
{- "cid": "167271@internal",
- "company": "MinFirma AB",
- "department": "Rnd",
- "firstname": "John",
- "lastname": "Doe",
- "shortname": "jodo",
- "email": "info@example.com",
- "street": "Firmagatan 1",
- "city": "Stockholm",
- "postalcode": "12177",
- "country": "Sweden",
- "speeddial": 5,
- "showInDefaultContactList": true,
- "contactStatus": "VIP",
- "ownerType": "GROUP",
- "phoneNumbers": [
- {
- "type": "WORK",
- "phoneNumber": "+46850654760",
- "preferredNumber": true,
- "abbreviatednumber": "4760"
}
]
}
List all contacts on organization level when requested by an administrator.
domain required | string The domain of the organization that owns the contacts |
{- "personal_contact": [
- {
- "cid": "167271@internal",
- "company": "MinFirma AB",
- "department": "Rnd",
- "firstname": "John",
- "lastname": "Doe",
- "shortname": "jodo",
- "email": "info@example.com",
- "street": "Firmagatan 1",
- "city": "Stockholm",
- "postalcode": "12177",
- "country": "Sweden",
- "speeddial": 5,
- "showInDefaultContactList": true,
- "contactStatus": "VIP",
- "ownerType": "ORG",
- "phoneNumbers": [
- {
- "type": "WORK",
- "phoneNumber": "+46850654760",
- "preferredNumber": true,
- "abbreviatednumber": "4760"
}
]
}, - {
- "cid": "167271@internal",
- "company": "MinFirma AB",
- "department": "Support",
- "firstname": "Bob",
- "lastname": "Dilen",
- "shortname": "bodi",
- "email": "info@example.com",
- "street": "Firmagatan 1",
- "city": "Stockholm",
- "postalcode": "12177",
- "country": "Sweden",
- "speeddial": 7,
- "showInDefaultContactList": true,
- "contactStatus": "CONTACT",
- "ownerType": "ORG",
- "phoneNumbers": [
- {
- "type": "MAIN",
- "phoneNumber": "+46890657890",
- "preferredNumber": true,
- "abbreviatednumber": "7890"
}
]
}
]
}
Creates contact on organization level when requested by an administrator.
domain required | string The domain of the organization that owns the contact |
cid | any The ID of the contact. Required when updating a contact. |
company | string <= 64 characters The company of the contact. |
department | string <= 64 characters The department that the contact belongs to. |
firstname | string <= 64 characters The first name of the contact. A string preferably without spaces as it is not possible to search for first name together with last name if either has a space in the name. |
lastname | string <= 64 characters The last name of the contact. A string preferably without spaces as it is not possible to search for first name together with last name if either has a space in the name. |
shortname | string <= 64 characters The short name of the contact. A string preferably without spaces as it is not possible to search for first name together with last name if either has a space in the name. |
string <= 64 characters The email of the contact. | |
street | string <= 64 characters The street address of the contact. |
city | string <= 64 characters The city of residence for the contact. |
postalcode | string <= 64 characters The postal code of the address of the contact. |
country | string <= 64 characters The country of residence for the contact. |
speeddial | number <int32> [ 1 .. 10 ] The speed dial number. The value should be an integer in range from 1 to 10. |
showInDefaultContactList | any If set to 'true' then the contact is shown in the default contact list. Otherwise set to 'false'. |
contactStatus | any Enum: "FAVORITE" "CONTACT" "VIP" "BLOCKED" The status of the contact. Default is 'CONTACT'. |
object (phoneNumbers) A list of phone numbers for the contact. |
{- "company": "MinFirma AB",
- "department": "Rnd",
- "firstname": "John",
- "lastname": "Doe",
- "shortname": "jodo",
- "email": "info@example.com",
- "street": "Firmagatan 1",
- "city": "Stockholm",
- "postalcode": "12177",
- "country": "Sweden",
- "speeddial": 5,
- "showInDefaultContactList": true,
- "contactStatus": "VIP",
- "phoneNumbers": [
- {
- "type": "WORK",
- "phoneNumber": "+46850654760",
- "preferredNumber": true,
- "abbreviatednumber": "4760"
}
]
}
{- "cid": "167271@internal",
- "company": "MinFirma AB",
- "department": "Rnd",
- "firstname": "John",
- "lastname": "Doe",
- "shortname": "jodo",
- "email": "info@example.com",
- "street": "Firmagatan 1",
- "city": "Stockholm",
- "postalcode": "12177",
- "country": "Sweden",
- "speeddial": 5,
- "showInDefaultContactList": true,
- "contactStatus": "VIP",
- "ownerType": "ORG",
- "phoneNumbers": [
- {
- "type": "WORK",
- "phoneNumber": "+46850654760",
- "preferredNumber": true,
- "abbreviatednumber": "4760"
}
]
}
Retrieve the specific contact for a user in the organization.
domain required | string The domain of the user that owns the contact |
user required | string The username of the user that owns the contact |
cid required | string The ID of the contact |
{- "cid": "167271@internal",
- "company": "MinFirma AB",
- "department": "Rnd",
- "firstname": "John",
- "lastname": "Doe",
- "shortname": "jodo",
- "email": "info@example.com",
- "street": "Firmagatan 1",
- "city": "Stockholm",
- "postalcode": "12177",
- "country": "Sweden",
- "speeddial": 5,
- "showInDefaultContactList": true,
- "contactStatus": "VIP",
- "ownerType": "USER",
- "phoneNumbers": [
- {
- "type": "WORK",
- "phoneNumber": "+46850654760",
- "preferredNumber": true
}
]
}
Update the specific contact for a user in the organization.
domain required | string The domain of the user that owns the contact |
user required | string The username of the user that owns the contact |
cid required | string The ID of the contact |
cid | any The ID of the contact. Required when updating a contact. |
company | string <= 64 characters The company of the contact. |
department | string <= 64 characters The department that the contact belongs to. |
firstname | string <= 64 characters The first name of the contact. A string preferably without spaces as it is not possible to search for first name together with last name if either has a space in the name. |
lastname | string <= 64 characters The last name of the contact. A string preferably without spaces as it is not possible to search for first name together with last name if either has a space in the name. |
shortname | string <= 64 characters The short name of the contact. A string preferably without spaces as it is not possible to search for first name together with last name if either has a space in the name. |
string <= 64 characters The email of the contact. | |
street | string <= 64 characters The street address of the contact. |
city | string <= 64 characters The city of residence for the contact. |
postalcode | string <= 64 characters The postal code of the address of the contact. |
country | string <= 64 characters The country of residence for the contact. |
speeddial | number <int32> [ 1 .. 10 ] The speed dial number. The value should be an integer in range from 1 to 10. |
showInDefaultContactList | any If set to 'true' then the contact is shown in the default contact list. Otherwise set to 'false'. |
contactStatus | any Enum: "FAVORITE" "CONTACT" "VIP" "BLOCKED" The status of the contact. Default is 'CONTACT'. |
object (phoneNumbers) A list of phone numbers for the contact. |
{- "cid": "167271@internal",
- "company": "MinFirma AB",
- "department": "Support",
- "firstname": "Bob",
- "lastname": "Dilen",
- "shortname": "bodi",
- "email": "info@example.com",
- "street": "Firmagatan 1",
- "city": "Stockholm",
- "postalcode": "12177",
- "country": "Sweden",
- "speeddial": 7,
- "showInDefaultContactList": true,
- "contactStatus": "CONTACT",
- "phoneNumbers": [
- {
- "type": "MAIN",
- "phoneNumber": "+46890657890",
- "preferredNumber": true
}
]
}
"string"
Delete the specific contact for a user.
domain required | string The domain of the user that owns the contact |
user required | string The username of the user that owns the contact |
cid required | string The ID of the contact |
"string"
Retrieve a contact for a user group in the organization.
domain required | string The domain of the user group that owns the contact |
groupId required | string The name of the user group that owns the contact |
cid required | string The ID of the contact |
{- "cid": "167271@internal",
- "company": "MinFirma AB",
- "department": "Rnd",
- "firstname": "John",
- "lastname": "Doe",
- "shortname": "jodo",
- "email": "info@example.com",
- "street": "Firmagatan 1",
- "city": "Stockholm",
- "postalcode": "12177",
- "country": "Sweden",
- "speeddial": 5,
- "showInDefaultContactList": true,
- "contactStatus": "VIP",
- "ownerType": "GROUP",
- "phoneNumbers": [
- {
- "type": "WORK",
- "phoneNumber": "+46850654760",
- "preferredNumber": true,
- "abbreviatednumber": "4760"
}
]
}
Update the specific contact for a user group in the organization.
domain required | string The domain of the user group that owns the contact |
groupId required | string The name of the user group that owns the contact |
cid required | string The ID of the contact |
cid | any The ID of the contact. Required when updating a contact. |
company | string <= 64 characters The company of the contact. |
department | string <= 64 characters The department that the contact belongs to. |
firstname | string <= 64 characters The first name of the contact. A string preferably without spaces as it is not possible to search for first name together with last name if either has a space in the name. |
lastname | string <= 64 characters The last name of the contact. A string preferably without spaces as it is not possible to search for first name together with last name if either has a space in the name. |
shortname | string <= 64 characters The short name of the contact. A string preferably without spaces as it is not possible to search for first name together with last name if either has a space in the name. |
string <= 64 characters The email of the contact. | |
street | string <= 64 characters The street address of the contact. |
city | string <= 64 characters The city of residence for the contact. |
postalcode | string <= 64 characters The postal code of the address of the contact. |
country | string <= 64 characters The country of residence for the contact. |
speeddial | number <int32> [ 1 .. 10 ] The speed dial number. The value should be an integer in range from 1 to 10. |
showInDefaultContactList | any If set to 'true' then the contact is shown in the default contact list. Otherwise set to 'false'. |
contactStatus | any Enum: "FAVORITE" "CONTACT" "VIP" "BLOCKED" The status of the contact. Default is 'CONTACT'. |
object (phoneNumbers) A list of phone numbers for the contact. |
{- "cid": "167271@internal",
- "company": "MinFirma AB",
- "department": "Support",
- "firstname": "Bob",
- "lastname": "Dilen",
- "shortname": "bodi",
- "email": "info@example.com",
- "street": "Firmagatan 1",
- "city": "Stockholm",
- "postalcode": "12177",
- "country": "Sweden",
- "speeddial": 7,
- "showInDefaultContactList": true,
- "contactStatus": "CONTACT",
- "phoneNumbers": [
- {
- "type": "MAIN",
- "phoneNumber": "+46890657890",
- "preferredNumber": true,
- "abbreviatednumber": "7890"
}
]
}
"string"
Delete the specific contact for a user group in the organization.
domain required | string The domain of the user group that owns the contact |
groupId required | string The name of the user group that owns the contact |
cid required | string The ID of the contact |
"string"
Retrieve the specific contact on the organization level when requested by an administrator.
domain required | string The domain of the organization that owns the contact |
cid required | string The ID of the contact |
{- "cid": "167271@internal",
- "company": "MinFirma AB",
- "department": "Rnd",
- "firstname": "John",
- "lastname": "Doe",
- "shortname": "jodo",
- "email": "info@example.com",
- "street": "Firmagatan 1",
- "city": "Stockholm",
- "postalcode": "12177",
- "country": "Sweden",
- "speeddial": 5,
- "showInDefaultContactList": true,
- "contactStatus": "VIP",
- "ownerType": "ORG",
- "phoneNumbers": [
- {
- "type": "WORK",
- "phoneNumber": "+46850654760",
- "preferredNumber": true,
- "abbreviatednumber": "4760"
}
]
}
Update the specific contact on organization level when requested by an administrator.
domain required | string The domain of the organization that owns the contact |
cid required | string The ID of the contact |
cid | any The ID of the contact. Required when updating a contact. |
company | string <= 64 characters The company of the contact. |
department | string <= 64 characters The department that the contact belongs to. |
firstname | string <= 64 characters The first name of the contact. A string preferably without spaces as it is not possible to search for first name together with last name if either has a space in the name. |
lastname | string <= 64 characters The last name of the contact. A string preferably without spaces as it is not possible to search for first name together with last name if either has a space in the name. |
shortname | string <= 64 characters The short name of the contact. A string preferably without spaces as it is not possible to search for first name together with last name if either has a space in the name. |
string <= 64 characters The email of the contact. | |
street | string <= 64 characters The street address of the contact. |
city | string <= 64 characters The city of residence for the contact. |
postalcode | string <= 64 characters The postal code of the address of the contact. |
country | string <= 64 characters The country of residence for the contact. |
speeddial | number <int32> [ 1 .. 10 ] The speed dial number. The value should be an integer in range from 1 to 10. |
showInDefaultContactList | any If set to 'true' then the contact is shown in the default contact list. Otherwise set to 'false'. |
contactStatus | any Enum: "FAVORITE" "CONTACT" "VIP" "BLOCKED" The status of the contact. Default is 'CONTACT'. |
object (phoneNumbers) A list of phone numbers for the contact. |
{- "cid": "167271@internal",
- "company": "MinFirma AB",
- "department": "Support",
- "firstname": "Bob",
- "lastname": "Dilen",
- "shortname": "bodi",
- "email": "info@example.com",
- "street": "Firmagatan 1",
- "city": "Stockholm",
- "postalcode": "12177",
- "country": "Sweden",
- "speeddial": 7,
- "showInDefaultContactList": true,
- "contactStatus": "CONTACT",
- "phoneNumbers": [
- {
- "type": "MAIN",
- "phoneNumber": "+46890657890",
- "preferredNumber": true,
- "abbreviatednumber": "7890"
}
]
}
"string"
Delete the specific contact on organization level when requested by an administrator.
domain required | string The domain of the organization that owns the contact |
cid required | string The ID of the contact |
"string"
Retrieve localized phone labels.
domain required | string The domain of the organization |
locale required | string The locale to be translated to |
{- "phoneLabels": [
- {
- "labelValue": "HOME",
- "labelName": "Home"
}, - {
- "labelValue": "WORK",
- "labelName": "Work"
}, - {
- "labelValue": "MOBILE",
- "labelName": "Mobile"
}, - {
- "labelValue": "MAIN",
- "labelName": "Main"
}, - {
- "labelValue": "WORK_FAX",
- "labelName": "Work fax"
}, - {
- "labelValue": "HOME_FAX",
- "labelName": "Home fax"
}, - {
- "labelValue": "PAGER",
- "labelName": "Pager"
}, - {
- "labelValue": "OTHER",
- "labelName": "Other"
}
]
}
The Activity Diversion Mapping API is used to manage diversions for activities.
Use the Activity Diversion Mapping API to:
Get all activity diversions for a user.
userId required | string The user ID of the user accessing the API |
domain required | string The domain of the user accessing the API |
{- "diversion-mapping": [
- {
- "activityId": "busy",
- "phoneNumber": "+12345678"
}, - {
- "activityId": "lunch",
- "phoneNumber": "+12345679"
}, - {
- "activityId": "out_of_office",
- "phoneNumber": "+12345679"
}
]
}
Set activity diversions for a user.
Both POST and PUT can be used in the request.
This will replace all existing settings.
userId required | string The user ID of the user accessing the API |
domain required | string The domain of the user accessing the API |
Array of objects (DiversionMappingDTO) List of activity diversions |
{- "diversion-mapping": [
- {
- "activityId": "busy",
- "phoneNumber": "+12345678"
}, - {
- "activityId": "lunch",
- "phoneNumber": "+12345679"
}, - {
- "activityId": "out_of_office",
- "phoneNumber": "+12345679"
}
]
}
{- "diversion-mapping": [
- {
- "activityId": "busy",
- "phoneNumber": "+12345678"
}, - {
- "activityId": "lunch",
- "phoneNumber": "+12345679"
}, - {
- "activityId": "out_of_office",
- "phoneNumber": "+12345679"
}
]
}
Get the diversion number for a specified activity for a user.
Available activity ids can be fetched with the Configuration API.
userId required | string The user ID of the user accessing the API |
domain required | string The domain of the user accessing the API |
activityId required | string The ID of the activity |
{- "activityId": "lunch",
- "phoneNumber": "+12345679"
}
Set an activity diversion for a user.
Both POST and PUT can be used in the request.
Available activity ids can be fetched with the Configuration API.
userId required | string The user ID of the user accessing the API |
domain required | string The domain of the user accessing the API |
activityId required | string The ID of the activity |
activityId | any The activity the call shall be diverted for |
phoneNumber | any Phone number the call will be diverted to for specified activity |
{- "phoneNumber": "+12345679"
}
{- "activityId": "out_of_office",
- "phoneNumber": "+12345679"
}
Delete diversion for specified activity for a user.
Available activity ids can be fetched with the Configuration API.
userId required | string The user ID of the user accessing the API |
domain required | string The domain of the user accessing the API |
activityId required | string The ID of the activity |
The Diversion API is used to set the active diversion number and diversion rules of a user.
Use the Diversion API to:
Retrieves a user's diversion rules.
userId required | string The username of the user accessing the API |
domain required | string The domain of the user accessing the API |
{- "user": {
- "domain": "example.com",
- "userid": "albo"
}, - "userDiversionLineRules": [
- {
- "lineNumber": "+123460000",
- "lineOrderType": "PRIMARY",
- "lineType": "OFFICE_FIXED",
- "userDiversionRules": [
- {
- "diversionRoutingRulesType": "CFWD_ALL"
}, - {
- "phoneNumber": "+12345679",
- "diversionRoutingRulesType": "CFWD_ON_BUSY"
}, - {
- "diversionRoutingRulesType": "CFWD_ON_BUSY_IN_CALL"
}, - {
- "diversionRoutingRulesType": "CFWD_ON_BUSY_IN_CALL_OR_UNREACHABLE"
}, - {
- "diversionRoutingRulesType": "CFWD_ON_BUSY_OR_UNREACHABLE"
}, - {
- "phoneNumber": "+12345678",
- "diversionRoutingRulesType": "CFWD_NO_ANSWER"
}, - {
- "diversionRoutingRulesType": "CFWD_NO_ANSWER_OR_UNREACHABLE"
}, - {
- "diversionRoutingRulesType": "CFWD_UNREACHABLE"
}
]
}, - {
- "lineNumber": "+123467890",
- "lineOrderType": "SECONDARY",
- "lineType": "OFFICE_MOBILE",
- "userDiversionRules": [
- {
- "diversionRoutingRulesType": "CFWD_ALL"
}, - {
- "diversionRoutingRulesType": "CFWD_ON_BUSY"
}, - {
- "diversionRoutingRulesType": "CFWD_ON_BUSY_IN_CALL"
}, - {
- "diversionRoutingRulesType": "CFWD_ON_BUSY_IN_CALL_OR_UNREACHABLE"
}, - {
- "diversionRoutingRulesType": "CFWD_ON_BUSY_OR_UNREACHABLE"
}, - {
- "phoneNumber": "+12345678",
- "diversionRoutingRulesType": "CFWD_NO_ANSWER"
}, - {
- "diversionRoutingRulesType": "CFWD_NO_ANSWER_OR_UNREACHABLE"
}, - {
- "diversionRoutingRulesType": "CFWD_UNREACHABLE"
}
]
}
]
}
Updates the user's defined diversion rules for available lines.
Both POST and PUT can be used in the request.
userId required | string The username of the user accessing the API |
domain required | string The domain of the user accessing the API |
object (UserIdentityDTO) User information | |
Array of objects (userDiversionLineRule) List of diversion details for a user's lines |
{- "user": {
- "domain": "example.com",
- "userid": "albo"
}, - "userDiversionLineRules": [
- {
- "lineNumber": "+123460000",
- "lineOrderType": "PRIMARY",
- "lineType": "OFFICE_FIXED",
- "userDiversionRules": [
- {
- "diversionRoutingRulesType": "CFWD_ALL"
}, - {
- "phoneNumber": "+12345679",
- "diversionRoutingRulesType": "CFWD_ON_BUSY"
}, - {
- "diversionRoutingRulesType": "CFWD_ON_BUSY_IN_CALL"
}, - {
- "diversionRoutingRulesType": "CFWD_ON_BUSY_IN_CALL_OR_UNREACHABLE"
}, - {
- "diversionRoutingRulesType": "CFWD_ON_BUSY_OR_UNREACHABLE"
}, - {
- "phoneNumber": "+12345678",
- "diversionRoutingRulesType": "CFWD_NO_ANSWER"
}, - {
- "diversionRoutingRulesType": "CFWD_NO_ANSWER_OR_UNREACHABLE"
}, - {
- "diversionRoutingRulesType": "CFWD_UNREACHABLE"
}
]
}, - {
- "lineNumber": "+123467890",
- "lineOrderType": "SECONDARY",
- "lineType": "OFFICE_MOBILE",
- "userDiversionRules": [
- {
- "diversionRoutingRulesType": "CFWD_ALL"
}, - {
- "diversionRoutingRulesType": "CFWD_ON_BUSY"
}, - {
- "diversionRoutingRulesType": "CFWD_ON_BUSY_IN_CALL"
}, - {
- "diversionRoutingRulesType": "CFWD_ON_BUSY_IN_CALL_OR_UNREACHABLE"
}, - {
- "diversionRoutingRulesType": "CFWD_ON_BUSY_OR_UNREACHABLE"
}, - {
- "phoneNumber": "+12345678",
- "diversionRoutingRulesType": "CFWD_NO_ANSWER"
}, - {
- "diversionRoutingRulesType": "CFWD_NO_ANSWER_OR_UNREACHABLE"
}, - {
- "diversionRoutingRulesType": "CFWD_UNREACHABLE"
}
]
}
]
}
{- "field": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": null,
- "name": "baduser@baddomain.com"
}
], - "warning": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": null,
- "name": "baduser@baddomain.com"
}
], - "generated-id": null
}
Deletes a user's defined diversion rules.
userId required | string The username of the user accessing the API |
domain required | string The domain of the user accessing the API |
{- "field": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": null,
- "name": "baduser@baddomain.com"
}
], - "warning": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": null,
- "name": "baduser@baddomain.com"
}
], - "generated-id": null
}
Retrieves a user's diversion rules for specified line order type.
userId required | string The username of the user accessing the API |
domain required | string The domain of the user accessing the API |
lineOrderType required | string User line order for which diversion details shall to be fetched. Possible values are: |
{- "user": {
- "domain": "example.com",
- "userid": "albo"
}, - "userDiversionLineRules": [
- {
- "lineNumber": "+123460000",
- "lineOrderType": "PRIMARY",
- "lineType": "OFFICE_FIXED",
- "userDiversionRules": [
- {
- "diversionRoutingRulesType": "CFWD_ALL"
}, - {
- "phoneNumber": "+12345679",
- "diversionRoutingRulesType": "CFWD_ON_BUSY"
}, - {
- "diversionRoutingRulesType": "CFWD_ON_BUSY_IN_CALL"
}, - {
- "diversionRoutingRulesType": "CFWD_ON_BUSY_IN_CALL_OR_UNREACHABLE"
}, - {
- "diversionRoutingRulesType": "CFWD_ON_BUSY_OR_UNREACHABLE"
}, - {
- "phoneNumber": "+12345678",
- "diversionRoutingRulesType": "CFWD_NO_ANSWER"
}, - {
- "diversionRoutingRulesType": "CFWD_NO_ANSWER_OR_UNREACHABLE"
}, - {
- "diversionRoutingRulesType": "CFWD_UNREACHABLE"
}
]
}
]
}
Creates or updates a user's defined diversion rule for a pre-defined diversion rule type.
Both PUT and POST can be used in the request.
userId required | string The username of the user accessing the API |
domain required | string The domain of the user accessing the API |
lineOrderType required | string User line order for which diversion shall be set. Possible values are: |
object (UserIdentityDTO) User information | |
Array of objects (userDiversionLineRule) List of diversion details for a user's lines |
{- "userDiversionLineRules": [
- {
- "userDiversionRules": [
- {
- "phoneNumber": "+12345679",
- "diversionRoutingRulesType": "CFWD_ON_BUSY"
}
]
}
]
}
{- "field": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": null,
- "name": "baduser@baddomain.com"
}
], - "warning": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": null,
- "name": "baduser@baddomain.com"
}
], - "generated-id": null
}
Deletes a user's defined diversion rule for a line order type.
userId required | string The username of the user accessing the API |
domain required | string The domain of the user accessing the API |
lineOrderType required | string User line order for which diversion rules shall be deleted. Possible values are: |
{- "field": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": null,
- "name": "baduser@baddomain.com"
}
], - "warning": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": null,
- "name": "baduser@baddomain.com"
}
], - "generated-id": null
}
Retrieves a user's diversion rules for a specific line order and rule type.
userId required | string The username of the user accessing the API |
domain required | string The domain of the user accessing the API |
diversionRuleType required | string Enum: "CFWD_ALL" "CFWD_ON_BUSY_IN_CALL" "CFWD_ON_BUSY" "CFWD_NO_ANSWER" "CFWD_UNREACHABLE" "CFWD_NO_ANSWER_OR_UNREACHABLE" "CFWD_ON_BUSY_OR_UNREACHABLE" "CFWD_ON_BUSY_IN_CALL_OR_UNREACHABLE" The diversion rule type for which details shall be fetched. |
lineOrderType required | string User line order for which diversion details shall be fetched. Possible values are: |
{- "lineOrderType": "PRIMARY",
- "phoneNumber": "+12345678",
- "diversionRoutingRulesType": "CFWD_NO_ANSWER"
}
Creates or updates a user's defined diversion rule for a pre-defined diversion rule type.
Both POST and PUT can be used in the request.
userId required | string The username of the user accessing the API |
domain required | string The domain of the user accessing the API |
diversionRuleType required | string Enum: "CFWD_ALL" "CFWD_ON_BUSY_IN_CALL" "CFWD_ON_BUSY" "CFWD_NO_ANSWER" "CFWD_UNREACHABLE" "CFWD_NO_ANSWER_OR_UNREACHABLE" "CFWD_ON_BUSY_OR_UNREACHABLE" "CFWD_ON_BUSY_IN_CALL_OR_UNREACHABLE" The diversion rule type details shall be set for. |
lineOrderType required | string User line order for which diversion rules shall be set. Possible values are: |
lineOrderType | any Enum: "PRIMARY" "SECONDARY" The line order |
phoneNumber | any Phone number to be used for this diversion rule type |
diversionRoutingRulesType | any Enum: "NONE" "CFWD_ALL" "CFWD_ON_BUSY_IN_CALL" "CFWD_ON_BUSY" "CFWD_NO_ANSWER" "CFWD_UNREACHABLE" "CFWD_NO_ANSWER_OR_UNREACHABLE" "CFWD_ON_BUSY_OR_UNREACHABLE" "CFWD_ON_BUSY_IN_CALL_OR_UNREACHABLE" The diversion rule type |
{- "phoneNumber": "+12345679",
- "diversionRoutingRulesType": "CFWD_ON_BUSY"
}
{- "field": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": null,
- "name": "baduser@baddomain.com"
}
], - "warning": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": null,
- "name": "baduser@baddomain.com"
}
], - "generated-id": null
}
Deletes a user's defined diversion rule for a pre-defined diversion rule type.
userId required | string The username of the user accessing the API |
domain required | string The domain of the user accessing the API |
diversionRuleType required | string Enum: "CFWD_ALL" "CFWD_ON_BUSY_IN_CALL" "CFWD_ON_BUSY" "CFWD_NO_ANSWER" "CFWD_UNREACHABLE" "CFWD_NO_ANSWER_OR_UNREACHABLE" "CFWD_ON_BUSY_OR_UNREACHABLE" "CFWD_ON_BUSY_IN_CALL_OR_UNREACHABLE" The diversion rule type for which diversion shall be deleted |
lineOrderType required | string User line order for which diversion rules shall be deleted. Possible values are: |
{- "field": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": null,
- "name": "baduser@baddomain.com"
}
], - "warning": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": null,
- "name": "baduser@baddomain.com"
}
], - "generated-id": null
}
Retrieves a user's active diversion number.
userId required | string The username of the user accessing the API |
domain required | string The domain of the user accessing the API |
{- "diversion-number": "+14423455"
}
Sets a user's active diversion number.
Both POST and PUT can be used in the request.
userId required | string The username of the user accessing the API |
domain required | string The domain of the user accessing the API |
phoneNumber required | string The diversion number |
activityScoped | boolean Set to true if the diversion number should be cleared after a change of presence activity. |
{- "diversion-number": "+14423455"
}
The Mobile Subscriber API is used to set features on a subscriber level.
Use Mobile Subscriber API to:
Retrieve the full caller ID setting for incoming calls to a subscriber's mobile.
number required | string The mobile number of the subscriber |
domain required | string The organization domain |
true
Update the full caller ID setting for incoming calls to a subscriber's mobile.
number required | string The mobile number of the subscriber |
domain required | string The organization domain |
enable required | boolean Indicate if integration should be enabled or disabled |
Update the number presentation of a mobile subscriber.
number required | string The mobile number of the subscriber |
domain required | string The organization domain |
value required | integer <int32> The number presentation setting. The parameter can have 4 different values; |
Update the PBX integration of a mobile subscriber.
number required | string The mobile number of the subscriber |
domain required | string The organization domain |
enable required | boolean Indicate if integration should be enabled or disabled |
Update the Route to PBX setting of a mobile subscriber.
number required | string The mobile number of the subscriber |
domain required | string The organization domain |
enable required | boolean Indicate if route to PBX should be enabled or disabled |
The Presence Shortcuts API is used to manage presence shortcuts on user level. Use the Presence Shortcuts API to:
Read a specific presence shortcut for the user.
domain required | string The domain of the user accessing the API |
user required | string The username of the user accessing the API |
id required | string The ID of the presence shortcut that should be read |
{- "id": "sdfdsf3333",
- "name": "Weekend",
- "activityId": "busy",
- "available": false,
- "durationType": "UNTIL_NEXT_WORKING_DAY",
- "order": 1,
- "imageId": "ic_shortcut_big_red",
- "applyDiversionNumber": false
}
Update a specific presence shortcut for a user. A new shortcut will be created if it does not already exist.
domain required | string The domain of the user accessing the API |
user required | string The username of the user accessing the API |
id required | string The ID of the presence shortcut that should be updated |
id required | any The ID of the presence shortcut. The ID needs to be unique for the end-user. Ignored for PUT/POST of a single presence shortcut. |
name required | any The name of the presence shortcut. |
activityId required | any The ID of the presence activity. |
available required | any Indicate if the presence shortcut should set the user in available or do not disturb. |
durationType required | any Enum: "NO_END_TIME" "UNTIL_NEXT_WORKING_DAY" "MINUTES" Indicate if an expiration time should be set for the presence state. |
durationMinutes | any <int32> The expiration time for the presence state. Is only applicable if durationType is set to MINUTES. |
order required | any <int32> A number that is used to order the presence shortcuts in end-user applications. |
imageId required | any Enum: "ic_shortcut_big_green" "ic_shortcut_big_red" "ic_shortcut_car" "ic_shortcut_coffee" "ic_shortcut_home" "ic_shortcut_office" "ic_shortcut_pizza" "ic_shortcut_plane" "ic_shortcut_watch" The image (icon) of the presence shortcut that will be used in end-user applications to easily differentiate between the user's shortcuts. |
diversionPhoneNumber | any A phone number that all incoming end-user calls will be diverted to when applying this shortcut. This value is only considered if applyDiversionNumber is set to true. |
applyDiversionNumber | any Indicate if the shortcut will override any default diversion set for the presence activity (Activity Diversion). Default is false. |
{- "id": "yyrn333ffFFs2",
- "name": "Short lunch break",
- "activityId": "lunch",
- "available": false,
- "durationType": "MINUTES",
- "durationMinutes": 45,
- "order": 4,
- "imageId": "ic_shortcut_pizza",
- "diversionPhoneNumber": "+45552641",
- "applyDiversionNumber": true
}
{- "id": "sdfdsf3333",
- "name": "Weekend",
- "activityId": "busy",
- "available": false,
- "durationType": "UNTIL_NEXT_WORKING_DAY",
- "order": 1,
- "imageId": "ic_shortcut_big_red",
- "applyDiversionNumber": false
}
Delete a specific presence shortcut for a user.
domain required | string The domain of the user accessing the API |
user required | string The username of the user accessing the API |
id required | string The ID of the presence shortcut that should be deleted |
Read all presence shortcuts for a user.
domain required | string The domain of the user accessing the API |
user required | string The username of the user accessing the API |
{- "presenceShortcut": [
- {
- "id": "sdfdsf3333",
- "name": "Weekend",
- "activityId": "busy",
- "available": false,
- "durationType": "UNTIL_NEXT_WORKING_DAY",
- "order": 1,
- "imageId": "ic_shortcut_big_red",
- "applyDiversionNumber": false
}, - {
- "id": "23342323232",
- "name": "Short lunch break",
- "activityId": "lunch",
- "available": false,
- "durationType": "MINUTES",
- "durationMinutes": 45,
- "order": 2,
- "imageId": "ic_shortcut_pizza",
- "diversionPhoneNumber": "+5545445656",
- "applyDiversionNumber": true
}
]
}
Update all presence shortcuts for a user. Any existing presence shortcut for the user will be overwritten by this list.
domain required | string The domain of the user accessing the API |
user required | string The username of the user accessing the API |
required | Array of objects (PresenceShortcutDTO) A list of presence shortcuts |
{- "presenceShortcut": [
- {
- "id": "yyrn333ffFFs2",
- "name": "Short lunch break",
- "activityId": "lunch",
- "available": false,
- "durationType": "MINUTES",
- "durationMinutes": 45,
- "order": 4,
- "imageId": "ic_shortcut_pizza",
- "diversionPhoneNumber": "+45552641",
- "applyDiversionNumber": true
}
]
}
{- "presenceShortcut": [
- {
- "id": "sdfdsf3333",
- "name": "Weekend",
- "activityId": "busy",
- "available": false,
- "durationType": "UNTIL_NEXT_WORKING_DAY",
- "order": 1,
- "imageId": "ic_shortcut_big_red",
- "applyDiversionNumber": false
}, - {
- "id": "23342323232",
- "name": "Short lunch break",
- "activityId": "lunch",
- "available": false,
- "durationType": "MINUTES",
- "durationMinutes": 45,
- "order": 2,
- "imageId": "ic_shortcut_pizza",
- "diversionPhoneNumber": "+5545445656",
- "applyDiversionNumber": true
}
]
}
The End-user Configuration API is used to fetch different configuration data.
Use the End-user Configuration API to:
Retrieve mapping for the possible devices the user can set up calls from.
domain required | string The domain of the user accessing the API |
user required | string The username of the user accessing the API |
User answer the call from a mobile device.
{- "answerplace": [
- {
- "id": "mobile",
- "name": "Mobile"
}
]
}
Retrieve the localized strings for presence roles. Roles may also be used to define different work situations.
domain required | string The domain of the user accessing the API |
user required | string The username of the user accessing the API |
Business role indicates that the user is at the office.
{- "role": [
- {
- "id": "Business",
- "name": "Business",
- "stateName": "Business"
}
]
}
Retrieve the localized strings for presence activities.
domain required | string The domain of the user accessing the API |
user required | string The username of the user accessing the API |
Available activity indicates that user is avaiable.
{- "activity": [
- {
- "id": "available",
- "name": "Available",
- "available": true,
- "stateName": "Available"
}
]
}
Retrieve an aggregated document of all the configuration settings.
domain required | string The domain of the user accessing the API |
user required | string The username of the user accessing the API |
{- "activities": {
- "activity": [
- {
- "id": "available",
- "name": "Available",
- "available": true,
- "stateName": "Available"
}
]
}, - "roles": {
- "role": [
- {
- "id": "Business",
- "name": "Business",
- "stateName": "Business"
}
]
}, - "answerplaces": {
- "answerplace": [
- {
- "id": "mobile",
- "name": "Mobile"
}
]
}, - "topics-enabled": true,
- "sms-allowed": true,
- "fallbackToDefaultPresenceState": false,
- "defaultPresenceState": "Available",
- "callrouting-enabled": true,
- "fields": {
- "field": [
- {
- "id": "field7",
- "label": "Department",
- "currentValue": "Field7",
- "requestedValue": "Field7",
- "editable": true,
- "dateRequested": "2020-10-10T13:12:12Z"
}
]
}
}
Retrieve URL to the web client to access enduser portal and web softphone.
domain required | string The domain of the user accessing the API |
user required | string The username of the user accessing the API |
The method will produce an SSE stream of application configuration data in application/app-config-data format.
domain required | string The domain of the user accessing the API |
user required | string The username of the user accessing the API |
The User Device Information API is used to manage information about end user devices.
Use the User Device Information API to:
Unregister an existing webhook registered for the user.
domain required | string The domain of the organization |
userId required | string The ID of the user |
targetId required | string The unique id of the webhook that should be unregistered |
Retrieve detailed information about a certain user device. The returned document contains a list of attributes providing detailed information about the user's device.
domain required | string The domain of the organization the user belongs to |
userId required | string The user ID |
deviceId required | string The device ID |
[- {
- "name": "USER_AGENT",
- "value": "Telepo Softphone/Mac/5.x.x.xxxx"
}
]
Retrieve display icon name for a certain user device. If no icon has been configured for the device, the default icon of the type of the device is returned.
domain required | string The domain of the organization the user belongs to |
userId required | string The user ID |
deviceId required | string The device ID |
fallback | boolean If true, the default icon name will be returned if no name is configured |
"DESKPHONE_TYPE_2"
Set or Update the display icon name for a certain user device. The icon name must correspond to the type of the device.
domain required | string The domain of the organization the user belongs to |
userId required | string The user ID |
deviceId required | string The device ID |
name required | string Enum: "DEFAULT" "TYPE_1" "TYPE_2" The display icon name of the device to be updated |
Retrieve a list with all the user's devices. The returned document contains a list with information on all the user's devices. If there are no devices, an empty document is returned.
domain required | string The domain of the organization the user belongs to |
userId required | string The user ID |
type | string Enum: "MOBILE" "TABLET" "SOFTPHONE" "DESKPHONE" "PBX" "DECT" "THIRD_PARTY" "WEB_SOFTPHONE" "TEAMS" The type of devices to fetch. If not stated, all device types are retrieved. |
[- {
- "deviceId": "kf45ffr3dd3dtj7r",
- "deviceType": "SOFTPHONE",
- "deviceName": "My work laptop",
- "deviceIcon": "DEFAULT",
- "deviceTypeName": "Application for Desktop",
- "deviceStatus": "INACTIVE",
- "revocable": true,
- "hasAttributes": true
}, - {
- "deviceId": "dhhjhdsb008jnnh",
- "deviceType": "MOBILE",
- "deviceName": "My black iPhone XS",
- "deviceIcon": "TYPE_2",
- "deviceTypeName": "Mobile Application",
- "deviceStatus": "ACTIVE",
- "revocable": true,
- "hasAttributes": true
}
]
Retrieve display name of certain user device.
domain required | string The domain of the organization the user belongs to |
userId required | string The user ID |
deviceId required | string The device ID |
fallback | boolean If true, the default name will be returned if no name is configured |
"My work laptop"
Set or Update the display name of a certain user device.
domain required | string The domain of the organization the user belongs to |
userId required | string The user ID |
deviceId required | string The device ID |
name required | string The display name of the device to be updated (max 32 characters) |
Retrieve a compact list with all the user's active devices. The returned document contains all the user's devices that are not known to be currently unreachable. If there are no active devices, an empty document is returned.
domain required | string The domain of the organization the user belongs to |
userId required | string The user ID |
[- {
- "deviceId": "dhhjhdsb008jnnh",
- "deviceType": "MOBILE",
- "deviceName": "My black iPhone XS",
- "deviceIcon": "TYPE_2"
}
]
Register a webhook where notifications when there are any changes in the user's device set.
domain required | string The domain of the organization |
userId required | string The ID of the user |
targetUrl required | any The webhook url |
targetId required | any A unique id of the webhook. |
publicTarget required | any 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 |
{- "targetId": "434356",
- "publicTarget": true
}
{- "expiresOn": 3600
}
{- "timeStamp": "2023-05-31 09:58:03.774",
- "changedField": "DEVICE_INFO"
}
Subscribe for update events when there are any changes in the users device set. Subscription data is in application/app-config-data format.
domain required | string The domain of the organization the user belongs to |
userId required | string The user id |
The User Information API provides functionality similar to the Contacts API, but is designed
to provide information about the calling user. It can also be used to provide information and
to manipulate other users' presence state if the calling user is authorized to do so.
The UserInfo API also allows for changing a contact's picture.
Use the User Information API to:
Get the photo associated with a user.
domain required | string The domain of the user |
user required | string The user ID of the user |
prefWidth | integer <int32> The preferred width of the photo |
prefHeight | integer <int32> The preferred height of the photo |
Get the presence state for the accessing user.
domain required | string The domain of the user accessing the API |
user required | string The user ID of the user accessing the API |
{- "futurePresenceAccess": "NONE",
- "activityAccess": "NONE",
- "roleAccess": "NONE",
- "noteAccess": "NONE",
- "note": "Planning our upgrade",
- "activity": {
- "id": "working",
- "expiration": "2020-09-21T11:05:00Z",
- "available": true
}, - "idle": false,
- "available": true,
- "capabilities": [
- "SMS"
]
}
Update the presence state of a user.
domain required | string The domain of the user to be updated |
user required | string The user ID of the user to be updated |
role | any The current role of the contact |
note | any The presence note |
object (Activity) The presence activity of the contact |
Setting a new presence note
{- "note": "Presenting at the conference"
}
{- "futurePresenceAccess": "NONE",
- "activityAccess": "NONE",
- "roleAccess": "NONE",
- "noteAccess": "NONE",
- "note": "Discuss UX with Dan",
- "activity": {
- "id": "meeting",
- "expiration": "2010-10-11T05:30:00Z",
- "available": false
}, - "idle": true,
- "available": false
}
Get the availability state for the user. The operation returns "true" if the user is available, and "false" otherwise.
domain required | string The domain of the user |
user required | string The user ID of the user |
true
Set the activity of the user.
domain required | string The domain of the user |
user required | string The user ID of the user |
activity required | string The new activity ID |
available | boolean The new availability of the user |
available
Set a user's current activity's end-time.
domain required | string The domain of the user |
user required | string The user ID of the user |
expires required | string The activity end-time in ISO-8601 format, or 'never' if the activity should not have an expiry time |
2020-05-09T08:45:00Z
The User Line API allows to set or check the current caller ID that is used during the calls and is displayed on the destination party as a number.
Use User Line API to:
Get the list of all available lines that user can use
domain required | string The organization domain |
user required | string The username of the user |
{- "line": [
- {
- "groupId": 0,
- "type": "OFFICE_FIXED",
- "number": "+123400",
- "name": "office fixed",
- "active": true
}
]
}
Get the current active caller ID for a user.
domain required | string The organization domain |
user required | string The username of the user |
{- "number": "+123400",
- "type": "SWITCHBOARD",
- "name": "swithboard",
- "groupId": 0
}
Update the current active caller ID for user.
domain required | string The organization domain |
user required | string The username of the user |
type required | any Enum: "ANONYMOUS" "ACD" "ACD_LIGHT" "ATTENDANT" "SWITCHBOARD" "OFFICE_FIXED" "PRIVATE_FIXED" "OFFICE_MOBILE" "PRIVATE_MOBILE" The outbound number type |
groupId required | any <int64> For PRIVATE_FIXED/OFFICED_FIXED/PRIVATE_MOBILE/OFFICE_MOBILE 0 indicate primary line and 1 indicate secondary line. For ACD/ACD_LIGHT/ATTENDANT this value indicates internal ID of the funtional number. |
{- "type": "OFFICE_FIXED",
- "groupId": 1
}
{- "field": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": null,
- "name": "baduser@baddomain.com"
}
], - "warning": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": null,
- "name": "baduser@baddomain.com"
}
], - "generated-id": null
}
The User Voicemail Settings API is a group of methods to manage Voicemail Settings at end user level.
Use the Voicemail Settings API to:
Retrieve voicemail settings for a user.
domain required | string The domain of the organization |
userId required | string The user id of the user |
{- "playActivity": true,
- "playMergedUnavailableEndTime": false,
- "playHumanAssistance": true,
- "humanAssistanceNumber": "+4676767676",
- "smsNotification": false,
- "emailNotification": true,
- "fileAttached": false,
- "voicemailInboxFullSmsNotification": false,
- "voicemailInboxFullEmailNotification": true,
- "allowDownload": true,
- "allowVoicemail": true,
- "bypassVoicemail": false,
- "voicemailCallbackEnabled": false
}
Update voicemail settings for a user.
domain required | string The organization domain |
userId required | string The user id of the user |
playActivity | any Whether the greeting played when a caller reaches the voice mail service will include information about callee's current activity. |
playMergedUnavailableEndTime | any Whether the end time of the last consecutive activity present with unavailable status. |
playHumanAssistance | any Whether the human assistance option should be played out as part of the greeting. |
humanAssistanceNumber | any The number that the human assistance option redirects to, if the 'playHumanAssistance' value set to true. |
smsNotification | any Whether SMS should be used for new voicemail messages notifications. |
emailNotification | any Whether email should be used for new voicemail messages notifications. |
fileAttached | any Whether the voicemail is to be attached to the email notifications. |
voicemailInboxFullSmsNotification | any Whether SMS notifications should be used when the voicemail inbox approaches it's maximum capacity. |
voicemailInboxFullEmailNotification | any Whether email notifications should be used when the voicemail inbox approaches it's maximum capacity. |
allowDownload | any Whether the users are allowed to download vociemails to their mobile from the inbox page of the mobile app. |
allowVoicemail | any Whether the callers are allowed to deposit voicemail messages. |
bypassVoicemail | any Whether bypass voicemail as part of the greeting. |
voicemailCallbackEnabled | any Whether the user will get the option to call back to the number that left the voicemail message. |
{- "playActivity": true,
- "playMergedUnavailableEndTime": false,
- "playHumanAssistance": true,
- "humanAssistanceNumber": "+4676767676",
- "smsNotification": false,
- "emailNotification": true,
- "fileAttached": false,
- "voicemailInboxFullSmsNotification": false,
- "voicemailInboxFullEmailNotification": true,
- "allowDownload": true,
- "allowVoicemail": true,
- "bypassVoicemail": false,
- "voicemailCallbackEnabled": false
}
The User Tickets API is used to manage API tickets for a user
Use the User Tickets API to:
There are two authentication approaches for this method. One approach is to use Password based ticket and the other one is to use Superuser Ticket.
For details on how to calculate the ticket string for the password based ticket, please see Using the API within the API reference.
domain required | string The domain of the user to create an API ticket for |
user required | string The username of the user to create an API ticket for |
api required | Array of strings One or more valid external APIs (e.g. ?api=CALLS&api=USER). |
platform required | string Specifies which client that is making the request. The license validation is matched against the client value. It can have one of the following values: android, iphone, other |
ver | string The version of the platform. Not required when the value of the platform is other |
number | string The mobile number of the device that sends the request (applicable for platforms iphone and android). If stated, the number must be a mobile number of the user. |
name | string A user defined name of the ticket |
expires | integer <int32> Expiration time of the ticket in seconds |
deviceDisplayName | string A user defined name of the device |
PASSWORD_BASED_TICKET
{- "expires": "2024-05-31T15:38:39.482+00:00",
- "name": "ALL_CALLS",
- "token": "2343.ZSDjndiJSDjksHj",
- "allowedApis": [
- "CALLS"
]
}
If the ticket is deleted or revoked, it returns API ticket deleted successfully. The method is accessible through Password based ticket and Superuser Ticket.
domain required | string The domain of the user of the API ticket to delete |
user required | string The username of the user of the API ticket to delete |
ticketName required | string The user defined name of the ticket to delete |
The SMS API provides possibility to send SMS via the system. An end-user must have a valid ticket for the API and be authorized to send SMS to use this API.
An end-user with authorized ticket could send SMS to recipient.
to required | string The the number to send to. This number will be expanded according to the sending user's number plan. For example, if the user's organization has a number plan conversion of 08 -> +468, the user can send to 0890510 and the SMS will be routed to +46890510. |
smsText required | any The SMS text |
{ "smsText": "Everythingâs going to be amazing" }
{- "field": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": null,
- "name": "baduser@baddomain.com"
}
], - "warning": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": null,
- "name": "baduser@baddomain.com"
}
], - "generated-id": null
}