Dstny Core API

Download OpenAPI specification:Download

API documentation and description for the Dstny Core User API.

Authentication

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

  • Contact search
  • Call setup
  • User info
  • Queue statistics
  • Event channel
  • SMS sending
  • ACD/attendant queues
  • Reports
  • Communication Log
  • Personal contacts
  • Call control
  • Call recording
  • Line state
  • Voicemail settings

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.

Bearer

The authentication is done by setting Bearer {token} as the value in Authorization in the header.

Requests, responses and URLs

HTTP Operations

The Core API uses the following HTTP methods for manipulating data

  • GET – read data from a resource, subscribe to data from a resource
  • POST – create a resource
  • PUT – update a resource
  • DELETE – remove a resource

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:

  • POST /… HTTP/1.1 X-HTTP-Method-Override:PUT Core responds to POST+X-HTTP-Method-Override request as if the content of the X-HTTP-Method-Override header was the actual HTTP operation requested.

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.

Base URLs for the Dstny Core API

URI Encoding

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:

  • http://{base url}/api/admin/organization/test.com/userGroups/m%C3%B6tley%20cr%C3%BCe

Data Restrictions

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).

JSON access to User API

It is preferred to use JSON instead of XML to access all APIs. For example:

  • http://{base url}/api/event/v1/domain.com/user

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.

HTTP Response Status Codes

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.

Response Body

Successful requests

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"
} ]
}

Failed requests

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:

  • fieldName – the field name of the provided element that had invalid data. If it is an error that is not limited to a single field this field is not output.
  • code – an error code specified in a hierarchical fashion, for example, ‘admin.user.password.invalidLength’.
  • description – a human-readable description. The description can sometimes contain a log token in the form “, see {token}” in case of errors. More information about this error can then be found in the server log by searching for this token.
  • name – the field contents causing the error or warning.

Example requests

JSON GET Requests

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'

JSON POST and PUT Requests

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/...'

ACD/Attendant Group

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

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

Get group Deprecated

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

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

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

Responses

Response samples

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

Get group Deprecated

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

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

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the user's organization

user
required
string

The user id of the user

group
required
integer <int64>

The id of the ACD/Attendant group

group-domain
required
string

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

query Parameters
ignoreStatistics
required
boolean

Don't include statistics and immediately return an empty response

Responses

Response samples

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

Get group

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

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the user's organization

user
required
string

The user id of the user

group
required
integer <int64>

The id of the ACD/ACD Light/Attendant group

group-domain
required
string

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

query Parameters
ignoreStatistics
boolean

Don't include statistics and immediately return an empty response

Responses

Response samples

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

List groups Deprecated

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

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

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the user's organization

user
required
string

The user's id

query Parameters
ignoreStatistics
boolean

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

ignoreAgents
boolean

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

Responses

Response samples

Content type
{
  • "groups": [
    ]
}

List groups

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

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the user's organization

user
required
string

The user's id

query Parameters
ignoreStatistics
boolean

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

ignoreAgents
boolean

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

Responses

Response samples

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

Log in/Log out Deprecated

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

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

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

Responses

Response samples

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

Log in/Log out

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

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the user's organization

user
required
string

The user id of the user

group
required
integer <int64>

The id of the ACD/Attendant group

group-domain
required
string

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

agent
required
string

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

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

The action to perform

Responses

Response samples

Content type
"string"

Distribution Group

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

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

Get group call history

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

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the user

user
required
string

The ID of the user

grpid
required
string

The ID of the distribution group

query Parameters
groupDomain
string

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

callerNumber
string

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

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

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

since
string

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

olderThan
string

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

limit
string

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

Responses

Response samples

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

Get call history

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

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the user

user
required
string

The ID of the user

query Parameters
callerNumber
string

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

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

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

since
string

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

olderThan
string

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

limit
string

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

Responses

Response samples

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

List groups

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

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the user

user
required
string

The ID of the user

Responses

Response samples

Content type
{
  • "group": [
    ]
}

List assigned calls

List group call log items assigned to a user.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the user

user
required
string

The ID of the user

Responses

Response samples

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

List group assigned calls

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

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the user

user
required
string

The ID of the user

grpid
required
string

The ID of the distribution group

query Parameters
groupDomain
string

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

Responses

Response samples

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

Log in to federated group

Log in a user to a distribution group.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the user

user
required
string

The ID of the user

grpid
required
integer <int64>

The ID of the distribution group

grpid-domain
required
string

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

query Parameters
ignoreStatistics
boolean

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

Responses

Response samples

Content type
{
  • "group": [
    ]
}

Log out of federated group

Log out a user from a distribution group.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the user

user
required
string

The ID of the user

grpid
required
integer <int64>

The ID of the distribution group

grpid-domain
required
string

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

query Parameters
ignoreStatistics
boolean

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

Responses

Response samples

Content type
{
  • "group": [
    ]
}

Subscribe to queue statistics

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

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the user

user
required
string

The ID of the user

Responses

Assign call

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

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the user

user
required
string

The ID of the user

itemid
required
integer <int64>

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

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

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

note
any

If applicable, a note that is attached to the call

Responses

Request samples

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

Response samples

Content type
{
  • "itemId": 15,
  • "groupId": 35,
  • "groupOrgId": 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": {
    },
  • "forwardedTo": {
    },
  • "handledStatus": {
    },
  • "noteIncluded": true
}

Queue Statistics

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

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

Get organization queue statistics

Retrieve the queue statistics for an organization.

Authorizations:
AdminBearer
path Parameters
domain
required
string

The domain queue statistics shall be fetched for

Responses

Response samples

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

Get organization queue statistics Deprecated

Retrieve the queue statistics for an organization.

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

Authorizations:
AdminBearer
path Parameters
domain
required
string

The domain queue statistics shall be fetched for

Responses

Response samples

Content type
{
  • "queue": [
    ]
}

Get queue statistics for queue

Retrieve queue statistics for a distribution group.

Authorizations:
AdminBearer
path Parameters
domain
required
string

The domain of the group queue statistics shall be fetched for

queueId
required
string

The id of the group queue statistics shall be fetched for

Responses

Response samples

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

Get user queue statistics

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

Authorizations:
AdminBearer
path Parameters
domain
required
string

The domain of the user queue statistics shall be fetched for

user
required
string

The username of the user queue statistics shall be fetched for

query Parameters
includeFederation
boolean

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

Responses

Response samples

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

Get user queue statistics Deprecated

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

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

Authorizations:
AdminBearer
path Parameters
domain
required
string

The domain queue statistics shall be fetched for

user
required
string

The username of the user accessing the API

Responses

Response samples

Content type
{
  • "queue": [
    ]
}

Call Recording Control

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

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

List recordings Deprecated

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

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

Authorizations:
Bearer
path Parameters
domain
required
string

The organization domain.

user
required
string

The user ID without domain suffix.

Responses

Response samples

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

Update ongoing recording Deprecated

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

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

Authorizations:
Bearer
path Parameters
domain
required
string

The organization domain.

user
required
string

The user ID without domain suffix.

id
required
string

The ID of the call recording to update.

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

The action to perform.

Responses

Response samples

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

Calls

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

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

Cancel call transfer

Cancel an ongoing attended call transfer.

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization the user belongs to.

user
required
string

The user performing the transfer.

transferId
required
string

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

Responses

Get call transfer status

Get the status of an ongoing call transfer.

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization the user belongs to.

user
required
string

The user performing the transfer.

Responses

Response samples

Content type
Example

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

{
  • "transferId": {
    }
}

Transfer call

Transfer a mobile call to the specified number.

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization the user belongs to.

user
required
string

The user performing the transfer.

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

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

destination
required
string

The destination number for the transfer.

Responses

Response samples

Content type
{
  • "transferId": {
    }
}

Set up call

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

POST http://{base url}/api/calls/current/foo.com/alice/mobile/bob@foo.com?role=PRIVATE

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

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

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization the user belongs to.

user
required
string

The user performing the call setup.

aptype
required
string

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

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

cid
required
string

can be one of the following:

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

query Parameters
role
string

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

bypass
string

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

intrude
string

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

callback-via-gsm
boolean

True if the callback should prefer GSM call.

Responses

Response samples

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

Line State

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

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

Get line state

Fetches a specific line state for a user.

Authorizations:
AdminBearer
path Parameters
domain
required
string

The domain of the organization the user belongs to

userId
required
string

The user id

externalId
required
string

The external id

Responses

Response samples

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

Update line state

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

Authorizations:
AdminBearer
path Parameters
domain
required
string

The domain of the organization the user belongs to

userId
required
string

The user id

externalId
required
string

The external id

Responses

Response samples

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

Create line state

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

Authorizations:
AdminBearer
path Parameters
domain
required
string

The domain of the organization the user belongs to

userId
required
string

The user id

externalId
required
string

The external id

Responses

Response samples

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

Delete line state

Removes a specific line state for a user.

Authorizations:
AdminBearer
path Parameters
domain
required
string

The domain of the organization the user belongs to

userId
required
string

The user id

externalId
required
string

The external id

Responses

Communication Log

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

Use Communication Log API to:

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

Update deletion time

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

Authorizations:
Bearer
path Parameters
itemId
required
string

The id of the item

userId
required
string

The username of the user accessing the API

domain
required
string

The domain of the user accessing the API

query Parameters
delete
boolean

Indicates if an item should be marked or unmarked for deletion

Responses

Get log item

Read a specific communication log item.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the user accessing the API

userId
required
string

The username of the user accessing the API

itemId
required
string

The id of the item

query Parameters
deleted
boolean

If true, fetch deleted items only

markAsDelete
boolean

If true, fetch items that are marked as deleted only

Responses

Response samples

Content type
Example

This example shows an incoming call.

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

Mark item as seen/played

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

Authorizations:
Bearer
path Parameters
itemId
required
string

The id of the item

userId
required
string

The username of the user accessing the API

domain
required
string

The domain of the user accessing the API

query Parameters
isSeen
required
boolean

Indicates if the seen state should be set

isPlayed
required
boolean

Indicates if the played state should be set

updateCallItem
required
boolean

Indicates if the call item should be updated too

Responses

Delete log item

Delete a specific communication log item.

Authorizations:
Bearer
path Parameters
itemId
required
string

The id of the item

userId
required
string

The username of the user accessing the API

domain
required
string

The domain of the user accessing the API

query Parameters
updateCallItem
required
boolean

Indicates if the related call item should be deleted too

Responses

List log items

List communication log items for a user. Use either since/olderThan or sinceTime/untilTime parameters to specify an interval of items.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the user accessing the API

userId
required
string

The username of the user accessing the API

query Parameters
since
string

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

olderThan
string

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

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

Responses

Response samples

Content type
Example

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

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

Mark items as seen/played

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

Authorizations:
Bearer
path Parameters
userId
required
string

The username of the user accessing the API

domain
required
string

The domain of the user accessing the API

query Parameters
itemId
required
Array of strings

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

untilItemId
required
string

Indicates if all items until this id should be updated

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

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

isSeen
required
boolean

Indicates if the seen state should be set

isPlayed
required
boolean

Indicates if the played state should be set

updateCallItem
required
boolean

Indicates if the call items should be updated too

Responses

Response samples

Content type
*/*
Example

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

Delete log items

Delete a number of specific communication log items.

Authorizations:
Bearer
path Parameters
userId
required
string

The username of the user accessing the API

domain
required
string

The domain of the user accessing the API

query Parameters
itemId
Array of strings

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

untilItemId
string

Delete all items until this id

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

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

updateCallItem
boolean

Indicates if the related call item should be deleted too

Responses

List group inbox items

Read group inbox messages.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the user accessing the API

userId
required
string

The username of the user accessing the API

Responses

Response samples

Content type
Example

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

{}

Mark item as deleted

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

Authorizations:
Bearer
path Parameters
itemId
required
string

The id of the item

userId
required
string

The username of the user accessing the API

domain
required
string

The domain of the user accessing the API

Responses

CTI APIs

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

Call Control

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

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

Add call to ad-hoc conference

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

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization

userId
required
string

The user performing the call

callId
required
string

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

Request Body schema: application/json
stateToken
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.

Responses

Request samples

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

Response samples

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

Alternate call

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

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization

userId
required
string

The user having the two calls

callId
required
string

The ID of the call that should be put on hold

Request Body schema: application/json
stateToken
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.

Responses

Request samples

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

Response samples

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

Answer call

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

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization

userId
required
string

The user answering the call

callId
required
string

The ID of the call to answer

deviceId
required
string

The device used to answer the call

Request Body schema: application/json
targetUrl
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

Responses

Callbacks

Request samples

Content type
application/json
Example

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

{}

Response samples

Content type
application/json
Example

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

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

Callback payload samples

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

Terminate call

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

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization

userId
required
string

The user deleting the call

callId
required
string

The ID of the call to delete

Responses

Hold call

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

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization

userId
required
string

The user having the call to hold

callId
required
string

The ID of the call to hold

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

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

Responses

Request samples

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

Response samples

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

Leave ad-hoc conference

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

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization

userId
required
string

The user having the ad-hoc conference call

callId
required
string

The ID of the ad-hoc conference call

Responses

Response samples

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

Make call

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

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization

userId
required
string

The user performing the call

deviceId
required
string

The device used to perform the call

Request Body schema: application/json
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.

Responses

Callbacks

Request samples

Content type
application/json
Example

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

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

Response samples

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

Callback payload samples

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

Make consultation call

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

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization

userId
required
string

The user performing the call

callId
required
string

The Id of the call that should be re-used

Request Body schema: application/json
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.

Responses

Callbacks

Request samples

Content type
application/json
Example

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

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

Response samples

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

Callback payload samples

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

Move call

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

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization

userId
required
string

The user having the call to move

callId
required
string

The ID of the call to move

deviceId
required
string

The device to move the call to

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

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

Responses

Request samples

Content type
application/json
Example

Move a call to another device.

{ }

Response samples

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

Mute call

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

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization

userId
required
string

The user having the call to mute

callId
required
string

The ID of the call to mute

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

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

Responses

Request samples

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

Response samples

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

Park call

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

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization

userId
required
string

The user having the call to park

callId
required
string

The ID of the call to park

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

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

Responses

Request samples

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

Response samples

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

Pick up SIP call

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

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization

userId
required
string

The user picking up the call

deviceId
required
string

The device to use to pickup the call

Request Body schema: application/json
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

Responses

Callbacks

Request samples

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

Response samples

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

Callback payload samples

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

Remove participant from ad-hoc conference

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

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization

userId
required
string

The user performing the call

callId
required
string

The ID of the ad-hoc conference call

participantId
required
string

The ID of the participant to remove

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

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

Responses

Request samples

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

Response samples

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

Resume call

Resume a call that previously was put on hold.

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization

userId
required
string

The user having the call to resume

callId
required
string

The ID of the call to resume

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

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

Responses

Request samples

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

Response samples

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

Send DTMF digits

A string of DTMF digits is sent within the call.

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization

userId
required
string

The user sending the DTMF digits

callId
required
string

The ID of the call to send the DTMF digits in

Request Body schema: application/json
stateToken
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 *.

Responses

Request samples

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

Response samples

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

Transfer call

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

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization

userId
required
string

The user having the call to transfer

callId
required
string

The ID of the call to transfer

Request Body schema: application/json
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.

Responses

Request samples

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

Response samples

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

Transfer call to another call that belongs to the user

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

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization

userId
required
string

The user having the call to transfer

callId
required
string

The ID of the call to transfer

Request Body schema: application/json
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.
Note: Transferring a call fails if the target call is not in a valid state. Transferring a call fails, for instance, if the target call is an ACD/ACD Light/Attendant/Hunt Group call and call distribution is in progress.

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.

Responses

Request samples

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

Response samples

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

Unmute call

Unmute a call that previously was muted.

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization

userId
required
string

The user having the call to unmute

callId
required
string

The ID of the call to unmute

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

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

Responses

Request samples

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

Response samples

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

Call Recording

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

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

Discard ongoing on-demand recording

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

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization

userId
required
string

The user recording the call

callId
required
string

The ID of the call not to save

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

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

Responses

Request samples

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

Response samples

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

Pause

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

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization

userId
required
string

The user recording the call

callId
required
string

The ID of the call to pause recording for

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

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

Responses

Request samples

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

Response samples

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

Resume

Resume a paused recording.

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization

userId
required
string

The user that records the call

callId
required
string

The ID of the call to resume recording for

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

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

Responses

Request samples

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

Response samples

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

Save ongoing on-demand recording

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

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization

userId
required
string

The user recording the call

callId
required
string

The ID of the call to save

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

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

Responses

Request samples

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

Response samples

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

Start

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

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization

userId
required
string

The user that should record the call

callId
required
string

The ID of the call to record

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

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

Responses

Request samples

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

Response samples

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

Stop

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

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization

userId
required
string

The user that should record the call

callId
required
string

The ID of the call to stop recording

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

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

Responses

Request samples

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

Response samples

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

Call State

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:

  • Read user state
  • Read call state
  • Subscribe for state changes for a user
  • Subscribe for state changes for a call
  • Subscribe for remote SIP dialog events
  • Register/unregister webhook for call state changes
  • Register/unregister webhook for user state changes

Unregister changes for call

Unregister an existing webhook registered for specific user call.

Authorizations:
SystemBearer
path Parameters
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

Responses

Unregister changes for user

Unregister an existing webhook registered for the user.

Authorizations:
SystemBearer
path Parameters
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

Responses

Read call state

Fetch a snapshot of the current state of a call.

Authorizations:
SystemBearer
path Parameters
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

Responses

Response samples

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

Read user state

Fetch a snapshot of the current state of a user.

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization

userId
required
string

The username of the user accessing the API

Responses

Response samples

Content type
application/json
{
  • "fullState": true,
  • "calls": [
    ]
}

Register for state changes for call

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.

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization

userId
required
string

The ID of the user

callId
required
string

The ID of the call

Request Body schema: application/json
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

Responses

Callbacks

Request samples

Content type
application/json
{}

Callback payload samples

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

Register for state changes for user

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.

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization

userId
required
string

The ID of the user

Request Body schema: application/json
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

Responses

Callbacks

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{
  • "expiresOn": 3600
}

Callback payload samples

Callback
POST: payload data will be sent
Content type
application/json
{
  • "fullState": true,
  • "calls": [
    ]
}

Subscribe for state changes for user call

The method will produce a SSE stream of call state objects.

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization

userId
required
string

The ID of the user

callId
required
string

The ID of the call

Responses

Subscribe for remote SIP dialog events

The method will produce a SSE stream of remote SIP dialog events in the format described in RFC4235.

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization

userId
required
string

The ID of the user

Responses

Subscribe for state changes for user

The method will produce a SSE stream of user state objects.

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization

userId
required
string

The ID of the user

Responses

Event

The Event API is used to do different event related operations, such as handling conferences.
Use Event API to:

  • Get event
  • Get events
  • Get stream events
  • Create event
  • Update event
  • Delete event
  • Get webmeet
  • Get conference numbers
  • Join conference
  • Leave conference
  • Enhanced conference enabled status
  • Get first workday
  • Get instance
  • Update instance
  • Delete instance

Get event

Fetch a specified event.

Authorizations:
Bearer
path Parameters
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

Responses

Response samples

Content type
application/json
Example

The single non-recurring event

{
  • "id": 1,
  • "dateTimeStart": "2023-05-31T15:38:39Z",
  • "dateTimeEnd": "2023-05-31T16:38:39Z",
  • "name": "Test meeting",
  • "organizer": {
    },
  • "participants": [
    ],
  • "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 event

Update an event.

Authorizations:
Bearer
path Parameters
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

Request Body schema: application/json
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.
Mandatory if recurrenceRangeType is END_DATE or NUMBERED.
If recurrenceRangeType is NUMBERED this field shall include the calculated end date.

id
any <int64>

The event's id.
Shall not be included when creating an event i.e. in the POST.

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.
If the organization has MiTeam collaboration license, the max number of participants is 49.

minutesBeforeMeetingReminder
any <int32>

How many minutes before an event a reminder email should be sent to the participants.
Valid values are: 0, 5, 10, 15, 20, 25, 30. 0 means no reminder.
If omitted or null in the request the default value 15 will be used for reminder.

minutesBeforeMeetingSMS
any <int32>

How many minutes before an event a reminder SMS should be sent to the participants.
Valid values are: 0, 5, 10, 15, 20, 25, 30. 0 means no reminder.
If omitted or null in the request the default value 15 will be used for reminder.

pincode
any

Pincode for the event.
Shall not be included when creating an event i.e. in the POST.

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.
BIWEEKLY, MONTHLY and YEARLY are not available.

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.
Valid values are: MO, TU, WE, TH, FR, SA, SU, Day, Weekday, WeekendDay. For weekly multiple instances of MO - SU can be used. For monthly and yearly only one instance can be used. Required if type is WEEKLY, MONTHLY_RELATIVE, or YEARLY_RELATIVE

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.
Shall not be included when creating/updating an event i.e. in the POST and PUT.

Responses

Request samples

Content type
application/json
{
  • "id": 1,
  • "dateTimeStart": "2023-05-31T15:38:39Z",
  • "dateTimeEnd": "2023-05-31T16:38:39Z",
  • "name": "Test meeting",
  • "organizer": {
    },
  • "participants": [
    ],
  • "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
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "dateTimeStart": "2023-05-31T15:38:39Z",
  • "dateTimeEnd": "2023-05-31T16:38:39Z",
  • "name": "Test meeting",
  • "organizer": {
    },
  • "participants": [
    ],
  • "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"
}

Delete event

Remove a specified event.

Authorizations:
Bearer
path Parameters
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

Responses

Response samples

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

Get instance

Get the details of a single occurrence or exception from a recurring event.

Authorizations:
Bearer
path Parameters
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

Responses

Response samples

Content type
application/json
Example

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": {
    },
  • "participants": [
    ]
}

Update instance

Modify a single event occurrence or an exception from a recurring event.

Authorizations:
Bearer
path Parameters
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

Request Body schema: application/json
id
any <int64>

The event exception's id.
Shall not be included when the update of an occurrence. Include if it an exception.

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.

Responses

Request samples

Content type
application/json
Example

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": {
    },
  • "participants": [
    ]
}

Response samples

Content type
application/json

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": {
    },
  • "participants": [
    ],
  • "dateTimeOld": "2023-05-31T15:38:39Z"
}

Delete instance

Remove a single event occurrence or an exception from a recurring event.

Authorizations:
Bearer
path Parameters
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

Responses

Response samples

Content type
application/json

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"
}

Fetches a ticket for interacting with the conference call via the CTI API.

path Parameters
domain
required
string

Organization domain

userId
required
string

User Identification

confId
required
string

Event Identification

Responses

Get conference numbers

Get available conference numbers for dialling in.

Authorizations:
Bearer
path Parameters
domain
required
string

The organization domain

userId
required
string

The user id of the user

Responses

Response samples

Content type
application/json
"string"

Get events

Fetch events for a specified user, where the user is either the organizer or a participant.

Authorizations:
Bearer
path Parameters
domain
required
string

The organization domain

userId
required
string

The user id of the user

Responses

Response samples

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

Create event

Schedule a new event.

Authorizations:
Bearer
path Parameters
domain
required
string

The organization domain

userId
required
string

The user id of the user

Request Body schema: application/json
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.
Mandatory if recurrenceRangeType is END_DATE or NUMBERED.
If recurrenceRangeType is NUMBERED this field shall include the calculated end date.

id
any <int64>

The event's id.
Shall not be included when creating an event i.e. in the POST.

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.
If the organization has MiTeam collaboration license, the max number of participants is 49.

minutesBeforeMeetingReminder
any <int32>

How many minutes before an event a reminder email should be sent to the participants.
Valid values are: 0, 5, 10, 15, 20, 25, 30. 0 means no reminder.
If omitted or null in the request the default value 15 will be used for reminder.

minutesBeforeMeetingSMS
any <int32>

How many minutes before an event a reminder SMS should be sent to the participants.
Valid values are: 0, 5, 10, 15, 20, 25, 30. 0 means no reminder.
If omitted or null in the request the default value 15 will be used for reminder.

pincode
any

Pincode for the event.
Shall not be included when creating an event i.e. in the POST.

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.
BIWEEKLY, MONTHLY and YEARLY are not available.

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.
Valid values are: MO, TU, WE, TH, FR, SA, SU, Day, Weekday, WeekendDay. For weekly multiple instances of MO - SU can be used. For monthly and yearly only one instance can be used. Required if type is WEEKLY, MONTHLY_RELATIVE, or YEARLY_RELATIVE

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.
Shall not be included when creating/updating an event i.e. in the POST and PUT.

Responses

Request samples

Content type
application/json
{
  • "dateTimeStart": "2023-05-31T15:38:39Z",
  • "dateTimeEnd": "2023-05-31T16:38:39Z",
  • "name": "Test meeting",
  • "organizer": {
    },
  • "participants": [
    ],
  • "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
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "dateTimeStart": "2023-05-31T15:38:39Z",
  • "dateTimeEnd": "2023-05-31T16:38:39Z",
  • "name": "Test meeting",
  • "organizer": {
    },
  • "participants": [
    ],
  • "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"
}

Get stream events

Fetch events for a stream.

Authorizations:
Bearer
query Parameters
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

Responses

Response samples

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

Get first workday

Fetches the first work day of week for given user/domain.

Authorizations:
Bearer
path Parameters
domain
required
string

The organization domain

userId
required
string

The user id of the user

Responses

Response samples

Content type
application/json
"string"

Get web meet

Get a web meeting.

Authorizations:
Bearer
path Parameters
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

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "code": "RESPONSE_SUCCESS"
}

Join conference

Join conference call on user's answer place.

Authorizations:
Bearer
path Parameters
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

query Parameters
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

Responses

Response samples

Content type
application/json
"string"

Enhanced conference enabled status

Returns true if the organization is using enhanced conferencing, false otherwise.

Authorizations:
Bearer
path Parameters
domain
required
string

The organization domain

Responses

Response samples

Content type
application/json
true

Leave conference

Hangs up conference call on user's answer place.

Authorizations:
Bearer
path Parameters
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

query Parameters
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

Responses

Response samples

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

Buddy List

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:

  • Add contact
  • Update contact
  • Verify contact
  • Delete contact

Verify contact

Verify a contact is in the favourite contact list.

Authorizations:
Bearer
path Parameters
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

Responses

Add contact

Add a contact to a user's favourites.

Authorizations:
Bearer
path Parameters
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

Responses

Delete contact

Delete a contact from a user's favourites.

Authorizations:
Bearer
path Parameters
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

Responses

Update contact

Update the favourites of a user based on the configured favourites templates of the organization and groups the user belongs to.

Authorizations:
Bearer
path Parameters
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

query Parameters
applyContactTemplates
required
string

Set to 'true' to generate favourites based on exisiting templates on organization and group level

Responses

Contacts

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:

  • List contacts
  • Add contact
  • Add contacts
  • Add contact status
  • Delete contact

Add contact

Add a contact to a user's contact list.

Authorizations:
Bearer
path Parameters
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.

Responses

Response samples

Content type
{
  • "query": "query",
  • "contact": [
    ]
}

Delete contact

Remove a contact from a user's contact list

Authorizations:
Bearer
path Parameters
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

Responses

Response samples

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

List contacts

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.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the user accessing the API.

user
required
string

The username of the user accessing the API.

query Parameters
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.

Responses

Response samples

Content type
{
  • "query": "query",
  • "contact": [
    ]
}

Add contacts

Add multiple contacts to a user's contact list.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the user accessing the API.

user
required
string

The username of the user accessing the API.

Request Body schema:
query
any

The query that was used to get the list of contacts.

Array of objects (ContactDTO)

List of contacts.

Responses

Request samples

Content type
{
  • "query": "query",
  • "contact": [
    ]
}

Response samples

Content type
{
  • "query": "query",
  • "contact": [
    ]
}

Add contact status

Add contact status for a user in contact list

Authorizations:
Bearer
path Parameters
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

Request Body schema:
contactStatus
required
any
Enum: "FAVORITE" "CONTACT" "VIP" "BLOCKED"

The status of the contact.

Responses

Request samples

Content type
{
  • "contactStatus": "FAVORITE"
}

Contacts Information

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:

  • Get contact
  • Get vCard
  • Get directory fields
  • Get image
  • Get availability
  • Get call state
  • Get activity
  • Get activity expiration
  • Get presence
  • Get presence in PIDF
  • Get presence role
  • Get note
  • Set directory fields
  • Set activity
  • Set activity expiration
  • Set presence role
  • Set note
  • Update vCard
  • Update presence in silent mode
  • Update presence using PIDF
  • Update presence partially

Get contact

Retrieve a contact's information.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the contact

cid
required
string

The ID of the contact

Responses

Response samples

Content type
Example

A directory contact

{
  • "id": "john@example.org",
  • "firstname": "John",
  • "lastname": "Doe",
  • "company": "Example organization",
  • "presence": {
    },
  • "inlist": false,
  • "diversionAccess": "NONE",
  • "type": "DIRECTORY",
  • "vcard": 22,
  • "contactStatus": "CONTACT",
  • "preferredNumber": "+46812345001",
  • "collaboration": true
}

Get availability

Retrieve a contact's availability. Response will be 'true' if the contact is available.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the contact

cid
required
string

The ID of the contact

Responses

Get image

Fetches the contact image of the specified user in an organization.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the contact

cid
required
string

The ID of the contact

query Parameters
ver
required
string

The image version

prefWidth
integer <int32>

Preferred width (pixels)

prefHeight
integer <int32>

Preferred height (pixels)

Responses

Get call state

Retrieve a contact's call state. Response will be 'true' if the contact is in a call.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the contact

cid
required
string

The ID of the contact

Responses

Get presence in PIDF

Retrieve a contact's presence in PIDF format.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the contact

cid
required
string

The ID of the contact

Responses

Update presence, silent mode or PIDF

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.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the contact

cid
required
string

The ID of the contact

query Parameters
forcePremappedDiversion
string

If set to 'true', activity diversion will override the premapped diversion.
Not applicable for update using PIDF format.

Request Body schema:
role
any

The current role of the contact

note
any

The presence note

object (Activity)

The presence activity of the contact

Responses

Request samples

Content type
{
  • "activity": {
    },
  • "available": false
}

Response samples

Content type
{
  • "futurePresenceAccess": "NONE",
  • "activityAccess": "NONE",
  • "roleAccess": "NONE",
  • "noteAccess": "NONE",
  • "capabilities": [
    ]
}

Get activity

Retrieve a contact's activity.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the contact

cid
required
string

The ID of the contact

Responses

Get activity expiration

Retrieve a contact's activity expiration.
The response will be presented in UTC time format, yyyy-MM-dd'T'HH:mm:ss'Z'.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the contact

cid
required
string

The ID of the contact

Responses

Get note

Retrieve a contact's presence note.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the contact

cid
required
string

The ID of the contact

Responses

Set note

Update a contact's presence note.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the contact

cid
required
string

The ID of the contact

query Parameters
note
required
string

The note

Responses

Get presence

Retrieve a contact's presence information.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the contact

cid
required
string

The ID of the contact

Responses

Response samples

Content type
{
  • "presence": {
    },
  • "forbidden": [
    ]
}

Update presence

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.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the contact

cid
required
string

The ID of the contact

query Parameters
forcePremappedDiversion
string

If set to 'true', activity diversion will override the premapped diversion

Request Body schema:
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.

Responses

Request samples

Content type

Unsuccessful

{
  • "activity": {
    },
  • "available": false
}

Response samples

Content type
{
  • "presence": {
    },
  • "forbidden": [
    ]
}

Get role

Retrieve a contact's presence role.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the contact

cid
required
string

The ID of the contact.

Responses

Get vCard

Retrieve a contact's vCard information.

Authorizations:
Bearer
path Parameters
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

query Parameters
ver
string

The vCard version

Responses

Response samples

Content type
{}

Update vCard

Update a contact's vCard information.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the contact

cid
required
string

The ID of the contact

Request Body schema:
required
object (Desc)

Contact description

Responses

Request samples

Content type
{}

Response samples

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

Get directory fields

Retrieve a contact's directory fields.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the contact

cid
required
string

The ID of the contact

Responses

Response samples

Content type
{
  • "field": [
    ]
}

Set directory fields

Update a contact's directory fields.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the contact

cid
required
string

The ID of the contact.

Request Body schema: */*
object (field)

List of fields.

Responses

Request samples

Content type
*/*
{
  "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"
    }
  ]
}

Response samples

Content type
{
  • "field": [
    ]
}

Set activity

Update a contact's activity.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the contact

cid
required
string

The ID of the contact

activity
required
string

The presence activity
Available values can be listed by using the Configuration API.

query Parameters
available
boolean

The availability

Responses

Set activity expiration

Update a contact's activity expiration.

Authorizations:
Bearer
path Parameters
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 date and time should be a string according to XMLCalendar: YYYY-MM-DDThh:mm:ss ,for example: 2010-01-27T19:01:32. You can also add a time zone. The time zone is based on UTC (Z) with an offset from -14:00 to +14:00. For example, "14:30:00-05:00" specifies 2:30 PM in the afternoon at UTC-05:00, which is the same as EST. If a time zone is not specified, the default time zone is used.

Responses

Set role

Set a contact's presence role.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the contact

cid
required
string

The ID of the contact

role
required
string

The presence role
Available values can be listed by using the Configuration API.

Responses

Contacts Information V1

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:

  • Get contact
  • Get vCard
  • Get image
  • Get availability
  • Get activity
  • Get activity expiration
  • Get presence
  • Get presence role
  • Get scheduled presence
  • Get note
  • Get line state
  • List time zones
  • Add scheduled presence
  • Set activity
  • Set activity expiration
  • Set presence role
  • Set note
  • Update vCard
  • Update scheduled presence
  • Update presence using PIDF
  • Delete scheduled presence
  • Subscribe on linestate
  • Subscribe on presence
  • External number lookup

Get presence

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.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the contact

cid
required
string

The ID of the contact

query Parameters
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:
PRESENCE - Scheduled presences including synchronized presences from external calendar.
CALENDAR - External calendar events, both events mapped to schedule presences and other synchronized events.
ALL - Both schedule presences and all synchronized external calendar events.
If eventType is not set, it will default to PRESENCE.

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.

Responses

Response samples

Content type
{
  • "presence": [
    ],
  • "calendar-sync-status": "calendar-sync-not-enabled"
}

Update presence using PIDF

Update presence information in 'application/pidf+xml' format, see RFC3863/RFC4480/4481/RFC4482.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the contact

cid
required
string

The ID of the contact

Request Body schema: application/pidf+xml
string

Responses

Response samples

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

Add scheduled presence

Add scheduled presence change for a contact.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the contact

cid
required
string

The ID of the contact

Request Body schema:
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

Responses

Request samples

Content type
{
  • "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": {
    }
}

Response samples

Content type
{
  • "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": {
    }
}

Get scheduled presence

Retrieve a specific scheduled presence change for a contact.

Authorizations:
Bearer
path Parameters
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

Responses

Response samples

Content type
{
  • "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": {
    }
}

Update scheduled presence

Update a contact's scheduled presence change.

Authorizations:
Bearer
path Parameters
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

Request Body schema:
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

Responses

Request samples

Content type
{
  • "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": {
    }
}

Response samples

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

Delete scheduled presence

Remove a contact's scheduled presence change.

Authorizations:
Bearer
path Parameters
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

query Parameters
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

Responses

Response samples

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

Get contact

Retrieve a contact's information.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the contact

cid
required
string

The ID of the contact

Responses

Response samples

Content type
Example

A directory contact

{
  • "id": "john@example.org",
  • "firstname": "John",
  • "lastname": "Doe",
  • "company": "Example organization",
  • "presence": {
    },
  • "inlist": false,
  • "diversionAccess": "NONE",
  • "type": "DIRECTORY",
  • "vcard": 22,
  • "contactStatus": "CONTACT",
  • "preferredNumber": "+46812345001",
  • "collaboration": true
}

Get availability

Retrieve a contact's availability.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the contact

cid
required
string

The ID of the contact

Responses

Get image

Retrieve a contact's image.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the contact

cid
required
string

The ID of the contact

query Parameters
ver
required
string

The image version

prefWidth
integer <int32>

Preferred width (pixels)

prefHeight
integer <int32>

Preferred height (pixels)

Responses

Get line state

Retrieve a contact's line state.

Authorizations:
Bearer
path Parameters
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

Responses

Get activity

Retrieve a contact's activity.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the contact

cid
required
string

The ID of the contact

Responses

Get activity expiration

To read a contact's activity expiration.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the contact

cid
required
string

The ID of the contact

Responses

Get note

Get a contact's presence note.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the contact

cid
required
string

The ID of the contact

Responses

Set note

Set a contact's presence note.

Authorizations:
Bearer
path Parameters
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

query Parameters
note
string

The note

ver
string

Version number (not used)

Responses

Get role

Retrieve a contact's presence role.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the contact

cid
required
string

The ID of the contact

Responses

Get vCard

To read a contact's vCard information.

Authorizations:
Bearer
path Parameters
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

query Parameters
ver
string

The vCard version

Responses

Response samples

Content type
{}

Update vCard

Update a contact's vCard information.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the contact

cid
required
string

The ID of the contact

Request Body schema:
required
object (Desc)

Contact description

Responses

Request samples

Content type
{}

Response samples

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

External number lookup

Do a number lookup in an external directory.

Authorizations:
Bearer
path Parameters
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

Responses

Response samples

Content type
application/json
{
  • "name": "Jane Doe"
}

List time zones

List the supported time zone ID values and their offset values

Authorizations:
Bearer
query Parameters
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.

Responses

Response samples

Content type
{
  • "timezone": [
    ]
}

Update activity

Update a contact's activity.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the contact

cid
required
string

The ID of the contact

activity
required
string

The presence activity
Available values can be listed by using the Configuration API.

query Parameters
available
boolean

The availability

Responses

Update activity expiration

Update a contact's activity expiration.

Authorizations:
Bearer
path Parameters
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 date and time should be a string according to XMLCalendar: YYYY-MM-DDThh:mm:ss , for example: 2010-01-27T19:01:32. You can also add a time zone. The time zone is based on UTC (Z) with an offset from -14:00 to +14:00. For example, "14:30:00-05:00" specifies 2:30 PM in the afternoon at UTC-05:00, which is the same as EST. If a time zone is not specified, the default time zone is used.

Responses

Set role

Set a contact's presence role.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the contact

cid
required
string

The ID of the contact

role
required
string

The presence role
Available values can be listed by using the Configuration API.

Responses

Subscribe on line state

The method produces a SSE stream of line state updates in application/dialog-info+xml format, see RFC4235.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the contact

cid
required
string

The ID of the contact

Responses

Subscribe on presence

The method produces a SSE stream of presence states in 'application/pidf+xml' format, see RFC3863/RFC4480/4481/RFC4482.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the contact

cid
required
string

The ID of the contact

Responses

Personal Contacts

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 contacts for a user, group or organization
  • Add/update a contact for a user, group or organization
  • Delete specific contact for a user, group or organization
  • Retrieve specific contact for a user, group or organization
  • Retrieve localized phone labels for an organization
Managing contacts on organization level requires the organization administrator user right.

List contacts for user

List all contacts for a user in the organization.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the user that owns the contacts

user
required
string

The username of the user that owns the contacts

Responses

Response samples

Content type
{
  • "personal_contact": [
    ]
}

Create contact for user

Create a contact for a user in the organization.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the user that owns the contact

user
required
string

The username of the user that owns the contact

Request Body schema:
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.
Note: either company, first name or last name is required when creating and updating a contact.

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.
Note: either company, first name or last name is required when creating and updating a contact.

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.

email
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'.
Contacts with status 'FAVORITE' or 'VIP' are shown in the default contact list. If provided when creating or updating a contact, this setting overrides showInDefaultContactList.

object (phoneNumbers)

A list of phone numbers for the contact.

Responses

Request samples

Content type
{
  • "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": [
    ]
}

Response samples

Content type
{
  • "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": [
    ]
}

List contacts for user group

List all contacts for a user group in the organization.

Authorizations:
Bearer
path Parameters
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

Responses

Response samples

Content type
{
  • "personal_contact": [
    ]
}

Create contact for user group

Create a contact for a user group in the organization.

Authorizations:
Bearer
path Parameters
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

Request Body schema:
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.
Note: either company, first name or last name is required when creating and updating a contact.

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.
Note: either company, first name or last name is required when creating and updating a contact.

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.

email
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'.
Contacts with status 'FAVORITE' or 'VIP' are shown in the default contact list. If provided when creating or updating a contact, this setting overrides showInDefaultContactList.

object (phoneNumbers)

A list of phone numbers for the contact.

Responses

Request samples

Content type
{
  • "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": [
    ]
}

Response samples

Content type
{
  • "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": [
    ]
}

List contacts for organization

List all contacts on organization level when requested by an administrator.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the organization that owns the contacts

Responses

Response samples

Content type
{
  • "personal_contact": [
    ]
}

Create contact for organization

Creates contact on organization level when requested by an administrator.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the organization that owns the contact

Request Body schema:
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.
Note: either company, first name or last name is required when creating and updating a contact.

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.
Note: either company, first name or last name is required when creating and updating a contact.

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.

email
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'.
Contacts with status 'FAVORITE' or 'VIP' are shown in the default contact list. If provided when creating or updating a contact, this setting overrides showInDefaultContactList.

object (phoneNumbers)

A list of phone numbers for the contact.

Responses

Request samples

Content type
{
  • "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": [
    ]
}

Response samples

Content type
{
  • "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": [
    ]
}

Get contact for user

Retrieve the specific contact for a user in the organization.

Authorizations:
Bearer
path Parameters
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

Responses

Response samples

Content type
{
  • "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": [
    ]
}

Update contact for user

Update the specific contact for a user in the organization.

Authorizations:
Bearer
path Parameters
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

Request Body schema:
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.
Note: either company, first name or last name is required when creating and updating a contact.

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.
Note: either company, first name or last name is required when creating and updating a contact.

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.

email
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'.
Contacts with status 'FAVORITE' or 'VIP' are shown in the default contact list. If provided when creating or updating a contact, this setting overrides showInDefaultContactList.

object (phoneNumbers)

A list of phone numbers for the contact.

Responses

Request samples

Content type
{
  • "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": [
    ]
}

Response samples

Content type
"string"

Delete contact for user

Delete the specific contact for a user.

Authorizations:
Bearer
path Parameters
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

Responses

Response samples

Content type
"string"

Get contact for user group

Retrieve a contact for a user group in the organization.

Authorizations:
Bearer
path Parameters
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

Responses

Response samples

Content type
{
  • "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": [
    ]
}

Update contact for user group

Update the specific contact for a user group in the organization.

Authorizations:
Bearer
path Parameters
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

Request Body schema:
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.
Note: either company, first name or last name is required when creating and updating a contact.

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.
Note: either company, first name or last name is required when creating and updating a contact.

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.

email
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'.
Contacts with status 'FAVORITE' or 'VIP' are shown in the default contact list. If provided when creating or updating a contact, this setting overrides showInDefaultContactList.

object (phoneNumbers)

A list of phone numbers for the contact.

Responses

Request samples

Content type
{
  • "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": [
    ]
}

Response samples

Content type
"string"

Delete contact for user group

Delete the specific contact for a user group in the organization.

Authorizations:
Bearer
path Parameters
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

Responses

Response samples

Content type
"string"

Get contact for organization

Retrieve the specific contact on the organization level when requested by an administrator.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the organization that owns the contact

cid
required
string

The ID of the contact

Responses

Response samples

Content type
{
  • "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": [
    ]
}

Update contact for organization

Update the specific contact on organization level when requested by an administrator.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the organization that owns the contact

cid
required
string

The ID of the contact

Request Body schema:
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.
Note: either company, first name or last name is required when creating and updating a contact.

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.
Note: either company, first name or last name is required when creating and updating a contact.

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.

email
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'.
Contacts with status 'FAVORITE' or 'VIP' are shown in the default contact list. If provided when creating or updating a contact, this setting overrides showInDefaultContactList.

object (phoneNumbers)

A list of phone numbers for the contact.

Responses

Request samples

Content type
{
  • "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": [
    ]
}

Response samples

Content type
"string"

Delete contact for organization

Delete the specific contact on organization level when requested by an administrator.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the organization that owns the contact

cid
required
string

The ID of the contact

Responses

Response samples

Content type
"string"

Get localized phone labels

Retrieve localized phone labels.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the organization

query Parameters
locale
required
string

The locale to be translated to

Responses

Response samples

Content type
{
  • "phoneLabels": [
    ]
}

Activity Diversion Mapping

The Activity Diversion Mapping API is used to manage diversions for activities.
Use the Activity Diversion Mapping API to:

  • Get diversion number for specified activity for a user
  • List all activity diversions for a user
  • Set diversion number for specified activity for a user
  • Set multiple activity diversions for a user
  • Delete diversion for specified activity for a user
  • Delete all activity diversions for a user

List diversions

Get all activity diversions for a user.

Authorizations:
Bearer
path Parameters
userId
required
string

The user ID of the user accessing the API

domain
required
string

The domain of the user accessing the API

Responses

Response samples

Content type
{
  • "diversion-mapping": [
    ]
}

Set diversions

Set activity diversions for a user.
Both POST and PUT can be used in the request.
This will replace all existing settings.

Authorizations:
Bearer
path Parameters
userId
required
string

The user ID of the user accessing the API

domain
required
string

The domain of the user accessing the API

Request Body schema:
Array of objects (DiversionMappingDTO)

List of activity diversions

Responses

Request samples

Content type
{
  • "diversion-mapping": [
    ]
}

Response samples

Content type
{
  • "diversion-mapping": [
    ]
}

Delete diversions

Delete all activity diversions for a user.

Authorizations:
Bearer
path Parameters
userId
required
string

The user ID of the user accessing the API

domain
required
string

The domain of the user accessing the API

Responses

Get activity diversion

Get the diversion number for a specified activity for a user.
Available activity ids can be fetched with the Configuration API.

Authorizations:
Bearer
path Parameters
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

Responses

Response samples

Content type
{
  • "activityId": "lunch",
  • "phoneNumber": "+12345679"
}

Set activity diversion

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.

Authorizations:
Bearer
path Parameters
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

Request Body schema:
activityId
any

The activity the call shall be diverted for

phoneNumber
any

Phone number the call will be diverted to for specified activity

Responses

Request samples

Content type
{
  • "phoneNumber": "+12345679"
}

Response samples

Content type
{
  • "activityId": "out_of_office",
  • "phoneNumber": "+12345679"
}

Delete activity diversion

Delete diversion for specified activity for a user.
Available activity ids can be fetched with the Configuration API.

Authorizations:
Bearer
path Parameters
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

Responses

Diversion

The Diversion API is used to set the active diversion number and diversion rules of a user.
Use the Diversion API to:

  • Get active diversion number for a user
  • Set active diversion number for a user
  • Delete active diversion number for a user
  • Get diversion routing rules for a user
  • Get diversion routing rules for line order for a user
  • Get diversion routing rules for line order and rule type for a user
  • Set diversion routing rules for a user
  • Set diversion routing rules for line order for a user
  • Set diversion routing rules for line order and rule type for a user
  • Delete diversion routing rules for a user
  • Delete diversion routing rules for line order for a user
  • Delete diversion routing rules for line order and rule type for a user

Get diversion rules

Retrieves a user's diversion rules.

Authorizations:
Bearer
path Parameters
userId
required
string

The username of the user accessing the API

domain
required
string

The domain of the user accessing the API

Responses

Response samples

Content type
{
  • "user": {
    },
  • "userDiversionLineRules": [
    ]
}

Set diversion rules

Updates the user's defined diversion rules for available lines.
Both POST and PUT can be used in the request.

Authorizations:
Bearer
path Parameters
userId
required
string

The username of the user accessing the API

domain
required
string

The domain of the user accessing the API

Request Body schema:
object (UserIdentityDTO)

User information

Array of objects (userDiversionLineRule)

List of diversion details for a user's lines

Responses

Request samples

Content type
{
  • "user": {
    },
  • "userDiversionLineRules": [
    ]
}

Response samples

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

Delete diversion rule

Deletes a user's defined diversion rules.

Authorizations:
Bearer
path Parameters
userId
required
string

The username of the user accessing the API

domain
required
string

The domain of the user accessing the API

Responses

Response samples

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

Get diversion by line order type

Retrieves a user's diversion rules for specified line order type.

Authorizations:
Bearer
path Parameters
userId
required
string

The username of the user accessing the API

domain
required
string

The domain of the user accessing the API

lineOrderType
required
string

User line order for which diversion details shall to be fetched. Possible values are:
PRIMARY - Primary line
SECONDARY - Secondary line

Responses

Response samples

Content type
{
  • "user": {
    },
  • "userDiversionLineRules": [
    ]
}

Set diversion for line order

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.

Authorizations:
Bearer
path Parameters
userId
required
string

The username of the user accessing the API

domain
required
string

The domain of the user accessing the API

lineOrderType
required
string

User line order for which diversion shall be set. Possible values are:
PRIMARY - Primary line
SECONDARY - Secondary line

Request Body schema:
object (UserIdentityDTO)

User information

Array of objects (userDiversionLineRule)

List of diversion details for a user's lines

Responses

Request samples

Content type
{
  • "userDiversionLineRules": [
    ]
}

Response samples

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

Delete diversion rule for line order

Deletes a user's defined diversion rule for a line order type.

Authorizations:
Bearer
path Parameters
userId
required
string

The username of the user accessing the API

domain
required
string

The domain of the user accessing the API

lineOrderType
required
string

User line order for which diversion rules shall be deleted. Possible values are:
PRIMARY - Primary line
SECONDARY - Secondary line

Responses

Response samples

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

Get diversion for rule type

Retrieves a user's diversion rules for a specific line order and rule type.

Authorizations:
Bearer
path Parameters
userId
required
string

The username of the user accessing the API

domain
required
string

The domain of the user accessing the API

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:
PRIMARY - Primary line
SECONDARY - Secondary line

Responses

Response samples

Content type
{
  • "lineOrderType": "PRIMARY",
  • "phoneNumber": "+12345678",
  • "diversionRoutingRulesType": "CFWD_NO_ANSWER"
}

Set diversion for rule type

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.

Authorizations:
Bearer
path Parameters
userId
required
string

The username of the user accessing the API

domain
required
string

The domain of the user accessing the API

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:
PRIMARY - Primary line
SECONDARY - Secondary line

Request Body schema:
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

Responses

Request samples

Content type
{
  • "phoneNumber": "+12345679",
  • "diversionRoutingRulesType": "CFWD_ON_BUSY"
}

Response samples

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

Delete diversion for rule

Deletes a user's defined diversion rule for a pre-defined diversion rule type.

Authorizations:
Bearer
path Parameters
userId
required
string

The username of the user accessing the API

domain
required
string

The domain of the user accessing the API

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:
PRIMARY - Primary line
SECONDARY - Secondary line

Responses

Response samples

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

Get active diversion number

Retrieves a user's active diversion number.

Authorizations:
Bearer
path Parameters
userId
required
string

The username of the user accessing the API

domain
required
string

The domain of the user accessing the API

Responses

Response samples

Content type
{
  • "diversion-number": "+14423455"
}

Set diversion number

Sets a user's active diversion number.
Both POST and PUT can be used in the request.

Authorizations:
Bearer
path Parameters
userId
required
string

The username of the user accessing the API

domain
required
string

The domain of the user accessing the API

query Parameters
phoneNumber
required
string

The diversion number

activityScoped
boolean

Set to true if the diversion number should be cleared after a change of presence activity.

Responses

Response samples

Content type
{
  • "diversion-number": "+14423455"
}

Delete diversion number

Clears a user's active diversion number.

Authorizations:
Bearer
path Parameters
userId
required
string

The username of the user accessing the API

domain
required
string

The domain of the user accessing the API

Responses

Mobile Subscribers

The Mobile Subscriber API is used to set features on a subscriber level.
Use Mobile Subscriber API to:

  • Get PBX integration setting
  • Update PBX integration setting
  • Get route to PBX setting
  • Update route to PBX setting
  • Get number presentation setting
  • Update number presentation setting
  • Get caller ID settings
  • Update caller ID settings

Get caller ID settings

Retrieve the full caller ID setting for incoming calls to a subscriber's mobile.

Authorizations:
Bearer
path Parameters
number
required
string

The mobile number of the subscriber

domain
required
string

The organization domain

Responses

Response samples

Content type
application/json
true

Update caller ID setting

Update the full caller ID setting for incoming calls to a subscriber's mobile.

Authorizations:
Bearer
path Parameters
number
required
string

The mobile number of the subscriber

domain
required
string

The organization domain

query Parameters
enable
required
boolean

Indicate if integration should be enabled or disabled

Responses

Get number presentation setting

Retrieve the number presentation setting of a mobile subscriber.

Authorizations:
Bearer
path Parameters
number
required
string

The mobile number of the subscriber

domain
required
string

The organization domain

Responses

Response samples

Content type
application/json
"2"

Update number presentation setting

Update the number presentation of a mobile subscriber.

Authorizations:
Bearer
path Parameters
number
required
string

The mobile number of the subscriber

domain
required
string

The organization domain

query Parameters
value
required
integer <int32>

The number presentation setting. The parameter can have 4 different values;
0: Use fixed number and short number internally
1: Use mobile number and short number internally
2: Always use fixed number
3: Always use mobile number

Responses

Get PBX integration setting

Retrieve the PBX integration setting of a mobile subscriber.

Authorizations:
Bearer
path Parameters
number
required
string

The mobile number of the subscriber

domain
required
string

The organization domain

Responses

Response samples

Content type
application/json
true

Update PBX integration setting

Update the PBX integration of a mobile subscriber.

Authorizations:
Bearer
path Parameters
number
required
string

The mobile number of the subscriber

domain
required
string

The organization domain

query Parameters
enable
required
boolean

Indicate if integration should be enabled or disabled

Responses

Get route to PBX setting

Retrieve the route to PBX setting of a mobile subscriber.

Authorizations:
Bearer
path Parameters
number
required
string

The mobile number of the subscriber

domain
required
string

The organization domain

Responses

Response samples

Content type
application/json
true

Update route to PBX setting

Update the Route to PBX setting of a mobile subscriber.

Authorizations:
Bearer
path Parameters
number
required
string

The mobile number of the subscriber

domain
required
string

The organization domain

query Parameters
enable
required
boolean

Indicate if route to PBX should be enabled or disabled

Responses

Presence Shortcuts

The Presence Shortcuts API is used to manage presence shortcuts on user level. Use the Presence Shortcuts API to:

  • Read all presence shortcuts for a user
  • Update all presence shortcuts for a user
  • Delete all presence shortcuts for a user
  • Read a presence shortcut for a user
  • Create or update a presence shortcut for a user
  • Delete a presence shortcut for a user

Read a presence shortcut

Read a specific presence shortcut for the user.

Authorizations:
Bearer
path Parameters
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

Responses

Response samples

Content type
{
  • "id": "sdfdsf3333",
  • "name": "Weekend",
  • "activityId": "busy",
  • "available": false,
  • "durationType": "UNTIL_NEXT_WORKING_DAY",
  • "order": 1,
  • "imageId": "ic_shortcut_big_red",
  • "applyDiversionNumber": false
}

Update a presence shortcut

Update a specific presence shortcut for a user. A new shortcut will be created if it does not already exist.

Authorizations:
Bearer
path Parameters
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

Request Body schema:
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 values can be listed by using the User Information API.

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.

Responses

Request samples

Content type
{
  • "id": "yyrn333ffFFs2",
  • "name": "Short lunch break",
  • "activityId": "lunch",
  • "available": false,
  • "durationType": "MINUTES",
  • "durationMinutes": 45,
  • "order": 4,
  • "imageId": "ic_shortcut_pizza",
  • "diversionPhoneNumber": "+45552641",
  • "applyDiversionNumber": true
}

Response samples

Content type
{
  • "id": "sdfdsf3333",
  • "name": "Weekend",
  • "activityId": "busy",
  • "available": false,
  • "durationType": "UNTIL_NEXT_WORKING_DAY",
  • "order": 1,
  • "imageId": "ic_shortcut_big_red",
  • "applyDiversionNumber": false
}

Delete a presence shortcut

Delete a specific presence shortcut for a user.

Authorizations:
Bearer
path Parameters
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

Responses

List presence shortcuts

Read all presence shortcuts for a user.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the user accessing the API

user
required
string

The username of the user accessing the API

Responses

Response samples

Content type
{
  • "presenceShortcut": [
    ]
}

Update presence shortcuts

Update all presence shortcuts for a user. Any existing presence shortcut for the user will be overwritten by this list.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the user accessing the API

user
required
string

The username of the user accessing the API

Request Body schema:
required
Array of objects (PresenceShortcutDTO)

A list of presence shortcuts

Responses

Request samples

Content type
{
  • "presenceShortcut": [
    ]
}

Response samples

Content type
{
  • "presenceShortcut": [
    ]
}

Delete presence shortcuts

Delete all presence shortcuts for a user.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the user accessing the API

user
required
string

The username of the user accessing the API

Responses

User Configuration Settings

The End-user Configuration API is used to fetch different configuration data.
Use the End-user Configuration API to:

  • List configuration settings
  • List presence activites
  • List presence roles
  • Get answer places
  • Get privacy policy URL
  • Get legal statement URL
  • Get self profile URL
  • Get self provisioning URL
  • Subscribe on configuration data

Get answer places

Retrieve mapping for the possible devices the user can set up calls from.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the user accessing the API

user
required
string

The username of the user accessing the API

Responses

Response samples

Content type
Example

User answer the call from a mobile device.

{
  • "answerplace": [
    ]
}

Get legal statement URL

Retrieve a legal statement URL

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the user accessing the API

Responses

Response samples

Content type

Get privacy policy URL

Retrieve a privacy policy URL.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the user accessing the API

Responses

Response samples

Content type

List presence roles

Retrieve the localized strings for presence roles. Roles may also be used to define different work situations.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the user accessing the API

user
required
string

The username of the user accessing the API

Responses

Response samples

Content type
Example

Business role indicates that the user is at the office.

{
  • "role": [
    ]
}

Get self profile URL

Retrieve a one-time self profile URL.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the user accessing the API

user
required
string

The username of the user accessing the API

Responses

Response samples

Get self provisioning URL

Retrieve a one-time self provisioning URL.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the user accessing the API

user
required
string

The username of the user accessing the API

Responses

Response samples

List presence activites

Retrieve the localized strings for presence activities.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the user accessing the API

user
required
string

The username of the user accessing the API

Responses

Response samples

Content type
Example

Available activity indicates that user is avaiable.

{
  • "activity": [
    ]
}

List settings

Retrieve an aggregated document of all the configuration settings.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the user accessing the API

user
required
string

The username of the user accessing the API

Responses

Response samples

Content type
{
  • "activities": {
    },
  • "roles": {
    },
  • "answerplaces": {
    },
  • "topics-enabled": true,
  • "sms-allowed": true,
  • "fallbackToDefaultPresenceState": false,
  • "defaultPresenceState": "Available",
  • "callrouting-enabled": true,
  • "fields": {
    }
}

Get web client URL

Retrieve URL to the web client to access enduser portal and web softphone.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the user accessing the API

user
required
string

The username of the user accessing the API

Responses

Response samples

Content type
application/json

Subscribe on configuration data

The method will produce an SSE stream of application configuration data in application/app-config-data format.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the user accessing the API

user
required
string

The username of the user accessing the API

Responses

User Device Information

The User Device Information API is used to manage information about end user devices.
Use the User Device Information API to:

  • Get a list with overview information on all the user's currently active devices
  • Get a list with information about all user's devices
  • Get detailed information about a specific device
  • Get the name used for a specific device
  • Set or update the name to use for a specific device
  • Get the name of the icon used for a specific device
  • Set or update the name of the icon to use for a specific device
  • Revoke the installation of a specific device

Unregister device updates webhook

Unregister an existing webhook registered for the user.

Authorizations:
SystemBearer
path Parameters
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

Responses

Get user device

Retrieve detailed information about a certain user device. The returned document contains a list of attributes providing detailed information about the user's device.

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization the user belongs to

userId
required
string

The user ID

deviceId
required
string

The device ID

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get user device icon name

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.

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization the user belongs to

userId
required
string

The user ID

deviceId
required
string

The device ID

query Parameters
fallback
boolean

If true, the default icon name will be returned if no name is configured

Responses

Response samples

Content type
"DESKPHONE_TYPE_2"

Update user device icon name

Set or Update the display icon name for a certain user device. The icon name must correspond to the type of the device.

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization the user belongs to

userId
required
string

The user ID

deviceId
required
string

The device ID

query Parameters
name
required
string
Enum: "DEFAULT" "TYPE_1" "TYPE_2"

The display icon name of the device to be updated

Responses

List all user devices

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.

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization the user belongs to

userId
required
string

The user ID

query Parameters
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.

Responses

Response samples

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

Get user device name

Retrieve display name of certain user device.

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization the user belongs to

userId
required
string

The user ID

deviceId
required
string

The device ID

query Parameters
fallback
boolean

If true, the default name will be returned if no name is configured

Responses

Response samples

Content type
"My work laptop"

Update user device name

Set or Update the display name of a certain user device.

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization the user belongs to

userId
required
string

The user ID

deviceId
required
string

The device ID

query Parameters
name
required
string

The display name of the device to be updated (max 32 characters)

Responses

List active user devices

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.

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization the user belongs to

userId
required
string

The user ID

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Register device updates webhook

Register a webhook where notifications when there are any changes in the user's device set.

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization

userId
required
string

The ID of the user

Request Body schema: application/json
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

Responses

Callbacks

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{
  • "expiresOn": 3600
}

Callback payload samples

Callback
POST: payload data will be sent
Content type
application/json
{
  • "timeStamp": "2023-05-31 09:58:03.774",
  • "changedField": "DEVICE_INFO"
}

Revoke user device

Revoke the installation of a device.

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization the user belongs to

userId
required
string

The user ID

deviceId
required
string

The device ID

Responses

Subscribe for user devices updates

Subscribe for update events when there are any changes in the users device set. Subscription data is in application/app-config-data format.

Authorizations:
SystemBearer
path Parameters
domain
required
string

The domain of the organization the user belongs to

userId
required
string

The user id

Responses

User Information

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 presence state of the accessing user
  • Update the presence state of a user
  • Get the availability state of a user
  • Get the activity of a user
  • Set the activity of a user
  • Get the activity end-time of a user
  • Set the activity end-time of a user
  • Get the presence role of a user
  • Set the presence role of a user
  • Get the presence note of a user
  • Set the presence note of a user
  • Delete the presence note of a user
  • Get the photo associated with a user
  • Upload a photo to be associated with a user

Get photo

Get the photo associated with a user.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the user

user
required
string

The user ID of the user

query Parameters
prefWidth
integer <int32>

The preferred width of the photo

prefHeight
integer <int32>

The preferred height of the photo

Responses

Upload photo

Upload a photo to be associated with a user. Both PUT and POST methods are accepted for this operation.
The photo shall be added in the HTTP body.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the user

user
required
string

The user ID of the user

Responses

Delete photo

Delete photo associated with the user.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the user

user
required
string

The user ID of the user

Responses

Get presence state

Get the presence state for the accessing user.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the user accessing the API

user
required
string

The user ID of the user accessing the API

Responses

Response samples

Content type
{
  • "futurePresenceAccess": "NONE",
  • "activityAccess": "NONE",
  • "roleAccess": "NONE",
  • "noteAccess": "NONE",
  • "note": "Planning our upgrade",
  • "activity": {
    },
  • "idle": false,
  • "available": true,
  • "capabilities": [
    ]
}

Update presence state

Update the presence state of a user.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the user to be updated

user
required
string

The user ID of the user to be updated

Request Body schema:
role
any

The current role of the contact

note
any

The presence note

object (Activity)

The presence activity of the contact

Responses

Request samples

Content type
Example

Setting a new presence note

{
  • "note": "Presenting at the conference"
}

Response samples

Content type
{
  • "futurePresenceAccess": "NONE",
  • "activityAccess": "NONE",
  • "roleAccess": "NONE",
  • "noteAccess": "NONE",
  • "note": "Discuss UX with Dan",
  • "activity": {
    },
  • "idle": true,
  • "available": false
}

Get activity

Get the ID of the user's current activity.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the user

user
required
string

The user ID of the user

Responses

Response samples

Content type
*/*
available

Get activity end-time

Get end-time of the user's current activity. Returns 'never' if no end-time is set.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the user

user
required
string

The user ID of the user

Responses

Response samples

Content type
*/*
2020-01-31T20:00:00Z

Get availability state

Get the availability state for the user. The operation returns "true" if the user is available, and "false" otherwise.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the user

user
required
string

The user ID of the user

Responses

Response samples

Content type
*/*
true

Get presence note

Get presence note of a user.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the user

user
required
string

The user ID of the user

Responses

Response samples

Content type
*/*
Analyzing requirements

Get role

Get the role of a user.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the user

user
required
string

The user ID of the user

Responses

Response samples

Content type
*/*
private

Set activity

Set the activity of the user.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the user

user
required
string

The user ID of the user

activity
required
string

The new activity ID

query Parameters
available
boolean

The new availability of the user

Responses

Response samples

Content type
*/*
available

Set activity end-time

Set a user's current activity's end-time.

Authorizations:
Bearer
path Parameters
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

Responses

Response samples

Content type
*/*
2020-05-09T08:45:00Z

Set presence note

Set the presence note for a user.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the user

user
required
string

The user ID of the user

note
required
string

The new note

Responses

Response samples

Content type
*/*
Waiting for our flight

Set role

Set the role of a user.

path Parameters
domain
required
string

The domain of the user

user
required
string

The user ID of the user

role
required
string

The new role

Responses

Response samples

Content type
*/*
business

User Line

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 user lines
  • Get active user line
  • Update user line

Get user lines

Get the list of all available lines that user can use

Authorizations:
Bearer
path Parameters
domain
required
string

The organization domain

user
required
string

The username of the user

Responses

Response samples

Content type
{
  • "line": [
    ]
}

Get active user line

Get the current active caller ID for a user.

Authorizations:
Bearer
path Parameters
domain
required
string

The organization domain

user
required
string

The username of the user

Responses

Response samples

Content type
{
  • "number": "+123400",
  • "type": "SWITCHBOARD",
  • "name": "swithboard",
  • "groupId": 0
}

Update user line

Update the current active caller ID for user.

Authorizations:
Bearer
path Parameters
domain
required
string

The organization domain

user
required
string

The username of the user

Request Body schema:
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.

Responses

Request samples

Content type
{
  • "type": "OFFICE_FIXED",
  • "groupId": 1
}

Response samples

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

Voicemail Settings

The User Voicemail Settings API is a group of methods to manage Voicemail Settings at end user level.
Use the Voicemail Settings API to:

  • Get voicemail settings
  • Update voicemail settings
  • Reset voicemail settings

Get user settings

Retrieve voicemail settings for a user.

Authorizations:
Bearer
path Parameters
domain
required
string

The domain of the organization

userId
required
string

The user id of the user

Responses

Response samples

Content type
application/json
{
  • "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 user settings

Update voicemail settings for a user.

Authorizations:
Bearer
path Parameters
domain
required
string

The organization domain

userId
required
string

The user id of the user

Request Body schema: application/json
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.

Responses

Request samples

Content type
application/json
{
  • "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
}

Reset user settings

Reset voicemail settings for a user.

Authorizations:
Bearer
path Parameters
domain
required
string

The organization domain

userId
required
string

The user id of the user

Responses

Tickets

The User Tickets API is used to manage API tickets for a user
Use the User Tickets API to:

  • Create a new API ticket
  • Get an API ticket (only for superusers)
  • List API tickets (only for superusers)
  • Delete an API ticket

Create ticket

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.

Authorizations:
AdminBearer
path Parameters
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

query Parameters
api
required
Array of strings

One or more valid external APIs (e.g. ?api=CALLS&api=USER).

The following APIs are available:
CALL_CONTROL - Call control
CALL_RECORDING - Call recording
CALLS - Call setup
CDR_READER - Reports
COMMUNICATION_LOG - Communication Log
CONTACT - Contact search
DISTRIBUTION_GROUP - ACD/attendant queues
EVENTCHANNEL - Event channel
LINE_STATE - Line state
PERSONAL_CONTACTS - Personal contacts
QUEUE_STATS - Queue statistics
SMS - SMS sending
USER - User info
VOICEMAIL_SETTINGS - Voicemail Settings

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

Responses

Response samples

Content type
Example

PASSWORD_BASED_TICKET

{
  • "expires": "2024-05-31T15:38:39.482+00:00",
  • "name": "ALL_CALLS",
  • "token": "2343.ZSDjndiJSDjksHj",
  • "allowedApis": [
    ]
}

Delete ticket

If the ticket is deleted or revoked, it returns API ticket deleted successfully. The method is accessible through Password based ticket and Superuser Ticket.

Authorizations:
AdminBearer
path Parameters
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

Responses

User SMS

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.

Send SMS

An end-user with authorized ticket could send SMS to recipient.

Authorizations:
Bearer
path Parameters
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.

Request Body schema:
smsText
required
any

The SMS text

Responses

Request samples

Content type
{
  "smsText": "Everything’s going to be amazing"
}

Response samples

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