Download OpenAPI specification:
API documentation and description
The ACD/Attendant Group API is used to manage agent login status as well as retrieving information about groups and agents.
Use the ACD/Attendant Group API to:
Retrieve information about a specific ACD/Attendant group for a user.
NOTE: This method is DEPRECATED since 4.3 and will be removed in future releases.
| domain required | string |
| user required | string |
| group required | integer <int64> |
{- "id": 35,
- "domain": "sampleorg.com",
- "name": "Customer services",
- "type": "ACD",
- "isLoggedIn": true,
- "isNightMode": true,
- "agents": [
- {
- "id": "jane@example.org",
- "firstName": "Jane",
- "activity": "string",
- "lastName": "Doe",
- "skillLevel": 3,
- "isLoggedIn": false,
- "isAvailable": true
}
], - "roles": [
- {
- "type": "AGENT"
}
], - "statistic": {
- "numberOfLoggedInAgents": 6,
- "numberOfFreeAgents": 5,
- "numberOfCallsInQueue": 3
}, - "isAllowUsingFunctionNumber": true,
- "distributionType": "string",
- "phoneNumber": "string"
}Retrieve information about a specific ACD/Attendant group for a user. It is possible to filter out the statistics.
NOTE: This method is DEPRECATED since 5.2 and will be removed in future releases.
| domain required | string The domain of the user's organization |
| user required | string The user id of the user |
| group required | integer <int64> The id of the ACD/Attendant group |
| group-domain required | string The domain of the organization the ACD/Attendant group belongs to |
| ignoreStatistics required | boolean Don't include statistics and immediately return an empty response |
{- "id": 5,
- "domain": "example.org",
- "name": "TestAttendantGroup",
- "type": "ATTENDANT",
- "loggedIn": true,
- "nightMode": false,
- "agents": [
- {
- "id": "jane@example.org",
- "firstName": "Jane",
- "activity": "Available",
- "lastName": "Doe",
- "skillLevel": 3,
- "isLoggedIn": true,
- "isAvailable": true
}, - {
- "id": "agent4@example.org",
- "firstName": "Agent",
- "activity": "Available",
- "lastName": "Four",
- "skillLevel": 3,
- "isLoggedIn": false,
- "isAvailable": true
}
], - "roles": [
- {
- "type": "AGENT"
}
], - "statistic": {
- "numberOfLoggedInAgents": 1,
- "numberOfFreeAgents": 1,
- "numberOfCallsInQueue": 0
}, - "allowUsingFunctionNumber": true
}Retrieve information about a specific ACD/ACD Light/Attendant group for a user. It is possible to filter out the statistics.
| domain required | string The domain of the user's organization |
| user required | string The user id of the user |
| group required | integer <int64> The id of the ACD/ACD Light/Attendant group |
| group-domain required | string The domain of the organization the ACD/Attendant group belongs to |
| ignoreStatistics | boolean Don't include statistics and immediately return an empty response |
{- "id": 5,
- "domain": "example.org",
- "name": "TestAttendantGroup",
- "type": "ATTENDANT",
- "loggedIn": true,
- "nightMode": false,
- "agents": [
- {
- "id": "jane@example.org",
- "firstName": "Jane",
- "activity": "Available",
- "lastName": "Doe",
- "skillLevel": 3,
- "isLoggedIn": true,
- "isAvailable": true
}, - {
- "id": "agent4@example.org",
- "firstName": "Agent",
- "activity": "Available",
- "lastName": "Four",
- "skillLevel": 3,
- "isLoggedIn": false,
- "isAvailable": true
}
], - "roles": [
- {
- "type": "AGENT"
}
], - "statistic": {
- "numberOfLoggedInAgents": 1,
- "numberOfFreeAgents": 1,
- "numberOfCallsInQueue": 0
}, - "allowUsingFunctionNumber": true,
- "distributionType": "PRIORITY"
}List all ACD/Attendant groups for a user.
Login state, availability and activity for all agents/attendants belonging to respective group are also included.
NOTE: This method is DEPRECATED since 5.2 and will be removed in future releases.
| domain required | string The domain of the user's organization |
| user required | string The user's id |
| ignoreStatistics | boolean Whether statistics shall be included, or not. If omitted, statistics will be included. |
| ignoreAgents | boolean Whether agents shall be included, or not. If omitted, agents will be included. |
{- "groups": [
- {
- "id": 21,
- "domain": "example.org",
- "name": "Acd group 1",
- "type": "ACD",
- "loggedIn": false,
- "nightMode": false,
- "agents": [
- {
- "id": "jane@example.org",
- "firstName": "Jane",
- "activity": "Available",
- "lastName": "Doe",
- "skillLevel": 3,
- "isLoggedIn": false,
- "isAvailable": true
}, - {
- "id": "john@example.org",
- "firstName": "John",
- "activity": "Available",
- "lastName": "Doe",
- "skillLevel": 3,
- "isLoggedIn": false,
- "isAvailable": true
}, - {
- "id": "agent3@example.org",
- "firstName": "Agent",
- "activity": "Available",
- "lastName": "Three",
- "skillLevel": 3,
- "isLoggedIn": false,
- "isAvailable": true
}
], - "roles": [
- {
- "type": "AGENT"
}
], - "statistic": {
- "numberOfLoggedInAgents": 0,
- "numberOfFreeAgents": 0,
- "numberOfCallsInQueue": 0
}, - "allowUsingFunctionNumber": false
}, - {
- "id": 5,
- "domain": "example.org",
- "name": "TestAttendantGroup",
- "type": "ATTENDANT",
- "loggedIn": true,
- "nightMode": false,
- "agents": [
- {
- "id": "jane@example.org",
- "firstName": "Jane",
- "activity": "Available",
- "lastName": "Doe",
- "skillLevel": 3,
- "isLoggedIn": true,
- "isAvailable": true
}, - {
- "id": "agent4@example.org",
- "firstName": "Agent",
- "activity": "Available",
- "lastName": "Four",
- "skillLevel": 3,
- "isLoggedIn": false,
- "isAvailable": true
}
], - "roles": [
- {
- "type": "AGENT"
}
], - "statistic": {
- "numberOfLoggedInAgents": 1,
- "numberOfFreeAgents": 1,
- "numberOfCallsInQueue": 0
}, - "allowUsingFunctionNumber": true
}, - {
- "id": 25,
- "domain": "example.org",
- "name": "Acd group 2",
- "type": "ACD_LIGHT",
- "loggedIn": false,
- "nightMode": false,
- "agents": [
- {
- "id": "jane@example.org",
- "firstName": "Jane",
- "activity": "Available",
- "lastName": "Doe",
- "skillLevel": 3,
- "isLoggedIn": false,
- "isAvailable": true
}, - {
- "id": "john@example.org",
- "firstName": "John",
- "activity": "Available",
- "lastName": "Doe",
- "skillLevel": 3,
- "isLoggedIn": false,
- "isAvailable": true
}, - {
- "id": "agent3@example.org",
- "firstName": "Agent",
- "activity": "Available",
- "lastName": "Three",
- "skillLevel": 3,
- "isLoggedIn": false,
- "isAvailable": true
}
], - "roles": [
- {
- "type": "AGENT"
}
], - "statistic": {
- "numberOfLoggedInAgents": 2,
- "numberOfFreeAgents": 1,
- "numberOfCallsInQueue": 0
}, - "allowUsingFunctionNumber": false
}
]
}List all ACD/ACD Light/Attendant groups for a user.
Login state, availability and activity for all agents/attendants belonging to respective group are also included.
| domain required | string The domain of the user's organization |
| user required | string The user's id |
| ignoreStatistics | boolean Whether statistics shall be included, or not. If omitted, statistics will be included. |
| ignoreAgents | boolean Whether agents shall be included, or not. If omitted, agents will be included. |
{- "groups": [
- {
- "id": 21,
- "domain": "example.org",
- "name": "Acd group 1",
- "type": "ACD",
- "loggedIn": false,
- "nightMode": false,
- "agents": [
- {
- "id": "jane@example.org",
- "firstName": "Jane",
- "activity": "Available",
- "lastName": "Doe",
- "skillLevel": 3,
- "isLoggedIn": false,
- "isAvailable": true
}, - {
- "id": "john@example.org",
- "firstName": "John",
- "activity": "Available",
- "lastName": "Doe",
- "skillLevel": 3,
- "isLoggedIn": false,
- "isAvailable": true
}, - {
- "id": "agent3@example.org",
- "firstName": "Agent",
- "activity": "Available",
- "lastName": "Three",
- "skillLevel": 3,
- "isLoggedIn": false,
- "isAvailable": true
}
], - "roles": [
- {
- "type": "AGENT"
}
], - "statistic": {
- "numberOfLoggedInAgents": 0,
- "numberOfFreeAgents": 0,
- "numberOfCallsInQueue": 0
}, - "allowUsingFunctionNumber": false,
- "distributionType": "SKILLS"
}, - {
- "id": 5,
- "domain": "example.org",
- "name": "TestAttendantGroup",
- "type": "ATTENDANT",
- "loggedIn": true,
- "nightMode": false,
- "agents": [
- {
- "id": "jane@example.org",
- "firstName": "Jane",
- "activity": "Available",
- "lastName": "Doe",
- "skillLevel": 3,
- "isLoggedIn": true,
- "isAvailable": true
}, - {
- "id": "agent4@example.org",
- "firstName": "Agent",
- "activity": "Available",
- "lastName": "Four",
- "skillLevel": 3,
- "isLoggedIn": false,
- "isAvailable": true
}
], - "roles": [
- {
- "type": "AGENT"
}
], - "statistic": {
- "numberOfLoggedInAgents": 1,
- "numberOfFreeAgents": 1,
- "numberOfCallsInQueue": 0
}, - "allowUsingFunctionNumber": true,
- "distributionType": "PRIORITY"
}, - {
- "id": 25,
- "domain": "example.org",
- "name": "Acd group 2",
- "type": "ACD_LIGHT",
- "loggedIn": false,
- "nightMode": false,
- "agents": [
- {
- "id": "jane@example.org",
- "firstName": "Jane",
- "activity": "Available",
- "lastName": "Doe",
- "skillLevel": 3,
- "isLoggedIn": false,
- "isAvailable": true
}, - {
- "id": "john@example.org",
- "firstName": "John",
- "activity": "Available",
- "lastName": "Doe",
- "skillLevel": 3,
- "isLoggedIn": false,
- "isAvailable": true
}, - {
- "id": "agent3@example.org",
- "firstName": "Agent",
- "activity": "Available",
- "lastName": "Three",
- "skillLevel": 3,
- "isLoggedIn": false,
- "isAvailable": true
}
], - "roles": [
- {
- "type": "AGENT"
}
], - "statistic": {
- "numberOfLoggedInAgents": 2,
- "numberOfFreeAgents": 1,
- "numberOfCallsInQueue": 0
}, - "allowUsingFunctionNumber": false,
- "distributionType": "PRIORITY"
}
]
}To log in/log out an agent or attendant of an ACD/Attendant group
NOTE: This method is DEPRECATED since 4.3 and will be removed in future releases.
| domain required | string |
| user required | string |
| group required | integer <int64> |
| agent required | string |
| action | string |
| logout | string |
{- "id": 35,
- "domain": "sampleorg.com",
- "name": "Customer services",
- "type": "ACD",
- "isLoggedIn": true,
- "isNightMode": true,
- "agents": [
- {
- "id": "jane@example.org",
- "firstName": "Jane",
- "activity": "string",
- "lastName": "Doe",
- "skillLevel": 3,
- "isLoggedIn": false,
- "isAvailable": true
}
], - "roles": [
- {
- "type": "AGENT"
}
], - "statistic": {
- "numberOfLoggedInAgents": 6,
- "numberOfFreeAgents": 5,
- "numberOfCallsInQueue": 3
}, - "isAllowUsingFunctionNumber": true,
- "distributionType": "string",
- "phoneNumber": "string"
}To log in/log out an agent or attendant of an ACD/Attendant group
| domain required | string The domain of the organization the ACD/Attendant group belongs to |
| group required | integer <int64> The ID of the ACD/Attendant group |
| agent required | string The username of the agent to log in or out, including domain part |
| action required | string Enum: "login" "logout" Example: action=login The action to perform |
"string"To log in/log out an agent or attendant of an ACD/Attendant group
NOTE: This method is DEPRECATED since 5.5.5 and will be removed in future releases.
| domain required | string The domain of the user's organization |
| user required | string The user id of the user |
| group required | integer <int64> The id of the ACD/Attendant group |
| group-domain required | string The domain of the organization the ACD/Attendant group belongs to |
| agent required | string The username of the agent to log in or out, including domain part |
| action required | string Enum: "login" "logout" Example: action=login The action to perform |
"string"The Distribution Group API allows the calling user to view and handle status for distribution groups (ACD, ACD Light and Attendant groups) that the user has access to, including handling call log items to these groups.
Use the Distribution Group API to:
Get call log items for a specific distribution group accessible to the user.
Calls are normally grouped in call log items by distribution group, caller and item type. For example, missed calls from +155568123456 to ACD 'Customer service' are gathered in one call log item. However, if both callerNumber and itemType are specified as parameters, each individual call is returned as a separate call log item.
| domain required | string The domain of the user |
| user required | string The ID of the user |
| grpid required | string(?!assigned$|.*/.*).* The ID of the distribution group |
| groupDomain | string If stated, the domain of the organization to which the distribution group belongs. If omitted, this is assumed to be the same as domain |
| callerNumber | string If provided, only return group call log items that originate from this number |
| itemType | Array of strings Items Enum: "ALL" "ANSWERED" "FORWARDED" "MISSED" If provided, only return these types of group call log items |
| since | string If provided, only return items with ID greater than this. |
| olderThan | string If provided, only return group call log items with ID smaller than this. |
| limit | string If stated, return no more than this amount of group call log items |
{- "generatedAt": "2018-05-26T13:00:30Z",
- "flushCache": true,
- "hintCount": 35,
- "callCountAnswered": 12,
- "callCountForwarded": 12,
- "callCountMissed": 12,
- "callLogItem": [
- {
- "itemId": 15,
- "groupId": 35,
- "groupOrgId": 0,
- "callCount": 35,
- "itemType": "ANSWERED",
- "forwardReason": "NO_AGENTS",
- "startTime": "2018-05-26T13:00:30Z",
- "callDuration": 20,
- "queueDuration": 6,
- "callMetaData": "string",
- "diversionNumber": "1555054123",
- "callerNumber": "+46887654321",
- "callbackToNumber": "+46887654123",
- "agent": {
- "name": "Jane Doe",
- "number": "+1555123445",
- "userId": "jdoe"
}, - "forwardedTo": {
- "name": "Joe Smith",
- "number": "1555054222"
}, - "handledStatus": {
- "state": "INPROGRESS",
- "agent": {
- "name": "Jane Doe",
- "number": "+1555123445",
- "userId": "jdoe"
}, - "timeStamp": "2018-05-26T15:30:30Z",
- "note": "Wants to be called back on friday"
}, - "noteIncluded": true
}
]
}Get call log items for all ACD/Attendant groups available for the user.
| domain required | string The domain of the user |
| user required | string The ID of the user |
| callerNumber | string If provided, only return group call log items that originate from this number |
| itemType | Array of strings Items Enum: "ALL" "ANSWERED" "FORWARDED" "MISSED" If provided, only return these types of group call log items |
| since | string If provided, only return items with ID greater than this. |
| olderThan | string If provided, only return group call log items with ID smaller than this. |
| limit | string If stated, return no more than this amount of group call log items |
{- "generatedAt": "2018-05-26T13:00:30Z",
- "flushCache": true,
- "hintCount": 35,
- "callCountAnswered": 12,
- "callCountForwarded": 12,
- "callCountMissed": 12,
- "callLogItem": [
- {
- "itemId": 15,
- "groupId": 35,
- "groupOrgId": 0,
- "callCount": 35,
- "itemType": "ANSWERED",
- "forwardReason": "NO_AGENTS",
- "startTime": "2018-05-26T13:00:30Z",
- "callDuration": 20,
- "queueDuration": 6,
- "callMetaData": "string",
- "diversionNumber": "1555054123",
- "callerNumber": "+46887654321",
- "callbackToNumber": "+46887654123",
- "agent": {
- "name": "Jane Doe",
- "number": "+1555123445",
- "userId": "jdoe"
}, - "forwardedTo": {
- "name": "Joe Smith",
- "number": "1555054222"
}, - "handledStatus": {
- "state": "INPROGRESS",
- "agent": {
- "name": "Jane Doe",
- "number": "+1555123445",
- "userId": "jdoe"
}, - "timeStamp": "2018-05-26T15:30:30Z",
- "note": "Wants to be called back on friday"
}, - "noteIncluded": true
}
]
}List ACD/Attendant groups available to the user, and the user's current login state.
| domain required | string The domain of the user |
| user required | string The ID of the user |
{- "group": [
- {
- "id": 35,
- "domain": "sampleorg.com",
- "name": "customer_acd",
- "type": "ACD",
- "loggedIn": true,
- "nightMode": false,
- "loggedInAgents": 4,
- "freeAgents": 3,
- "callsWaiting": 1
}
]
}List group call log items assigned to a user.
| domain required | string The domain of the user |
| user required | string The ID of the user |
{- "generatedAt": "2018-05-26T13:00:30Z",
- "flushCache": true,
- "hintCount": 35,
- "callCountAnswered": 12,
- "callCountForwarded": 12,
- "callCountMissed": 12,
- "callLogItem": [
- {
- "itemId": 15,
- "groupId": 35,
- "groupOrgId": 0,
- "callCount": 35,
- "itemType": "ANSWERED",
- "forwardReason": "NO_AGENTS",
- "startTime": "2018-05-26T13:00:30Z",
- "callDuration": 20,
- "queueDuration": 6,
- "callMetaData": "string",
- "diversionNumber": "1555054123",
- "callerNumber": "+46887654321",
- "callbackToNumber": "+46887654123",
- "agent": {
- "name": "Jane Doe",
- "number": "+1555123445",
- "userId": "jdoe"
}, - "forwardedTo": {
- "name": "Joe Smith",
- "number": "1555054222"
}, - "handledStatus": {
- "state": "INPROGRESS",
- "agent": {
- "name": "Jane Doe",
- "number": "+1555123445",
- "userId": "jdoe"
}, - "timeStamp": "2018-05-26T15:30:30Z",
- "note": "Wants to be called back on friday"
}, - "noteIncluded": true
}
]
}List call log items assigned to a user from a certain distribution group.
| domain required | string The domain of the user |
| user required | string The ID of the user |
| grpid required | string The ID of the distribution group |
| groupDomain | string If stated, the domain of the organization to which the distribution group belongs. If omitted, this is assumed to be the same as domain |
{- "generatedAt": "2018-05-26T13:00:30Z",
- "flushCache": true,
- "hintCount": 35,
- "callCountAnswered": 12,
- "callCountForwarded": 12,
- "callCountMissed": 12,
- "callLogItem": [
- {
- "itemId": 15,
- "groupId": 35,
- "groupOrgId": 0,
- "callCount": 35,
- "itemType": "ANSWERED",
- "forwardReason": "NO_AGENTS",
- "startTime": "2018-05-26T13:00:30Z",
- "callDuration": 20,
- "queueDuration": 6,
- "callMetaData": "string",
- "diversionNumber": "1555054123",
- "callerNumber": "+46887654321",
- "callbackToNumber": "+46887654123",
- "agent": {
- "name": "Jane Doe",
- "number": "+1555123445",
- "userId": "jdoe"
}, - "forwardedTo": {
- "name": "Joe Smith",
- "number": "1555054222"
}, - "handledStatus": {
- "state": "INPROGRESS",
- "agent": {
- "name": "Jane Doe",
- "number": "+1555123445",
- "userId": "jdoe"
}, - "timeStamp": "2018-05-26T15:30:30Z",
- "note": "Wants to be called back on friday"
}, - "noteIncluded": true
}
]
}Log in a user to a distribution group.
| domain required | string The domain of the user |
| user required | string The ID of the user |
| grpid required | integer <int64> The ID of the distribution group |
| grpid-domain required | string If stated, the domain of the organization to which the distribution group belongs. If omitted, this is assumed to be the same as domain |
| ignoreStatistics | boolean Don't include statistics and immediately return an empty response. |
{- "group": [
- {
- "id": 35,
- "domain": "sampleorg.com",
- "name": "customer_acd",
- "type": "ACD",
- "loggedIn": true,
- "nightMode": false,
- "loggedInAgents": 4,
- "freeAgents": 3,
- "callsWaiting": 1
}
]
}Log out a user from a distribution group.
| domain required | string The domain of the user |
| user required | string The ID of the user |
| grpid required | integer <int64> The ID of the distribution group |
| grpid-domain required | string If stated, the domain of the organization to which the distribution group belongs. If omitted, this is assumed to be the same as domain |
| ignoreStatistics | boolean Don't include statistics and immediately return an empty response. |
{- "group": [
- {
- "id": 35,
- "domain": "sampleorg.com",
- "name": "customer_acd",
- "type": "ACD",
- "loggedIn": true,
- "nightMode": false,
- "loggedInAgents": 4,
- "freeAgents": 3,
- "callsWaiting": 1
}
]
}Produces a SSE stream of queue statistic updates in application/telepo-queue-statistics+xml format. The stream will only contain updates to the queues that the user is a member of.
| domain required | string The domain of the user |
| user required | string The ID of the user |
Assign a call in a group call log to a user.
| domain required | string The domain of the user |
| user required | string The ID of the user |
| itemid required | integer <int64> The ID of the group call log item to assign to the user |
| state | string Enum: "UNHANDLED" "INPROGRESS" "HANDLED" The handled-state of this call. |
| note | string If applicable, a note that is attached to the call |
{- "state": "INPROGRESS",
- "note": "Wants to be called back on friday"
}{- "itemId": 15,
- "groupId": 35,
- "groupOrgId": 0,
- "callCount": 35,
- "itemType": "ANSWERED",
- "forwardReason": "NO_AGENTS",
- "startTime": "2018-05-26T13:00:30Z",
- "callDuration": 20,
- "queueDuration": 6,
- "callMetaData": "string",
- "diversionNumber": "1555054123",
- "callerNumber": "+46887654321",
- "callbackToNumber": "+46887654123",
- "agent": {
- "name": "Jane Doe",
- "number": "+1555123445",
- "userId": "jdoe"
}, - "forwardedTo": {
- "name": "Joe Smith",
- "number": "1555054222"
}, - "handledStatus": {
- "state": "INPROGRESS",
- "agent": {
- "name": "Jane Doe",
- "number": "+1555123445",
- "userId": "jdoe"
}, - "timeStamp": "2018-05-26T15:30:30Z",
- "note": "Wants to be called back on friday"
}, - "noteIncluded": true
}The Queue Statistics API gives access to statistics on ACD and attendant groups. Queue statistics is authenticated using api tickets for Queue statistics.
To be able to fetch the queue statistics, the Supervisor license must be assigned to the organization.
Use the Queue Statistics API to:
Retrieve the queue statistics for an organization.
| domain required | string The domain queue statistics shall be fetched for |
{- "queue": [
- {
- "name": "ACD_Taxi",
- "domain": "test.com",
- "number": "+123415",
- "id": 67899,
- "queueLength": 3,
- "availableAgents": 2,
- "loggedInAgents": 5,
- "longestWaiting": 20,
- "lastWait": 15,
- "averageWait": 14,
- "droppedCallsForPeriod": 6,
- "totalCallsForPeriod": 60,
- "answeredCallsForPeriod": 41,
- "totalCallsLast24h": 50,
- "droppedCallsLast24h": 4,
- "answeredCallsLast24h": 38,
- "current-agent-presence": [
- {
- "name": "Available",
- "count": 1
}
]
}
]
}Retrieve the queue statistics for an organization.
NOTE: This method is DEPRECATED since 5.1 and will be removed in future releases.
| domain required | string The domain queue statistics shall be fetched for |
{- "queue": [
- {
- "name": "ACD_Taxi",
- "domain": "test.com",
- "number": "+123415",
- "id": 67899,
- "queueLength": 3,
- "availableAgents": 2,
- "loggedInAgents": 5,
- "longestWaiting": 20,
- "lastWait": 15,
- "averageWait": 14,
- "droppedCallsForPeriod": 6,
- "totalCallsForPeriod": 60,
- "answeredCallsForPeriod": 41,
- "totalCallsLast24h": 50,
- "droppedCallsLast24h": 4,
- "answeredCallsLast24h": 38,
- "current-agent-presence": [
- {
- "name": "Available",
- "count": 1
}
]
}
]
}Retrieve queue statistics for a distribution group.
| domain required | string The domain of the group queue statistics shall be fetched for |
| queueId required | string The id of the group queue statistics shall be fetched for |
{- "name": "ACD_Taxi",
- "domain": "test.com",
- "number": "+123415",
- "id": 67899,
- "queueLength": 3,
- "availableAgents": 2,
- "loggedInAgents": 5,
- "longestWaiting": 20,
- "lastWait": 15,
- "averageWait": 14,
- "droppedCallsForPeriod": 6,
- "totalCallsForPeriod": 60,
- "answeredCallsForPeriod": 41,
- "totalCallsLast24h": 50,
- "droppedCallsLast24h": 4,
- "answeredCallsLast24h": 38,
- "current-agent-presence": [
- {
- "name": "Available",
- "count": 1
}
]
}Retrieve queue statistics for a user who is authorized to supervise specific groups.
| domain required | string The domain of the user queue statistics shall be fetched for |
| user required | string The username of the user queue statistics shall be fetched for |
| includeFederation | boolean If queue statistics from federated organizations shall be included (default false) |
{- "queue": [
- {
- "name": "ACD_Taxi",
- "domain": "test.com",
- "number": "+123415",
- "id": 67899,
- "queueLength": 3,
- "availableAgents": 2,
- "loggedInAgents": 5,
- "longestWaiting": 20,
- "lastWait": 15,
- "averageWait": 14,
- "droppedCallsForPeriod": 6,
- "totalCallsForPeriod": 60,
- "answeredCallsForPeriod": 41,
- "totalCallsLast24h": 50,
- "droppedCallsLast24h": 4,
- "answeredCallsLast24h": 38,
- "current-agent-presence": [
- {
- "name": "Available",
- "count": 1
}
]
}
]
}Retrieve queue statistics based on a specific supervisor who is authorized to supervise specific groups.
NOTE: This method is DEPRECATED since 5.1 and will be removed in future releases.
| domain required | string The domain queue statistics shall be fetched for |
| user required | string The username of the user accessing the API |
{- "queue": [
- {
- "name": "ACD_Taxi",
- "domain": "test.com",
- "number": "+123415",
- "id": 67899,
- "queueLength": 3,
- "availableAgents": 2,
- "loggedInAgents": 5,
- "longestWaiting": 20,
- "lastWait": 15,
- "averageWait": 14,
- "droppedCallsForPeriod": 6,
- "totalCallsForPeriod": 60,
- "answeredCallsForPeriod": 41,
- "totalCallsLast24h": 50,
- "droppedCallsLast24h": 4,
- "answeredCallsLast24h": 38,
- "current-agent-presence": [
- {
- "name": "Available",
- "count": 1
}
]
}
]
}The Call Recording Control API is used to manage UC analytics/Generic call recording.
Use the Call Recording API to:
Returns a list of calls for the user which are being recorded.
NOTE: This method is DEPRECATED since 5.1 and will be removed in future releases.
| domain required | string The organization domain. |
| user required | string The user ID without domain suffix. |
[- {
- "id": "173:8635322",
- "deviceType": "MOBILE_VOIP",
- "mobileNumber": "+4676123123",
- "isLocalDevice": true,
- "displayName": "bob",
- "number": "+466456456",
- "calledNumber": "456456",
- "contactId": "bob@bob.com",
- "isSaved": true,
- "isPaused": true,
- "allowedActions": [
- "PAUSE",
- "SAVE"
], - "duration": 15,
- "recordDuration": 15,
- "callId": "Sei8BS7D02h0Sik3q1RoGw"
}, - {
- "id": "177:8635322",
- "deviceType": "EXTERNAL_PBX",
- "mobileNumber": "+4676321321",
- "isLocalDevice": true,
- "displayName": "john",
- "number": "+468345345",
- "calledNumber": "345345",
- "contactId": "john@john.com",
- "isSaved": true,
- "isPaused": true,
- "allowedActions": [
- "PAUSE",
- "SAVE"
], - "duration": 15,
- "recordDuration": 15,
- "callId": "Sei0BS8D02h0Sik3q1RoGw"
}
]The user is allowed to perform the action for the recording in its current state if the action, i.e. save/discard/pause/resume, is listed in the allowed actions of the recording state. A pause/resume action may conflict with an ongoing media session re-negotiation, in which case the action is rejected.
NOTE: This method is DEPRECATED since 5.1 and will be removed in future releases.
| domain required | string The organization domain. |
| user required | string The user ID without domain suffix. |
| id required | string The ID of the call recording to update. |
| action required | string Enum: "SAVE" "DISCARD" "PAUSE" "RESUME" The action to perform. |
{- "field": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": "string",
- "name": "baduser@baddomain.com"
}
], - "warning": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": "string",
- "name": "baduser@baddomain.com"
}
], - "generated-id": "string"
}The Calls API enables you to make calls to other users or external numbers. In contrast to other End User API's it is possible for an org-admin to use the Call Setup API in place of another user. Hence it is possible for an org-admin to, via the API, setup calls for other users within the organization. The Call Control ticket API parameter enables you to transfer calls.
Use Calls API to:
Cancel an ongoing attended call transfer.
| domain required | string The domain of the organization the user belongs to. |
| user required | string The user performing the transfer. |
| transferId required | string The call transfer ID of the transfer that will be cancelled. |
Get the status of an ongoing call transfer.
| domain required | string The domain of the organization the user belongs to. |
| user required | string The user performing the transfer. |
Blind transfer, the transferred call is by default released from the transferring agent as soon as the transfer is initiated and the agent can start attending other calls.
{- "transferId": {
- "transferStartTime": 1772996327187,
- "type": "BLIND_TRANSFER",
- "id": "5",
- "destination": "+9633996603"
}
}Transfer a mobile call to the specified number.
| domain required | string The domain of the organization the user belongs to. |
| user required | string The user performing the transfer. |
| transferType required | string Enum: "BLIND_TRANSFER" "ATTENDED_TRANSFER" The type of transfer to be performed: BLIND_TRANSFER - transfer the call directly to the specified number, |
| destination required | string The destination number for the transfer. |
{- "transferId": {
- "transferStartTime": 0,
- "id": "5"
}
}Set up a call-back call to the contact with the specified ID. Examples: If user Alice want to make a call to Bob, and use her mobile as the call device and call with the role Private the following syntax could be used.
POST http://bcs.mydomain.com/api/calls/current/foo.com/alice/mobile/bob@foo.com?role=PRIVATE
POST http://bcs.mydomain.com/api/calls/current/foo.com/alice/mobile/bob@foo.com?role=PRIVATE
POST http://bcs.mydomain.com/api/calls/current/foo.com/alice/mobile/%2B468123456789?role=PRIVATE
| domain required | string The domain of the organization the user belongs to. |
| user required | string The user performing the call setup. |
| aptype required | string The 'aptype' defines where the callback will be connected. It should be a valid answerplace for the specified user. Valid values are: mobile - to set up the call to the mobile |
| cid required | string can be one of the following: receiving_user - the receiving users URL encoded answerplace. For instance: targetname@yourdomain.com. |
| role | string what role to call with. The roles PRIVATE and BUSINESS are always possible to set, but additional roles may be specified. If no role is specified as a parameter, then it will be set to a default according to the call rules. |
| bypass | string Bypass call routing ('true' or 'false') |
| intrude | string Intrude the current call ('true' or 'false') |
| callback-via-gsm | boolean True if the callback should prefer GSM call. |
{- "field": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": "string",
- "name": "baduser@baddomain.com"
}
], - "warning": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": "string",
- "name": "baduser@baddomain.com"
}
], - "generated-id": "string"
}The Line State API is used to manage a user's line state.
Use the Line State API to:
Fetches a specific line state for a user.
| domain required | string The domain of the organization the user belongs to |
| userId required | string The user ID |
| externalId required | string The external ID |
{- "expiresOn": "2020-03-10T11:05:00+01"
}Updates a line state for a user and external ID. If there is no current line state, it will be created.
| domain required | string The domain of the organization the user belongs to |
| userId required | string The user ID |
| externalId required | string The external ID |
{- "expiresOn": "2020-03-10T11:05:00+01"
}Creates a line state for a user and external id. If the line state already exists, it will be updated.
| domain required | string The domain of the organization the user belongs to |
| userId required | string The user ID |
| externalId required | string The external ID |
{- "expiresOn": "2020-03-10T11:05:00+01"
}Removes a specific line state for a user.
Type of call is not considered, i.e. eventual resting time for an agent will not be taken into account when removing the line state.
| domain required | string The domain of the organization the user belongs to |
| userId required | string The user ID |
| externalId required | string The external ID |
The Communication Log API is used to manage the communication log for users. The communication log items can of different types including incoming calls, outgoing calls, missed calls, voicemails, recorded calls and faxes.
Use Communication Log API to:
Set or unset the deletion time for a communication log item. Setting deletion time moves an item to the trash, and clearing it moves it back to the inbox.
| itemId required | string The id of the item |
| userId required | string The username of the user accessing the API |
| domain required | string The domain of the user accessing the API |
| delete | boolean Indicates if an item should be marked or unmarked for deletion |
Read a specific communication log item.
| domain required | string([a-z0-9_\-\.]+\.[a-z0-9]+) The domain of the user accessing the API |
| userId required | string The username of the user accessing the API |
| itemId required | string The id of the item |
| deleted | boolean If true, fetch deleted items only |
| markAsDelete | boolean If true, fetch items that are marked as deleted only |
This example shows an incoming call.
{- "historyItems": [
- {
- ".CallDTO": {
- "itemId": 1245,
- "startTime": "2020-10-05T11:09:29Z",
- "remoteParty": {
- "contactId": "jane.doe@example.com",
- "number": "+1555123001",
- "displayName": "Jane Doe"
}, - "itemType": "INCOMING_CALL",
- "isSeen": true,
- "duration": 145
}
}
], - "flushCache": true,
- "generatedAt": "2020-10-05T19:59:21Z",
- "hintCount": 1
}Mark a specific communication log item as seen and/or played.
| itemId required | string The id of the item |
| userId required | string The username of the user accessing the API |
| domain required | string The domain of the user accessing the API |
| isSeen required | boolean Indicates if the seen state should be set |
| isPlayed required | boolean Indicates if the played state should be set |
| updateCallItem required | boolean Indicates if the call item should be updated too |
Delete a specific communication log item.
| itemId required | string The id of the item |
| userId required | string The username of the user accessing the API |
| domain required | string The domain of the user accessing the API |
| updateCallItem required | boolean Indicates if the related call item should be deleted too |
List communication log items for a user. Use either since/olderThan or sinceTime/untilTime parameters to specify an interval of items.
| domain required | string The domain of the user accessing the API |
| userId required | string The username of the user accessing the API |
| since | string Fetch items whose ID is larger than this value. For example, if since=10 is provided in the query string, items with ID 11 and upwards are returned. |
| olderThan | string Fetch items whose ID is less than this value. For example, if olderThan=20 is provided, call log items with IDs from 19 and downwards are returned. |
| sinceTime | string Fetch items whose startTime occurred after this value. |
| untilTime | string Fetch items whose startTime occurred before this value. |
| limit | string The maximum number of items that should be fetched |
| itemType | string Enum: "OUTGOING_CALL" "MISSED_CALL" "INCOMING_CALL" "VOICEMAIL" "RECORDING" "FAX" The type of items that should be fetched. This parameter can be repeated for each type to be fetched. |
| contactId | string If specified, fetch items for this specific contact only |
| number | string If specified, fetch items for the specified phone number only |
| deleted | boolean If true, fetch deleted items only |
| markAsDelete | boolean If true, fetch items that are marked as deleted only |
| count | boolean If true, return the number of items instead of the items in the response body |
This example shows calls that are Incoming, Outgoing or Missed ones.
{- "historyItems": [
- {
- ".CallDTO": {
- "itemId": 1245,
- "startTime": "2020-10-05T11:09:29Z",
- "remoteParty": {
- "contactId": "jane.doe@example.com",
- "number": "+1555123001",
- "displayName": "Jane Doe"
}, - "itemType": "INCOMING_CALL",
- "isSeen": true,
- "duration": 145
}
}, - {
- ".CallDTO": {
- "itemId": 1246,
- "startTime": "2020-10-05T14:06:20Z",
- "remoteParty": {
- "contactId": "jane.doe@example.com",
- "number": "+1555123001",
- "displayName": "Jane Doe"
}, - "itemType": "OUTGOING_CALL",
- "isSeen": true,
- "duration": 25
}
}, - {
- ".CallDTO": {
- "itemId": 1247,
- "startTime": "2020-10-05T15:16:54Z",
- "remoteParty": {
- "contactId": "jane.doe@example.com",
- "number": "+1555123001",
- "displayName": "Jane Doe"
}, - "itemType": "MISSED_CALL",
- "isSeen": false,
- "duration": 0
}
}
], - "flushCache": true,
- "generatedAt": "2020-10-05T19:58:21Z",
- "hintCount": 3
}Mark specific communication log items as seen and/or played. In case if some of the items are existing, they are deleted and the items that are not found are added in the response body as a string. If all items are found, nothing is returned.
| userId required | string The username of the user accessing the API |
| domain required | string The domain of the user accessing the API |
| itemId required | Array of strings The ids of the items formatted like itemId=1&itemId=2&itemId=3 etc |
| untilItemId required | string Indicates if all items until this id should be updated |
| itemType required | string Enum: "OUTGOING_CALL" "MISSED_CALL" "INCOMING_CALL" "VOICEMAIL" "RECORDING" "FAX" Indicates that only item types of these types should be updated. The parameter can be repeated. |
| isSeen required | boolean Indicates if the seen state should be set |
| isPlayed required | boolean Indicates if the played state should be set |
| updateCallItem required | boolean Indicates if the call items should be updated too |
All requested items are existing in the system. So response body carries nothing.
Delete a number of specific communication log items.
| userId required | string The username of the user accessing the API |
| domain required | string The domain of the user accessing the API |
| itemId | Array of strings The ids of the items formatted like itemId=1&itemId=2&itemId=3 etc |
| untilItemId | string Delete all items until this id |
| itemType | string Enum: "OUTGOING_CALL" "MISSED_CALL" "INCOMING_CALL" "VOICEMAIL" "RECORDING" "FAX" Delete items of these types. The parameter can be repeated. |
| updateCallItem | boolean Indicates if the related call item should be deleted too |
Read group inbox messages.
| domain required | string The domain of the user accessing the API |
| userId required | string The username of the user accessing the API |
This example details the response with one Group Inbox Item in the Communication Log API response.
{- "historyItems": [
- {
- ".GroupInboxVoiceMailDTO": {
- "itemId": 370,
- "startTime": "2020-01-30T17:11:13Z",
- "remoteParty": {
- "contactId": "jane.doe@example.com",
- "number": "+1555123001",
- "displayName": "Jane Doe"
}, - "itemType": "VOICEMAIL",
- "isSeen": true,
- "callItemId": 0,
- "isPlayed": false,
- "inboxName": "Group Inbox 1"
}
}
], - "flushCache": true,
- "generatedAt": "2020-01-31T09:28:21Z",
- "hintCount": 1
}Set the deleted flag on a specific communication log item. The delete flag is used for further expunging of voicemail items.
| itemId required | string The id of the item |
| userId required | string The username of the user accessing the API |
| domain required | string The domain of the user accessing the API |
This group of APIs enable CTI (Computer Telephony Integration) functionality to be able to control end-user calls. The APIs are authenticated using API tickets for Call Control (CALL_CONTROL) and also requires either a Cloud CTI API license or a Call Control API license.
The Call Control API enables controlling of calls for a user.
To use the API, the end-user must either have a Cloud CTI API license or a Call Control API license.
Call Control API with Cloud CTI API license allows you to:
The call specified by {callId} will be transformed into an ad-hoc conference call, if it is not already, and the call specified in the request body will be added to the conference.
| domain required | string The domain of the organization |
| userId required | string The user performing the call |
| callId required | string The ID of the call that should be the ad-hoc conference call |
| stateToken | integer <int64> The expected stateToken of the state at the server. If not matching, the request will fail. |
| targetCallId | string The callId of the target call that should be retrieved/answered/added |
| targetStateToken | integer <int64> The expected token of the state of target call at the server. If not matching, the request will fail. |
{- "stateToken": 487345453,
- "targetCallId": "dd33dxw9",
- "targetStateToken": 63772
}{- "stateToken": 48738853,
- "callId": "xxx111yyy",
- "userId": "alice@organization.org",
- "remoteParty": {
- "partyId": "conference@organization.org",
- "type": "SERVICE_ID",
- "telUri": "tel:+46277100",
- "displayName": "Conference",
- "displayNumber": "7100"
}, - "participants": [
- {
- "id": "xxx22yyy",
- "remoteParty": {
- "partyId": "adhoc@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+46277565",
- "displayName": "Adrian Hocksley",
- "displayNumber": "7565"
}, - "historyInfo": {
- "subject": "Main Switchboad number",
- "campOn": true,
- "initialParty": {
- "partyId": "daisy@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+46277469",
- "displayName": "Daisy Smith",
- "displayNumber": "7469"
}, - "previousParty": {
- "partyId": "1234@organization.org",
- "type": "FUNCTION_NUMBER_ID",
- "telUri": "tel:+46277400",
- "displayName": "Switchboard",
- "displayNumber": "7400"
}, - "previousRetargetReason": "DISTRIBUTED"
}
}, - {
- "id": "xxx222yyy",
- "remoteParty": {
- "partyId": "adhoc@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+46277566",
- "displayName": "Ada Hocklington",
- "displayNumber": "7566"
}
}
], - "conference": true,
- "inbound": true,
- "intruded": false,
- "status": "ACTIVE",
- "event": "PARTICIPANT_ADDED",
- "muted": false,
- "duration": 5,
- "externalRecording": true,
- "externalRecordingDuration": 5,
- "externalRecordingPaused": false,
- "deviceIds": [
- "+1555555"
], - "actions": [
- {
- "action": "MOVE"
}, - {
- "action": "HOLD"
}, - {
- "action": "SAVE_REC"
}, - {
- "action": "PAUSE_REC"
}
]
}Place an existing call on hold and then retrieves a previously held call. This can also be used to place an existing call on hold and then answer to an alerting call at the same device.
| domain required | string The domain of the organization |
| userId required | string The user having the two calls |
| callId required | string The ID of the call that should be put on hold |
| stateToken | integer <int64> The expected stateToken of the state at the server. If not matching, the request will fail. |
| targetCallId | string The callId of the target call that should be retrieved/answered/added |
| targetStateToken | integer <int64> The expected token of the state of target call at the server. If not matching, the request will fail. |
{- "stateToken": 487345453,
- "targetCallId": "dd33dxw9",
- "targetStateToken": 63772
}{- "stateToken": 487345453,
- "callId": "aaa111bbb",
- "userId": "bob@organization.org",
- "remoteParty": {
- "partyId": "alice@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+46277463",
- "displayName": "Alice Alison",
- "displayNumber": "7463"
}, - "conference": false,
- "inbound": true,
- "intruded": false,
- "status": "HELD",
- "muted": false,
- "duration": 25,
- "deviceIds": [
- "+1555555"
], - "actions": [
- {
- "action": "MOVE"
}, - {
- "action": "TRANSFER"
}, - {
- "action": "RESUME"
}, - {
- "action": "PARK"
}
]
}Answer a call that is in the ringing state using a specific device. Note that it's not possible to perform this action for all devices. The call state will show which devices that can be used.
| domain required | string The domain of the organization |
| userId required | string The user answering the call |
| callId required | string The ID of the call to answer |
| deviceId required | string The device used to answer the call |
| targetUrl | string The webhook url to monitor the call state for this call. |
| targetId | string A unique id of the webhook. Required if the targetUrl is set. |
| publicTarget | boolean Default: true Indicates if the target node hosting the webhook is deployed on the same network segment as the service nodes or if callbacks needs to go through the edge http proxy |
Answer a call and request updates using a public webhook url.
{- "targetId": "my_callback_id"
}Bob answers an incoming call from Alice in device with id +1555555. Call is not recorded.
{- "stateToken": 487345453,
- "callId": "aaa111bbb",
- "userId": "bob@organization.org",
- "remoteParty": {
- "partyId": "alice@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+46277463",
- "displayName": "Alice Alison",
- "displayNumber": "7463"
}, - "conference": false,
- "inbound": true,
- "intruded": false,
- "status": "ACTIVE",
- "muted": false,
- "duration": 5,
- "recording": true,
- "recordingDuration": 5,
- "deviceIds": [
- "+1555555"
], - "actions": [
- {
- "action": "MOVE"
}, - {
- "action": "TRANSFER"
}, - {
- "action": "HOLD"
}, - {
- "action": "PARK"
}, - {
- "action": "STOP_REC"
}
]
}{- "stateToken": 487345453,
- "callId": "aaa111bbb",
- "userId": "alice@organization.org",
- "remoteParty": {
- "partyId": "bob@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+46277464",
- "displayName": "Bob Bobson",
- "displayNumber": "7464"
}, - "conference": false,
- "inbound": false,
- "intruded": false,
- "status": "INITIATED",
- "muted": false,
- "duration": 0,
- "deviceIds": [
- "+1555555"
]
}Hanging up (clear) an established call, reject (decline) a call that is in the ringing state or cancel an outbound ringing call.
| domain required | string The domain of the organization |
| userId required | string The user deleting the call |
| callId required | string The ID of the call to delete |
Put the call on hold. Depending on the configuration of the server, music on hold may be played to the other party.
| domain required | string The domain of the organization |
| userId required | string The user having the call to hold |
| callId required | string The ID of the call to hold |
| stateToken | integer <int64> The expected stateToken of the state at the server. If not matching, the request will fail. |
{- "stateToken": 487345453
}{- "stateToken": 487345453,
- "callId": "aaa111bbb",
- "userId": "alice@organization.org",
- "remoteParty": {
- "partyId": "bob@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+46277464",
- "displayName": "Bob Bobson",
- "displayNumber": "7464"
}, - "conference": false,
- "inbound": false,
- "intruded": false,
- "status": "HELD",
- "muted": false,
- "duration": 50,
- "deviceIds": [
- "+1555555"
], - "actions": [
- {
- "action": "MOVE"
}, - {
- "action": "TRANSFER"
}, - {
- "action": "RESUME"
}, - {
- "action": "PARK"
}
]
}Leaving an ad-hoc conference allowing any remaining participants to continue the call. To terminate the conference, use the method to terminate a call.
| domain required | string The domain of the organization |
| userId required | string The user having the ad-hoc conference call |
| callId required | string The ID of the ad-hoc conference call |
{- "stateToken": 48738853,
- "callId": "xxx222yyy",
- "userId": "alice@organization.org",
- "conference": true,
- "inbound": true,
- "intruded": false,
- "status": "TERMINATED",
- "event": "LEFT_CONFERENCE",
- "muted": false,
- "duration": 0
}Setup up call from a particular device. The device ID can be fetched from the UserDeviceInfo API. Successful completion of this request does not mean that the call is established, just that the device has successfully initiated the call.
| domain required | string The domain of the organization |
| userId required | string The user performing the call |
| deviceId required | string The device used to perform the call |
| targetUrl | string The webhook url to monitor the call state for this call. |
| targetId | string A unique id of the webhook. Required if the targetUrl is set. |
| publicTarget | boolean Default: true Indicates if the target node hosting the webhook is deployed on the same network segment as the service nodes or if callbacks needs to go through the edge http proxy |
| destination required | string The target of the call. A SIP or tel URI. |
| role | string The user role that should be used when performing the call. |
object (com.telepo.core.call.model.UserLineDTO) The caller ID that should be used for the call. | |
| type | string Default: "BASIC" Enum: "BASIC" "DIVERSION_BYPASS" "INTRUSION" "INTERCOM" "VOICEMAIL" "BARGE" "WHISPER" "MONITOR" The extended type of the call. |
Alice makes a call from her primary line to the external number +1444344.
{- "destination": "tel:+1444344",
- "userLine": {
- "type": "OFFICE_FIXED",
- "groupId": 0
}
}{- "stateToken": 487345453,
- "callId": "aaa111bbb",
- "userId": "alice@organization.org",
- "remoteParty": {
- "partyId": "bob@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+46277464",
- "displayName": "Bob Bobson",
- "displayNumber": "7464"
}, - "conference": false,
- "inbound": false,
- "intruded": false,
- "status": "INITIATED",
- "muted": false,
- "duration": 0,
- "deviceIds": [
- "+1555555"
]
}{- "stateToken": 487345453,
- "callId": "aaa111bbb",
- "userId": "alice@organization.org",
- "remoteParty": {
- "partyId": "bob@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+46277464",
- "displayName": "Bob Bobson",
- "displayNumber": "7464"
}, - "conference": false,
- "inbound": false,
- "intruded": false,
- "status": "INITIATED",
- "muted": false,
- "duration": 0,
- "deviceIds": [
- "+1555555"
]
}Setup up call re-using an existing call leg putting that call on-hold/in the background. This variant of the make call is useful for devices that do not support parallel calls. It's only possible to have one background call per device. If the device supports parallel calls, this API behaves the same way as makeCall. Successful completion of this request does not mean that the call is established, just that the device has successfully initiated the call. The make consultation call API is not supported if the existing call is transcoded.
| domain required | string The domain of the organization |
| userId required | string The user performing the call |
| callId required | string The Id of the call that should be re-used |
| targetUrl | string The webhook url to monitor the call state for this call. |
| targetId | string A unique id of the webhook. Required if the targetUrl is set. |
| publicTarget | boolean Default: true Indicates if the target node hosting the webhook is deployed on the same network segment as the service nodes or if callbacks needs to go through the edge http proxy |
| destination required | string The target of the call. A SIP or tel URI. |
| role | string The user role that should be used when performing the call. |
object (com.telepo.core.call.model.UserLineDTO) The caller ID that should be used for the call. | |
| type | string Default: "BASIC" Enum: "BASIC" "DIVERSION_BYPASS" "INTRUSION" "INTERCOM" "VOICEMAIL" "BARGE" "WHISPER" "MONITOR" The extended type of the call. |
Alice makes a call from her primary line to the external number +1444344.
{- "destination": "tel:+1444344",
- "userLine": {
- "type": "OFFICE_FIXED",
- "groupId": 0
}
}{- "stateToken": 487345453,
- "callId": "aaa111bbb",
- "userId": "alice@organization.org",
- "remoteParty": {
- "partyId": "bob@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+46277464",
- "displayName": "Bob Bobson",
- "displayNumber": "7464"
}, - "conference": false,
- "inbound": false,
- "intruded": false,
- "status": "INITIATED",
- "muted": false,
- "duration": 0,
- "deviceIds": [
- "+1555555"
]
}{- "stateToken": 487345453,
- "callId": "aaa111bbb",
- "userId": "alice@organization.org",
- "remoteParty": {
- "partyId": "bob@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+46277464",
- "displayName": "Bob Bobson",
- "displayNumber": "7464"
}, - "conference": false,
- "inbound": false,
- "intruded": false,
- "status": "INITIATED",
- "muted": false,
- "duration": 0,
- "deviceIds": [
- "+1555555"
]
}Move the established call to another available device for the user. Should the call be on hold, then it will remain on hold in the new device.
| domain required | string The domain of the organization |
| userId required | string The user having the call to move |
| callId required | string The ID of the call to move |
| deviceId required | string The device to move the call to |
| stateToken | integer <int64> The expected stateToken of the state at the server. If not matching, the request will fail. |
Move a call to another device.
{ }{- "stateToken": 487345453,
- "callId": "aaa111bbb",
- "userId": "user@organization.org",
- "remoteParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "participants": [
- {
- "id": "aaa111bbb",
- "remoteParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473",
- "intrusionType": "BARGE"
}, - "historyInfo": {
- "subject": "Main Switchboad number",
- "acdSupport": "+134777",
- "campOn": false,
- "initialParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "previousParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "previousRetargetReason": "TRANSFERRED"
}
}
], - "conference": false,
- "conferenceId": "34322",
- "historyInfo": {
- "subject": "Main Switchboad number",
- "acdSupport": "+134777",
- "campOn": false,
- "initialParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "previousParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "previousRetargetReason": "TRANSFERRED"
}, - "inbound": true,
- "intruded": false,
- "status": "RINGING",
- "event": "FAILED",
- "muted": true,
- "eventDescription": "Call setup failed with status code 504",
- "duration": 0,
- "recordable": true,
- "recording": true,
- "recordingDuration": 0,
- "externalRecording": true,
- "externalRecordingDuration": 0,
- "externalRecordingPaused": false,
- "deviceIds": "[+1555555]",
- "actions": "[{action: ANSWER, deviceIds: [+1555555]}]",
- "correlationId": "h4p91mCciTYhnog0PE4aOQ_1716201728788",
- "collectedDigitsInfo": {
- "digits": "196009094445",
- "metadata": "Social Security Number."
}
}Mute an ongoing call. Depending on the type of call this action may or may not be available.
| domain required | string The domain of the organization |
| userId required | string The user having the call to mute |
| callId required | string The ID of the call to mute |
| stateToken | integer <int64> The expected stateToken of the state at the server. If not matching, the request will fail. |
{- "stateToken": 487345453
}{- "stateToken": 487345453,
- "callId": "aaa111bbb",
- "userId": "alice@organization.org",
- "remoteParty": {
- "partyId": "bob@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+46277464",
- "displayName": "Bob Bobson",
- "displayNumber": "7464"
}, - "conference": false,
- "inbound": false,
- "intruded": false,
- "status": "ACTIVE",
- "event": "MUTED",
- "muted": true,
- "duration": 50,
- "deviceIds": [
- "+1555555"
], - "actions": [
- {
- "action": "MOVE"
}, - {
- "action": "TRANSFER"
}, - {
- "action": "RESUME"
}, - {
- "action": "PARK"
}, - {
- "action": "UNMUTE"
}
]
}Park the call and make it available for other users, or the same user, to pick it up. The call is no longer belonging to the user, meaning that the Call ID is removed from the user's state.
| domain required | string The domain of the organization |
| userId required | string The user having the call to park |
| callId required | string The ID of the call to park |
| stateToken | integer <int64> The expected stateToken of the state at the server. If not matching, the request will fail. |
{- "stateToken": 487345453
}{- "stateToken": 487345453,
- "callId": "aaa111bbb",
- "userId": "user@organization.org",
- "remoteParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "participants": [
- {
- "id": "aaa111bbb",
- "remoteParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473",
- "intrusionType": "BARGE"
}, - "historyInfo": {
- "subject": "Main Switchboad number",
- "acdSupport": "+134777",
- "campOn": false,
- "initialParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "previousParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "previousRetargetReason": "TRANSFERRED"
}
}
], - "conference": false,
- "conferenceId": "34322",
- "historyInfo": {
- "subject": "Main Switchboad number",
- "acdSupport": "+134777",
- "campOn": false,
- "initialParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "previousParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "previousRetargetReason": "TRANSFERRED"
}, - "inbound": true,
- "intruded": false,
- "status": "RINGING",
- "event": "FAILED",
- "muted": true,
- "eventDescription": "Call setup failed with status code 504",
- "duration": 0,
- "recordable": true,
- "recording": true,
- "recordingDuration": 0,
- "externalRecording": true,
- "externalRecordingDuration": 0,
- "externalRecordingPaused": false,
- "deviceIds": "[+1555555]",
- "actions": "[{action: ANSWER, deviceIds: [+1555555]}]",
- "correlationId": "h4p91mCciTYhnog0PE4aOQ_1716201728788",
- "collectedDigitsInfo": {
- "digits": "196009094445",
- "metadata": "Social Security Number."
}
}Pickup a ringing call for another user using the specified device. This is not an end-user API and can only be accessed using service accounts. When using the service account, the call pickup permissions configured at the organization level do not apply.
| 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 |
| callId required | string The call ID of the ringing call to pickup |
| targetUrl | string The webhook url to monitor the call state for this call. |
| targetId | string A unique id of the webhook. Required if the targetUrl is set. |
| publicTarget | boolean Default: true Indicates if the target node hosting the webhook is deployed on the same network segment as the service nodes or if callbacks needs to go through the edge http proxy |
{- "targetId": "my_callback_id",
- "publicTarget": true
}{- "stateToken": 487345453,
- "callId": "aaa111bbb",
- "userId": "alice@organization.org",
- "remoteParty": {
- "partyId": "bob@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+46277464",
- "displayName": "Bob Bobson",
- "displayNumber": "7464"
}, - "conference": false,
- "inbound": false,
- "intruded": false,
- "status": "INITIATED",
- "muted": false,
- "duration": 0,
- "deviceIds": [
- "+1555555"
]
}{- "stateToken": 487345453,
- "callId": "aaa111bbb",
- "userId": "alice@organization.org",
- "remoteParty": {
- "partyId": "bob@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+46277464",
- "displayName": "Bob Bobson",
- "displayNumber": "7464"
}, - "conference": false,
- "inbound": false,
- "intruded": false,
- "status": "INITIATED",
- "muted": false,
- "duration": 0,
- "deviceIds": [
- "+1555555"
]
}Pickup a SIP call from a queue or a ringing call for another user using the specified device. The SIP dialog Id of the call must be known and the user must be configured to pick up another user calls.
| domain required | string The domain of the organization |
| userId required | string The user picking up the call |
| deviceId required | string The device to use to pickup the call |
| targetUrl | string The webhook url to monitor the call state for this call. |
| targetId | string A unique id of the webhook. Required if the targetUrl is set. |
| publicTarget | boolean Default: true Indicates if the target node hosting the webhook is deployed on the same network segment as the service nodes or if callbacks needs to go through the edge http proxy |
| callId required | string The Call-ID of the SIP call (dialog) |
| toTag required | string The to tag of the SIP call (dialog) |
| fromTag required | string The from tag of the SIP call (dialog) |
| earlyOnly required | boolean Indicate if the pickup should only be done in SIP early state. See RFC38961, section User Agent Client Behavior: Sending a Replaces Header |
{- "targetId": "my_callback_id",
- "publicTarget": true,
- "callId": "425928@bobster.example.org",
- "toTag": "7743",
- "fromTag": "6472",
- "earlyOnly": true
}{- "stateToken": 487345453,
- "callId": "aaa111bbb",
- "userId": "user@organization.org",
- "remoteParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "participants": [
- {
- "id": "aaa111bbb",
- "remoteParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473",
- "intrusionType": "BARGE"
}, - "historyInfo": {
- "subject": "Main Switchboad number",
- "acdSupport": "+134777",
- "campOn": false,
- "initialParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "previousParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "previousRetargetReason": "TRANSFERRED"
}
}
], - "conference": false,
- "conferenceId": "34322",
- "historyInfo": {
- "subject": "Main Switchboad number",
- "acdSupport": "+134777",
- "campOn": false,
- "initialParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "previousParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "previousRetargetReason": "TRANSFERRED"
}, - "inbound": true,
- "intruded": false,
- "status": "RINGING",
- "event": "FAILED",
- "muted": true,
- "eventDescription": "Call setup failed with status code 504",
- "duration": 0,
- "recordable": true,
- "recording": true,
- "recordingDuration": 0,
- "externalRecording": true,
- "externalRecordingDuration": 0,
- "externalRecordingPaused": false,
- "deviceIds": "[+1555555]",
- "actions": "[{action: ANSWER, deviceIds: [+1555555]}]",
- "correlationId": "h4p91mCciTYhnog0PE4aOQ_1716201728788",
- "collectedDigitsInfo": {
- "digits": "196009094445",
- "metadata": "Social Security Number."
}
}{- "stateToken": 487345453,
- "callId": "aaa111bbb",
- "userId": "alice@organization.org",
- "remoteParty": {
- "partyId": "bob@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+46277464",
- "displayName": "Bob Bobson",
- "displayNumber": "7464"
}, - "conference": false,
- "inbound": false,
- "intruded": false,
- "status": "INITIATED",
- "muted": false,
- "duration": 0,
- "deviceIds": [
- "+1555555"
]
}Removing the participant {participantId} from the ad-hoc conference specified by {callId}.
| domain required | string The domain of the organization |
| userId required | string The user performing the call |
| callId required | string The ID of the ad-hoc conference call |
| participantId required | string The ID of the participant to remove |
| stateToken | integer <int64> The expected stateToken of the state at the server. If not matching, the request will fail. |
{- "stateToken": 487345453
}{- "stateToken": 48738853,
- "callId": "xxx111yyy",
- "userId": "alice@organization.org",
- "remoteParty": {
- "partyId": "conference@organization.org",
- "type": "SERVICE_ID",
- "telUri": "tel:+46277100",
- "displayName": "Conference",
- "displayNumber": "7100"
}, - "participants": [
- {
- "id": "xxx22yyy",
- "remoteParty": {
- "partyId": "adhoc@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+46277565",
- "displayName": "Adrian Hocksley",
- "displayNumber": "7565"
}, - "historyInfo": {
- "subject": "Main Switchboad number",
- "campOn": true,
- "initialParty": {
- "partyId": "daisy@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+46277469",
- "displayName": "Daisy Smith",
- "displayNumber": "7469"
}, - "previousParty": {
- "partyId": "1234@organization.org",
- "type": "FUNCTION_NUMBER_ID",
- "telUri": "tel:+46277400",
- "displayName": "Switchboard",
- "displayNumber": "7400"
}, - "previousRetargetReason": "DISTRIBUTED"
}
}
], - "conference": true,
- "inbound": true,
- "intruded": false,
- "status": "ACTIVE",
- "event": "PARTICIPANT_LEFT",
- "muted": false,
- "duration": 5,
- "externalRecording": true,
- "externalRecordingDuration": 5,
- "externalRecordingPaused": false,
- "deviceIds": [
- "+1555555"
], - "actions": [
- {
- "action": "MOVE"
}, - {
- "action": "HOLD"
}, - {
- "action": "SAVE_REC"
}, - {
- "action": "PAUSE_REC"
}
]
}Resume a call that previously was put on hold.
| domain required | string The domain of the organization |
| userId required | string The user having the call to resume |
| callId required | string The ID of the call to resume |
| stateToken | integer <int64> The expected stateToken of the state at the server. If not matching, the request will fail. |
{- "stateToken": 487345453
}{- "stateToken": 487345453,
- "callId": "aaa111bbb",
- "userId": "bob@organization.org",
- "remoteParty": {
- "partyId": "alice@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+46277463",
- "displayName": "Alice Alison",
- "displayNumber": "7463"
}, - "conference": false,
- "inbound": true,
- "intruded": false,
- "status": "ACTIVE",
- "muted": false,
- "duration": 80,
- "externalRecording": true,
- "externalRecordingDuration": 5,
- "externalRecordingPaused": false,
- "deviceIds": [
- "+1555555"
], - "actions": [
- {
- "action": "MOVE"
}, - {
- "action": "TRANSFER"
}, - {
- "action": "HOLD"
}, - {
- "action": "PARK"
}, - {
- "action": "DISCARD_REC"
}
]
}A string of DTMF digits is sent within the call.
| domain required | string The domain of the organization |
| userId required | string The user sending the DTMF digits |
| callId required | string The ID of the call to send the DTMF digits in |
| stateToken | integer <int64> The expected stateToken of the state at the server. If not matching, the request will fail. |
| digits | string A string of DTMF digits, allowed values are 0-9, A-D, # or *. |
{- "stateToken": 487345453,
- "digits": "5"
}{- "stateToken": 487345453,
- "callId": "aaa111bbb",
- "userId": "user@organization.org",
- "remoteParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "participants": [
- {
- "id": "aaa111bbb",
- "remoteParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473",
- "intrusionType": "BARGE"
}, - "historyInfo": {
- "subject": "Main Switchboad number",
- "acdSupport": "+134777",
- "campOn": false,
- "initialParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "previousParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "previousRetargetReason": "TRANSFERRED"
}
}
], - "conference": false,
- "conferenceId": "34322",
- "historyInfo": {
- "subject": "Main Switchboad number",
- "acdSupport": "+134777",
- "campOn": false,
- "initialParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "previousParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "previousRetargetReason": "TRANSFERRED"
}, - "inbound": true,
- "intruded": false,
- "status": "RINGING",
- "event": "FAILED",
- "muted": true,
- "eventDescription": "Call setup failed with status code 504",
- "duration": 0,
- "recordable": true,
- "recording": true,
- "recordingDuration": 0,
- "externalRecording": true,
- "externalRecordingDuration": 0,
- "externalRecordingPaused": false,
- "deviceIds": "[+1555555]",
- "actions": "[{action: ANSWER, deviceIds: [+1555555]}]",
- "correlationId": "h4p91mCciTYhnog0PE4aOQ_1716201728788",
- "collectedDigitsInfo": {
- "digits": "196009094445",
- "metadata": "Social Security Number."
}
}Transfer a call to a new destination. The call will be automatically unheld if it is currently on hold.
| domain required | string The domain of the organization |
| userId required | string The user having the call to transfer |
| callId required | string The ID of the call to transfer |
| stateToken | integer <int64> The expected stateToken of the state at the server. If not matching, the request will fail. |
| blind | boolean Default: false Indicate if the transferred call should be automatically cleared after the transfer has been initiated |
| type | string Default: "BASIC" Enum: "BASIC" "VOICEMAIL" "CAMP_ON" "DIVERSION_BYPASS" The extended type of the transfer. |
| destination required | string The target of the transfer. A SIP or tel URI. |
{- "stateToken": 487345453,
- "blind": true,
- "type": "CAMP_ON",
- "destination": "tel:+15555"
}{- "stateToken": 487345453,
- "callId": "aaa111bbb",
- "userId": "user@organization.org",
- "remoteParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "participants": [
- {
- "id": "aaa111bbb",
- "remoteParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473",
- "intrusionType": "BARGE"
}, - "historyInfo": {
- "subject": "Main Switchboad number",
- "acdSupport": "+134777",
- "campOn": false,
- "initialParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "previousParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "previousRetargetReason": "TRANSFERRED"
}
}
], - "conference": false,
- "conferenceId": "34322",
- "historyInfo": {
- "subject": "Main Switchboad number",
- "acdSupport": "+134777",
- "campOn": false,
- "initialParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "previousParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "previousRetargetReason": "TRANSFERRED"
}, - "inbound": true,
- "intruded": false,
- "status": "RINGING",
- "event": "FAILED",
- "muted": true,
- "eventDescription": "Call setup failed with status code 504",
- "duration": 0,
- "recordable": true,
- "recording": true,
- "recordingDuration": 0,
- "externalRecording": true,
- "externalRecordingDuration": 0,
- "externalRecordingPaused": false,
- "deviceIds": "[+1555555]",
- "actions": "[{action: ANSWER, deviceIds: [+1555555]}]",
- "correlationId": "h4p91mCciTYhnog0PE4aOQ_1716201728788",
- "collectedDigitsInfo": {
- "digits": "196009094445",
- "metadata": "Social Security Number."
}
}A user having two separate calls can use the transfer method to connect the two parties the user is talking to. The two calls does not need to be active on the same device. Should either of the calls be on hold, it will automatically be unheld as the calls are connected. An attempt to update the caller Id to the transferred party will be made for the target call but depending on the device of the remote party, this may not succeed.
| domain required | string The domain of the organization |
| userId required | string The user having the call to transfer |
| callId required | string The ID of the call to transfer |
| stateToken | integer <int64> The expected stateToken of the state at the server. If not matching, the request will fail. |
| targetCallId required | string The callId of the target call the transferred call should be transferred to. |
| waitForAnswer | boolean If the target call is in ringing state when transferring and waitForAnswer is false, then then the target call will be cancelled and a new call initiated towards the target. If waitForAnswer is true then the transfer will complete when the target call is answered, the transferred party will hear ringing prompt while waiting. The default value of the waitForAnswer property is false. |
| targetStateToken | integer <int64> The expected stateToken of the state of the target call at the server. If not matching the request will fail. |
{- "stateToken": 487345453,
- "targetCallId": "dd33dxw9",
- "waitForAnswer": false,
- "targetStateToken": 832211
}{- "stateToken": 487345453,
- "callId": "aaa111bbb",
- "userId": "user@organization.org",
- "remoteParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "participants": [
- {
- "id": "aaa111bbb",
- "remoteParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473",
- "intrusionType": "BARGE"
}, - "historyInfo": {
- "subject": "Main Switchboad number",
- "acdSupport": "+134777",
- "campOn": false,
- "initialParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "previousParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "previousRetargetReason": "TRANSFERRED"
}
}
], - "conference": false,
- "conferenceId": "34322",
- "historyInfo": {
- "subject": "Main Switchboad number",
- "acdSupport": "+134777",
- "campOn": false,
- "initialParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "previousParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "previousRetargetReason": "TRANSFERRED"
}, - "inbound": true,
- "intruded": false,
- "status": "RINGING",
- "event": "FAILED",
- "muted": true,
- "eventDescription": "Call setup failed with status code 504",
- "duration": 0,
- "recordable": true,
- "recording": true,
- "recordingDuration": 0,
- "externalRecording": true,
- "externalRecordingDuration": 0,
- "externalRecordingPaused": false,
- "deviceIds": "[+1555555]",
- "actions": "[{action: ANSWER, deviceIds: [+1555555]}]",
- "correlationId": "h4p91mCciTYhnog0PE4aOQ_1716201728788",
- "collectedDigitsInfo": {
- "digits": "196009094445",
- "metadata": "Social Security Number."
}
}Unmute a call that previously was muted.
| domain required | string The domain of the organization |
| userId required | string The user having the call to unmute |
| callId required | string The ID of the call to unmute |
| stateToken | integer <int64> The expected stateToken of the state at the server. If not matching, the request will fail. |
{- "stateToken": 487345453
}{- "stateToken": 487345453,
- "callId": "aaa111bbb",
- "userId": "bob@organization.org",
- "remoteParty": {
- "partyId": "alice@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+46277463",
- "displayName": "Alice Alison",
- "displayNumber": "7463"
}, - "conference": false,
- "inbound": true,
- "intruded": false,
- "status": "ACTIVE",
- "event": "UNMUTED",
- "muted": false,
- "duration": 80,
- "externalRecording": true,
- "externalRecordingDuration": 5,
- "externalRecordingPaused": false,
- "deviceIds": [
- "+1555555"
], - "actions": [
- {
- "action": "MOVE"
}, - {
- "action": "TRANSFER"
}, - {
- "action": "HOLD"
}, - {
- "action": "PARK"
}, - {
- "action": "DISCARD_REC"
}, - {
- "action": "MUTE"
}
]
}The Call Recording API enables controlling of call recording for a user.
The API requires that the end-user has the license for Cloud CTI API.
Use the Call Recording API to:
If an ongoing on-demand call recording has been explicitly saved, the discard method should be invoked to revoke the save operation. Note that the call is still recorded but will be discarded at the end of the call unless the save operation is once again performed.
| domain required | string The domain of the organization |
| userId required | string The user recording the call |
| callId required | string The ID of the call not to save |
| stateToken | integer <int64> The expected stateToken of the state at the server. If not matching, the request will fail. |
{- "stateToken": 487345453
}{- "stateToken": 487345453,
- "callId": "aaa111bbb",
- "userId": "bob@organization.org",
- "remoteParty": {
- "partyId": "alice@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+46277463",
- "displayName": "Alice Alison",
- "displayNumber": "7463"
}, - "conference": false,
- "inbound": true,
- "intruded": false,
- "status": "ACTIVE",
- "muted": false,
- "duration": 200,
- "externalRecording": true,
- "externalRecordingDuration": 200,
- "externalRecordingPaused": false,
- "deviceIds": [
- "+1555555"
], - "actions": [
- {
- "action": "MOVE"
}, - {
- "action": "TRANSFER"
}, - {
- "action": "HOLD"
}, - {
- "action": "PARK"
}, - {
- "action": "SAVE_REC"
}, - {
- "action": "PAUSE_REC"
}
]
}Pause an ongoing on-demand call recording. It depends on the configuration of the call recording service if this option is available for this user.
| domain required | string The domain of the organization |
| userId required | string The user recording the call |
| callId required | string The ID of the call to pause recording for |
| stateToken | integer <int64> The expected stateToken of the state at the server. If not matching, the request will fail. |
{- "stateToken": 487345453
}{- "stateToken": 487345453,
- "callId": "aaa111bbb",
- "userId": "bob@organization.org",
- "remoteParty": {
- "partyId": "alice@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+46277463",
- "displayName": "Alice Alison",
- "displayNumber": "7463"
}, - "conference": false,
- "inbound": true,
- "intruded": false,
- "status": "ACTIVE",
- "muted": false,
- "duration": 300,
- "externalRecording": true,
- "externalRecordingDuration": 300,
- "externalRecordingPaused": false,
- "deviceIds": [
- "+1555555"
], - "actions": [
- {
- "action": "MOVE"
}, - {
- "action": "TRANSFER"
}, - {
- "action": "HOLD"
}, - {
- "action": "PARK"
}, - {
- "action": "DISCARD_REC"
}, - {
- "action": "RESUME_REC"
}
]
}Resume a paused recording.
| domain required | string The domain of the organization |
| userId required | string The user that records the call |
| callId required | string The ID of the call to resume recording for |
| stateToken | integer <int64> The expected stateToken of the state at the server. If not matching, the request will fail. |
{- "stateToken": 487345453
}{- "stateToken": 487345453,
- "callId": "aaa111bbb",
- "userId": "bob@organization.org",
- "remoteParty": {
- "partyId": "alice@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+46277463",
- "displayName": "Alice Alison",
- "displayNumber": "7463"
}, - "conference": false,
- "inbound": true,
- "intruded": false,
- "status": "ACTIVE",
- "muted": false,
- "duration": 300,
- "externalRecording": true,
- "externalRecordingDuration": 250,
- "externalRecordingPaused": false,
- "deviceIds": [
- "+1555555"
], - "actions": [
- {
- "action": "MOVE"
}, - {
- "action": "TRANSFER"
}, - {
- "action": "HOLD"
}, - {
- "action": "PARK"
}, - {
- "action": "DISCARD_REC"
}, - {
- "action": "PAUSE_REC"
}
]
}If on-demand call recording is enabled for this call, which depends on the configuration of the user, then the whole call will be recorded but the recording must be explicitly saved through the invocation of this method or the recording will be discarded at the end of the call.
| domain required | string The domain of the organization |
| userId required | string The user recording the call |
| callId required | string The ID of the call to save |
| stateToken | integer <int64> The expected stateToken of the state at the server. If not matching, the request will fail. |
{- "stateToken": 487345453
}{- "stateToken": 487345453,
- "callId": "aaa111bbb",
- "userId": "bob@organization.org",
- "remoteParty": {
- "partyId": "alice@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+46277463",
- "displayName": "Alice Alison",
- "displayNumber": "7463"
}, - "conference": false,
- "inbound": true,
- "intruded": false,
- "status": "ACTIVE",
- "muted": false,
- "duration": 80,
- "externalRecording": true,
- "externalRecordingDuration": 80,
- "externalRecordingPaused": false,
- "deviceIds": [
- "+1555555"
], - "actions": [
- {
- "action": "MOVE"
}, - {
- "action": "TRANSFER"
}, - {
- "action": "HOLD"
}, - {
- "action": "PARK"
}, - {
- "action": "DISCARD_REC"
}, - {
- "action": "PAUSE_REC"
}
]
}If it's possible to record this call, which depends on the configuration of the user, then the start method will initate the recording. Any part of the call before the start method is performed will not be part of the recording.
| domain required | string The domain of the organization |
| userId required | string The user that should record the call |
| callId required | string The ID of the call to record |
| stateToken | integer <int64> The expected stateToken of the state at the server. If not matching, the request will fail. |
{- "stateToken": 487345453
}{- "stateToken": 487345453,
- "callId": "aaa111bbb",
- "userId": "bob@organization.org",
- "remoteParty": {
- "partyId": "alice@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+46277463",
- "displayName": "Alice Alison",
- "displayNumber": "7463"
}, - "conference": false,
- "inbound": true,
- "intruded": false,
- "status": "ACTIVE",
- "muted": false,
- "duration": 100,
- "recording": true,
- "recordingDuration": 5,
- "deviceIds": [
- "+1555555"
], - "actions": [
- {
- "action": "TRANSFER"
}, - {
- "action": "HOLD"
}, - {
- "action": "STOP_REC"
}
]
}If the start method has previously been performed to initiate call recording, then the stop method is available to end the call recording.
| domain required | string The domain of the organization |
| userId required | string The user that should record the call |
| callId required | string The ID of the call to stop recording |
| stateToken | integer <int64> The expected stateToken of the state at the server. If not matching, the request will fail. |
{- "stateToken": 487345453
}{- "stateToken": 487345453,
- "callId": "aaa111bbb",
- "userId": "bob@organization.org",
- "remoteParty": {
- "partyId": "alice@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+46277463",
- "displayName": "Alice Alison",
- "displayNumber": "7463"
}, - "conference": false,
- "inbound": true,
- "intruded": false,
- "status": "ACTIVE",
- "muted": false,
- "duration": 200,
- "recording": false,
- "deviceIds": [
- "+1555555"
], - "actions": [
- {
- "action": "MOVE"
}, - {
- "action": "TRANSFER"
}, - {
- "action": "HOLD"
}, - {
- "action": "PARK"
}, - {
- "action": "START_REC"
}
]
}The Call State API enables fetching and monitoring states for users and call.
In order to use the API, the user must have either a Cloud CTI API License or Call Control API License.
Use the Call State API to:
Unregister an existing webhook registered for specific user call.
| domain required | string The domain of the organization |
| userId required | string The ID of the user |
| callId required | string The ID of the call |
| targetId required | string The unique id of the webhook that should be unregistered |
Unregister an existing webhook registered for the user.
| domain required | string The domain of the organization |
| userId required | string The ID of the user |
| targetId required | string The unique ID of the webhook that should be unregistered |
Fetch a snapshot of the current state of a call.
| domain required | string The domain of the organization |
| userId required | string The username of the user accessing the API |
| callId required | string The ID of the call |
{- "stateToken": 487345453,
- "callId": "aaa111bbb",
- "userId": "user@organization.org",
- "remoteParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "participants": [
- {
- "id": "aaa111bbb",
- "remoteParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473",
- "intrusionType": "BARGE"
}, - "historyInfo": {
- "subject": "Main Switchboad number",
- "acdSupport": "+134777",
- "campOn": false,
- "initialParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "previousParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "previousRetargetReason": "TRANSFERRED"
}
}
], - "conference": false,
- "conferenceId": "34322",
- "historyInfo": {
- "subject": "Main Switchboad number",
- "acdSupport": "+134777",
- "campOn": false,
- "initialParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "previousParty": {
- "partyId": "nathan.hughes@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+442528473",
- "displayName": "Nathan Hughes",
- "displayNumber": "8473"
}, - "previousRetargetReason": "TRANSFERRED"
}, - "inbound": true,
- "intruded": false,
- "status": "RINGING",
- "event": "FAILED",
- "muted": true,
- "eventDescription": "Call setup failed with status code 504",
- "duration": 0,
- "recordable": true,
- "recording": true,
- "recordingDuration": 0,
- "externalRecording": true,
- "externalRecordingDuration": 0,
- "externalRecordingPaused": false,
- "deviceIds": "[+1555555]",
- "actions": "[{action: ANSWER, deviceIds: [+1555555]}]",
- "correlationId": "h4p91mCciTYhnog0PE4aOQ_1716201728788",
- "collectedDigitsInfo": {
- "digits": "196009094445",
- "metadata": "Social Security Number."
}
}Fetch a snapshot of the current state of a user.
| domain required | string The domain of the organization |
| userId required | string The username of the user accessing the API |
{- "userId": "alice@organization.org",
- "fullState": true,
- "calls": [
- {
- "stateToken": 487345453,
- "callId": "aaa111bbb",
- "userId": "alice@organization.org",
- "remoteParty": {
- "partyId": "bob@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+46277464",
- "displayName": "Bob Bobson",
- "displayNumber": "7464"
}, - "conference": false,
- "inbound": false,
- "intruded": false,
- "status": "HELD",
- "muted": false,
- "duration": 50,
- "deviceIds": [
- "+1555555"
], - "actions": [
- {
- "action": "MOVE"
}, - {
- "action": "TRANSFER"
}, - {
- "action": "RESUME"
}, - {
- "action": "PARK"
}
]
}
]
}Register a webhook to be notified if the state of the call has been updated in the server. The new stateToken of the state will be posted to the registered URL allowing the CTI client to compare it to the token of any state it currently knows about and decide if it needs to fetch the latest state.
| domain required | string The domain of the organization |
| userId required | string The ID of the user |
| callId required | string The ID of the call |
| targetUrl required | string The webhook url |
| targetId required | string A unique id of the webhook. |
| publicTarget required | boolean Indicates if the target node hosting the webhook is deployed on the same network segment as the service nodes or if callbacks needs to go through the edge http proxy |
{- "targetId": "434356",
- "publicTarget": true
}{- "stateToken": 487345453,
- "callId": "aaa111bbb",
- "userId": "alice@organization.org",
- "remoteParty": {
- "partyId": "bob@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+46277464",
- "displayName": "Bob Bobson",
- "displayNumber": "7464"
}, - "conference": false,
- "inbound": false,
- "intruded": false,
- "status": "INITIATED",
- "muted": false,
- "duration": 0,
- "deviceIds": [
- "+1555555"
]
}Register a webhook where notifications about new and deleted calls for the user will be pushed. The user must be CTI enabled, and the registration is valid for all the users devices.
| domain required | string The domain of the organization |
| userId required | string The ID of the user |
| targetUrl required | string The webhook url |
| targetId required | string A unique id of the webhook. |
| publicTarget required | boolean Indicates if the target node hosting the webhook is deployed on the same network segment as the service nodes or if callbacks needs to go through the edge http proxy |
{- "targetId": "434356",
- "publicTarget": true
}{- "expiresOn": 3600
}{- "userId": "alice@organization.org",
- "fullState": true,
- "calls": [
- {
- "stateToken": 487345453,
- "callId": "aaa111bbb",
- "userId": "alice@organization.org",
- "remoteParty": {
- "partyId": "bob@organization.org",
- "type": "USER_ID",
- "telUri": "tel:+46277464",
- "displayName": "Bob Bobson",
- "displayNumber": "7464"
}, - "conference": false,
- "inbound": false,
- "intruded": false,
- "status": "HELD",
- "muted": false,
- "duration": 50,
- "deviceIds": [
- "+1555555"
], - "actions": [
- {
- "action": "MOVE"
}, - {
- "action": "TRANSFER"
}, - {
- "action": "RESUME"
}, - {
- "action": "PARK"
}
]
}
]
}The Event API is used to do different event related operations, such as handling conferences.
Use Event API to:
Fetch a specified event.
| domain required | string The organization domain |
| userId required | string The user id of the user |
| eventId required | integer <int64> Event id to fetch an event |
The single non-recurring event
{- "id": 1,
- "dateTimeStart": "2026-03-08T15:38:39Z",
- "dateTimeEnd": "2026-03-08T16:38:39Z",
- "name": "Test meeting",
- "organizer": {
- "id": "alice@abc.com",
- "firstName": "Alice",
- "lastName": "Test",
- "email": "alice@abc.com",
- "businessPhone": "+123402",
- "mobilePhone": "+46767676195"
}, - "participants": [
- {
- "id": "bob@abc.com",
- "firstName": "Bob",
- "lastName": "Test",
- "email": "bob@abc.com",
- "businessPhone": "+123403",
- "mobilePhone": "+46767676194"
}
], - "minutesBeforeMeetingReminder": 15,
- "minutesBeforeMeetingSMS": 15,
- "pincode": "151512",
- "timeZone": "Europe/Stockholm",
- "recurringType": "NONE",
- "note": "Test meeting ongoing",
- "dialInNumbers": "+46767676767,+46767611000,5752222",
- "recurrenceRangeType": "NONE",
- "synchronizedMeeting": false
}Update an event.
| domain required | string The organization domain |
| userId required | string The user id of the user |
| eventId required | integer <int64> Event id to update an event |
| endDate | string Date and time for the end of an event serie, according to ISO 8601: YYYY-MM-DDTHH:mm:ssZ. The time should be the start time of the event. |
| id | integer <int64> The event's id. |
| dateTimeStart | string Date and time for start of the event according to ISO 8601: YYYY-MM-DDTHH:mm:ssZ. |
| dateTimeEnd | string Date and time for end of the event according to ISO 8601: YYYY-MM-DDTHH:mm:ssZ. |
| name | string The name of the event. |
required | object (com.telepo.api.event.EventParticipantDTO) List of attendees who are participating in the event instance, excluding the organizer. |
Array of objects (com.telepo.api.event.EventParticipantDTO) List of participants excluding the organizer. | |
| minutesBeforeMeetingReminder | integer <int32> How many minutes before an event a reminder email should be sent to the participants. |
| minutesBeforeMeetingSMS | integer <int32> How many minutes before an event a reminder SMS should be sent to the participants. |
| pincode | string Pincode for the event. |
| timeZone | string The organizer's time zone (or selected time zone) to be used for the event. |
| recurringType | string Enum: "NONE" "DAILY" "WEEKLY" "BIWEEKLY" "MONTHLY" "YEARLY" "MONTHLY_ABSOLUTE" "MONTHLY_RELATIVE" "YEARLY_ABSOLUTE" "YEARLY_RELATIVE" Recurring type. |
| note | string Event note. |
| dialInNumbers | string The numbers that should be used by event participants when calling in to the event. |
| interval | integer <int32> The number of units between occurrences, where units can be in days, weeks, months, or years, depending on the type. Required. |
| recurrenceRangeType | string 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 strings The days of week an event should take place. |
| dayOfMonth | integer <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 | integer <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 | string 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 | integer <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 | boolean Indicates if the meeting has been synchronized from other sources. |
| synchronizedSeries | boolean Indicates if this synchronized meeting is part of a series. |
| rRule | string Specifies the recurrence rule of an event. |
{- "id": 1,
- "dateTimeStart": "2026-03-08T15:38:39Z",
- "dateTimeEnd": "2026-03-08T16:38:39Z",
- "name": "Test meeting",
- "organizer": {
- "id": "alice@abc.com",
- "firstName": "Alice",
- "lastName": "Test",
- "email": "alice@abc.com",
- "businessPhone": "+123402",
- "mobilePhone": "+46767676195"
}, - "participants": [
- {
- "id": "bob@abc.com",
- "firstName": "Bob",
- "lastName": "Test",
- "email": "bob@abc.com",
- "businessPhone": "+123403",
- "mobilePhone": "+46767676194"
}
], - "minutesBeforeMeetingReminder": 15,
- "minutesBeforeMeetingSMS": 15,
- "timeZone": "Europe/Stockholm",
- "recurringType": "DAILY",
- "note": "Test meeting ongoing",
- "interval": 1,
- "recurrenceRangeType": "NONE",
- "weekPosition": "NONE",
- "synchronizedMeeting": false
}{- "id": 1,
- "dateTimeStart": "2026-03-08T15:38:39Z",
- "dateTimeEnd": "2026-03-08T16:38:39Z",
- "name": "Test meeting",
- "organizer": {
- "id": "alice@abc.com",
- "firstName": "Alice",
- "lastName": "Test",
- "email": "alice@abc.com",
- "businessPhone": "+123402",
- "mobilePhone": "+46767676195"
}, - "participants": [
- {
- "id": "bob@abc.com",
- "firstName": "Bob",
- "lastName": "Test",
- "email": "bob@abc.com",
- "businessPhone": "+123403",
- "mobilePhone": "+46767676194"
}
], - "minutesBeforeMeetingReminder": 15,
- "minutesBeforeMeetingSMS": 15,
- "pincode": "151512",
- "timeZone": "Europe/Stockholm",
- "recurringType": "DAILY",
- "note": "Test meeting ongoing",
- "dialInNumbers": "+4676767676",
- "interval": 1,
- "recurrenceRangeType": "NONE",
- "weekPosition": "NONE",
- "synchronizedMeeting": false,
- "rRule": "FREQ=DAILY;INTERVAL=1"
}Remove a specified event.
| domain required | string The organization domain |
| userId required | string The user id of the user |
| eventId required | integer <int64> Event id to delete an event |
{- "field": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": "string",
- "name": "baduser@baddomain.com"
}
], - "warning": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": "string",
- "name": "baduser@baddomain.com"
}
], - "generated-id": "string"
}Get the details of a single occurrence or exception from a recurring event.
| domain required | string The organization domain |
| userId required | string The user id of the user |
| confId required | integer <int64> Event id to fetch an occurrence or exception |
| eventDate required | string The date of the event instance in 'yyyy-MM-dd' format |
The occurrence of an event is a non-updated instance of the event.
{- "dateTimeStart": "2023-11-25T12:38:39Z",
- "dateTimeEnd": "2023-11-25T13:38:39Z",
- "name": "Test meeting update",
- "note": "Test meeting instance",
- "isUpdated": true,
- "isCancelled": false,
- "eventId": 1,
- "organizer": {
- "id": "alice@abc.com",
- "firstName": "Alice",
- "lastName": "Test",
- "email": "alice@abc.com",
- "businessPhone": "+123402",
- "mobilePhone": "+46767676195"
}, - "participants": [
- {
- "id": "bob@abc.com",
- "firstName": "Bob",
- "lastName": "Test",
- "email": "bob@abc.com",
- "businessPhone": "+123403",
- "mobilePhone": "+46767676194"
}
]
}Modify a single event occurrence or an exception from a recurring event.
| domain required | string The organization domain |
| userId required | string The user id of the user |
| confId required | integer <int64> Event id to update an event occurrence or exception |
| eventDate required | string The date of the event instance in 'yyyy-MM-dd' format |
| id | integer <int64> The event exception's id. |
| dateTimeStart required | string Date and time for start of the event instance according to ISO 8601: YYYY-MM-DDTHH:mm:ssZ. |
| dateTimeEnd required | string Date and time for end of the event instance according to ISO 8601: YYYY-MM-DDTHH:mm:ssZ. |
| name | string The name of the event instance. |
| note | string Event instance note. |
| isUpdated | boolean Whether the event instance is updated or not. |
| isCancelled | boolean Whether the event instance is cancelled or not. |
| eventId | integer <int64> The Id of the event |
required | object (com.telepo.api.event.EventParticipantDTO) List of attendees who are participating in the event instance, excluding the organizer. |
required | Array of objects (com.telepo.api.event.EventParticipantDTO) List of attendees who are participating in the event instance, excluding the organizer. |
| dateTimeOld | string Original date and time before updating the exception according to ISO 8601: YYYY-MM-DDTHH:mm:ssZ. |
The exception of an event is an updated occurrence or exception of the event.
{- "id": 1,
- "dateTimeStart": "2023-11-25T12:38:39Z",
- "dateTimeEnd": "2023-11-25T13:38:39Z",
- "name": "Test meeting update",
- "note": "Test meeting instance",
- "isUpdated": true,
- "isCancelled": false,
- "eventId": 1,
- "organizer": {
- "id": "alice@abc.com",
- "firstName": "Alice",
- "lastName": "Test",
- "email": "alice@abc.com",
- "businessPhone": "+123402",
- "mobilePhone": "+46767676195"
}, - "participants": [
- {
- "id": "bob@abc.com",
- "firstName": "Bob",
- "lastName": "Test",
- "email": "bob@abc.com",
- "businessPhone": "+123403",
- "mobilePhone": "+46767676194"
}
]
}Exception
{- "id": 1,
- "dateTimeStart": "2023-11-25T12:38:39Z",
- "dateTimeEnd": "2023-11-25T13:38:39Z",
- "name": "Test meeting update",
- "note": "Test meeting instance",
- "isUpdated": true,
- "isCancelled": false,
- "eventId": 1,
- "organizer": {
- "id": "alice@abc.com",
- "firstName": "Alice",
- "lastName": "Test",
- "email": "alice@abc.com",
- "businessPhone": "+123402",
- "mobilePhone": "+46767676195"
}, - "participants": [
- {
- "id": "bob@abc.com",
- "firstName": "Bob",
- "lastName": "Test",
- "email": "bob@abc.com",
- "businessPhone": "+123403",
- "mobilePhone": "+46767676194"
}
], - "dateTimeOld": "2023-11-25T15:38:39Z"
}Remove a single event occurrence or an exception from a recurring event.
| domain required | string The organization domain |
| userId required | string The user id of the user |
| confId required | integer <int64> Event id to delete an event occurrence or exception |
| eventDate required | string The date of the event instance in 'yyyy-MM-dd' format |
Cancelled exception
{- "id": 2,
- "dateTimeStart": "2023-11-25T12:38:39Z",
- "dateTimeEnd": "2023-11-25T13:38:39Z",
- "name": "Test meeting update",
- "note": "Test meeting instance",
- "isUpdated": false,
- "isCancelled": true,
- "eventId": 1,
- "participants": [
- { }
], - "dateTimeOld": "2023-11-25T15:38:39Z"
}Fetch events for a specified user, where the user is either the organizer or a participant.
| domain required | string The organization domain |
| userId required | string The user id of the user |
{- "events": [
- {
- "id": 1,
- "dateTimeStart": "2026-03-08T15:38:39Z",
- "dateTimeEnd": "2026-03-08T16:38:39Z",
- "name": "Test meeting",
- "organizer": {
- "id": "alice@abc.com",
- "firstName": "Alice",
- "lastName": "Test",
- "email": "alice@abc.com",
- "businessPhone": "+123402",
- "mobilePhone": "+46767676195"
}, - "participants": [
- {
- "id": "bob@abc.com",
- "firstName": "Bob",
- "lastName": "Test",
- "email": "bob@abc.com",
- "businessPhone": "+123403",
- "mobilePhone": "+46767676194"
}
], - "minutesBeforeMeetingReminder": 15,
- "minutesBeforeMeetingSMS": 15,
- "pincode": "151512",
- "timeZone": "Europe/Stockholm",
- "recurringType": "DAILY",
- "note": "Test meeting ongoing",
- "dialInNumbers": "+46767676767,+46767611000,5752222",
- "interval": 1,
- "recurrenceRangeType": "NONE",
- "weekPosition": "NONE",
- "exceptions": [
- null
], - "synchronizedMeeting": false,
- "rRule": "FREQ=DAILY;INTERVAL=1"
}
]
}Schedule a new event.
| domain required | string The organization domain |
| userId required | string The user id of the user |
| endDate | string Date and time for the end of an event serie, according to ISO 8601: YYYY-MM-DDTHH:mm:ssZ. The time should be the start time of the event. |
| id | integer <int64> The event's id. |
| dateTimeStart | string Date and time for start of the event according to ISO 8601: YYYY-MM-DDTHH:mm:ssZ. |
| dateTimeEnd | string Date and time for end of the event according to ISO 8601: YYYY-MM-DDTHH:mm:ssZ. |
| name | string The name of the event. |
required | object (com.telepo.api.event.EventParticipantDTO) List of attendees who are participating in the event instance, excluding the organizer. |
Array of objects (com.telepo.api.event.EventParticipantDTO) List of participants excluding the organizer. | |
| minutesBeforeMeetingReminder | integer <int32> How many minutes before an event a reminder email should be sent to the participants. |
| minutesBeforeMeetingSMS | integer <int32> How many minutes before an event a reminder SMS should be sent to the participants. |
| pincode | string Pincode for the event. |
| timeZone | string The organizer's time zone (or selected time zone) to be used for the event. |
| recurringType | string Enum: "NONE" "DAILY" "WEEKLY" "BIWEEKLY" "MONTHLY" "YEARLY" "MONTHLY_ABSOLUTE" "MONTHLY_RELATIVE" "YEARLY_ABSOLUTE" "YEARLY_RELATIVE" Recurring type. |
| note | string Event note. |
| dialInNumbers | string The numbers that should be used by event participants when calling in to the event. |
| interval | integer <int32> The number of units between occurrences, where units can be in days, weeks, months, or years, depending on the type. Required. |
| recurrenceRangeType | string 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 strings The days of week an event should take place. |
| dayOfMonth | integer <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 | integer <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 | string 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 | integer <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 | boolean Indicates if the meeting has been synchronized from other sources. |
| synchronizedSeries | boolean Indicates if this synchronized meeting is part of a series. |
| rRule | string Specifies the recurrence rule of an event. |
{- "dateTimeStart": "2026-03-08T15:38:39Z",
- "dateTimeEnd": "2026-03-08T16:38:39Z",
- "name": "Test meeting",
- "organizer": {
- "id": "alice@abc.com",
- "firstName": "Alice",
- "lastName": "Test",
- "email": "alice@abc.com",
- "businessPhone": "+123402",
- "mobilePhone": "+46767676195"
}, - "participants": [
- {
- "id": "bob@abc.com",
- "firstName": "Bob",
- "lastName": "Test",
- "email": "bob@abc.com",
- "businessPhone": "+123403",
- "mobilePhone": "+46767676194"
}
], - "minutesBeforeMeetingReminder": 15,
- "minutesBeforeMeetingSMS": 15,
- "timeZone": "Europe/Stockholm",
- "recurringType": "DAILY",
- "note": "Test meeting ongoing",
- "interval": 1,
- "recurrenceRangeType": "NONE",
- "weekPosition": "NONE",
- "synchronizedMeeting": false
}{- "id": 1,
- "dateTimeStart": "2026-03-08T15:38:39Z",
- "dateTimeEnd": "2026-03-08T16:38:39Z",
- "name": "Test meeting",
- "organizer": {
- "id": "alice@abc.com",
- "firstName": "Alice",
- "lastName": "Test",
- "email": "alice@abc.com",
- "businessPhone": "+123402",
- "mobilePhone": "+46767676195"
}, - "participants": [
- {
- "id": "bob@abc.com",
- "firstName": "Bob",
- "lastName": "Test",
- "email": "bob@abc.com",
- "businessPhone": "+123403",
- "mobilePhone": "+46767676194"
}
], - "minutesBeforeMeetingReminder": 15,
- "minutesBeforeMeetingSMS": 15,
- "pincode": "151512",
- "timeZone": "Europe/Stockholm",
- "recurringType": "DAILY",
- "note": "Test meeting ongoing",
- "dialInNumbers": "+4676767676",
- "interval": 1,
- "recurrenceRangeType": "NONE",
- "weekPosition": "NONE",
- "synchronizedMeeting": false,
- "rRule": "FREQ=DAILY;INTERVAL=1"
}Join conference call on user's answer place.
| domain required | string The organization domain |
| userId required | string The user id of the user |
| eventId required | integer <int64> Event id to join a conference |
| answerPlace | string Deprecated The register user device name |
| sipInstance | string Deprecated Instance Id (sipInstance) of the user agent |
| autoAnswer | string Deprecated Auto answer on user device |
| selectedDeviceID | string The Device ID of the user agent |
"string"Hangs up conference call on user's answer place.
| domain required | string The organization domain |
| userId required | string The user id of the user |
| eventId required | integer <int64> Event id to leave a conference |
| answerPlace | string Deprecated The register user device name |
| sipInstance | string Deprecated Instance Id (sipInstance) of the user agent |
| selectedDeviceID | string The Device ID of the user agent |
{- "field": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": "string",
- "name": "baduser@baddomain.com"
}
], - "warning": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": "string",
- "name": "baduser@baddomain.com"
}
], - "generated-id": "string"
}The Buddy List API is used to manage user's favourites. Favourites list is the default contact list. It can contain personal contacts, directory contacts and function numbers. Favourites show up by default when no contact has been searched.
Use the Buddy List API to:
Verify a contact is in the favourite contact list.
| domain required | string The domain of the user accessing the API |
| user required | string The username of the user whose contact list we are managing |
| cid required | string The contact ID of the user we want to verify is in the favourites list |
Add a contact to a user's favourites.
| domain required | string The domain of the user accessing the API |
| user required | string The username of the user whose contact list we are managing |
| cid required | string The contact ID of the user we want to add to the favourites list |
Delete a contact from a user's favourites.
| domain required | string The domain of the user accessing the API |
| user required | string The username of the user whose contact list we are managing |
| cid required | string The contact ID of the user we want to remove from the favourites list |
Update the favourites of a user based on the configured favourites templates of the organization and groups the user belongs to.
| domain required | string The domain of the user accessing the API |
| user required | string The username of the user whose contact list we are managing |
| applyContactTemplates required | string Set to 'true' to generate favourites based on exisiting templates on organization and group level |
The Contacts API operates primarily against a user's contact list. Searches can return results from the directory as well.
Use the Contacts API to:
Add a contact to a user's contact list.
| domain required | string The domain of the user accessing the API. |
| user required | string The username of the user accessing the API. |
| cid required | string The ID of the contact to be added to the contact list. |
{- "query": "query",
- "contact": [
- {
- "id": "jack@example.com",
- "firstname": "Jack",
- "lastname": "Jackson",
- "company": "Organization",
- "presence": {
- "futurePresenceAccess": "WRITE",
- "activityAccess": "WRITE",
- "roleAccess": "WRITE",
- "noteAccess": "WRITE",
- "role": "Business",
- "note": "Vacation",
- "activity": {
- "id": "1231141551161",
- "expiration": "NEVER",
- "available": true
}, - "idle": false,
- "available": true,
- "capabilities": [
- "MESSAGE",
- "PARTIAL_COLLABORATION",
- "SMS"
]
}, - "incall": false,
- "inlist": true,
- "diversionAccess": "NONE",
- "type": "DIRECTORY",
- "image": 12,
- "vcard": 113,
- "contactStatus": "FAVORITE",
- "preferredNumber": "+1231231",
- "email": "jack.jackson@example.com"
}
]
}Remove a contact from a user's contact list
| domain required | string The domain of the user accessing the API |
| user required | string The username of the user accessing the API |
| cid required | string The ID of the contact to be deleted |
{- "field": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": "string",
- "name": "baduser@baddomain.com"
}
], - "warning": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": "string",
- "name": "baduser@baddomain.com"
}
], - "generated-id": "string"
}Get a list of matching contacts for a user. By default contacts are ordered alphabetically by name. The user of the API is expected to reorder them as needed.
| domain required | string The domain of the user accessing the API. |
| user required | string The username of the user accessing the API. |
| query | string An optional query consisting of one or many search terms, separated with space. If provided, contacts where any word in a searchable field starts with a search term 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. |
| includeBlocked | boolean Include blocked external contacts in the search result by providing this parameter with value 'true'. Otherwise, blocked external contacts are not included. |
| includeFields | boolean Include directory fields of directory contacts by providing this parameter with value 'true'. Note that including fields will increase the response time. Default is false. |
| includeMatchInfo | boolean Include information on how contacts have matched the stated query by providing this parameter with value 'true'. Ignored if no query is provided. Default is false. |
| excludeType | Array of strings Items Enum: "directory" "external" "number" "exchange" Exclude contacts of these types from the search result. If any excluded contact type is provided, dontIncludeFnrs is ignored. |
| searchtype | string Enum: "EXACT" "NORMALIZED" The type of search to conduct. Default is NORMALIZED.
|
Default search result
{- "query": "query",
- "contact": [
- {
- "id": "alice@example.com",
- "firstname": "Alice",
- "lastname": "Alisson",
- "company": "Organization",
- "presence": {
- "futurePresenceAccess": "WRITE",
- "activityAccess": "WRITE",
- "roleAccess": "WRITE",
- "noteAccess": "WRITE",
- "role": "Business",
- "note": "Example Note",
- "activity": {
- "id": "1230040550060",
- "expiration": "NEVER",
- "available": true
}, - "idle": false,
- "available": true,
- "capabilities": [
- "MESSAGE",
- "PARTIAL_COLLABORATION",
- "SMS"
]
}, - "incall": false,
- "inlist": true,
- "diversionAccess": "NONE",
- "type": "SHORTCUT",
- "image": 12,
- "vcard": 168,
- "contactStatus": "FAVORITE",
- "preferredNumber": "+1234567",
- "email": "alice.alisson@example.com",
- "contactEntryId": "Y29udGFjdElkQGV4YW1wbGUub3JnQGRpcmVjdG9yeQ"
}
]
}Add multiple contacts to a user's contact list.
| domain required | string The domain of the user accessing the API. |
| user required | string The username of the user accessing the API. |
| query | string The query that was used to get the list of contacts. |
Array of objects (com.telepo.api.contact.ContactDTO) List of contacts. |
{- "query": "query",
- "contact": [
- {
- "id": "jack@example.com",
- "firstname": "Jack",
- "lastname": "Jackson",
- "company": "Organization",
- "presence": {
- "futurePresenceAccess": "NONE",
- "activityAccess": "NONE",
- "roleAccess": "NONE",
- "noteAccess": "NONE",
- "role": "Business",
- "note": "Vacation",
- "activity": {
- "id": "1231141551161",
- "expiration": "NEVER",
- "available": true
}, - "capabilities": [
- "MESSAGE",
- "PARTIAL_COLLABORATION",
- "SMS"
]
}, - "incall": false,
- "inlist": true,
- "type": "DIRECTORY",
- "image": 12,
- "vcard": 113,
- "contactStatus": "FAVORITE",
- "email": "jack.jackson@example.com"
}
]
}{- "query": "query",
- "contact": [
- {
- "id": "jack@example.com",
- "firstname": "Jack",
- "lastname": "Jackson",
- "company": "Organization",
- "presence": {
- "futurePresenceAccess": "WRITE",
- "activityAccess": "WRITE",
- "roleAccess": "WRITE",
- "noteAccess": "WRITE",
- "role": "Business",
- "note": "Vacation",
- "activity": {
- "id": "1231141551161",
- "expiration": "NEVER",
- "available": true
}, - "idle": false,
- "available": true,
- "capabilities": [
- "MESSAGE",
- "PARTIAL_COLLABORATION",
- "SMS"
]
}, - "incall": false,
- "inlist": true,
- "diversionAccess": "NONE",
- "type": "DIRECTORY",
- "image": 12,
- "vcard": 113,
- "contactStatus": "FAVORITE",
- "preferredNumber": "+1231231",
- "email": "jack.jackson@example.com"
}
]
}Get information on alphabetic classification of all possible contacts for a user.
| domain required | string The domain of the user accessing the API. |
| user required | string The username of the user accessing the API. |
| orderby | string Enum: "firstname" "lastname" The primary field for sorting the result (ascending order). Default is lastname. The other sortable field will be used as secondary sort expression. |
| excludeFnrs | boolean Exclude function numbers from the result by providing this parameter with value 'true'. Otherwise, function numbers are included. |
How seven example contacts are divided over the english alphabet
{- "scope": {
- "totalItems": 8,
- "languageTag": "en",
- "sortStrategy": [
- {
- "field": "lastname",
- "order": "ascending"
}, - {
- "field": "firstname",
- "order": "ascending"
}
]
}, - "headers": [
- {
- "letter": "a",
- "caption": "A",
- "index": 1,
- "items": 1
}, - {
- "letter": "b",
- "caption": "B",
- "index": 2,
- "items": 2
}, - {
- "letter": "c",
- "caption": "C",
- "index": 4,
- "items": 1
}, - {
- "letter": "d",
- "caption": "D",
- "items": 0
}, - {
- "letter": "e",
- "caption": "E",
- "items": 0
}, - {
- "letter": "f",
- "caption": "F",
- "items": 0
}, - {
- "letter": "g",
- "caption": "H",
- "items": 0
}, - {
- "letter": "h",
- "caption": "H",
- "items": 0
}, - {
- "letter": "i",
- "caption": "I",
- "items": 0
}, - {
- "letter": "j",
- "caption": "J",
- "items": 0
}, - {
- "letter": "k",
- "caption": "K",
- "items": 0
}, - {
- "letter": "l",
- "caption": "L",
- "items": 0
}, - {
- "letter": "m",
- "caption": "M",
- "items": 0
}, - {
- "letter": "n",
- "caption": "N",
- "items": 0
}, - {
- "letter": "o",
- "caption": "O",
- "items": 0
}, - {
- "letter": "p",
- "caption": "P",
- "items": 0
}, - {
- "letter": "o",
- "caption": "O",
- "items": 0
}, - {
- "letter": "p",
- "caption": "P",
- "items": 0
}, - {
- "letter": "q",
- "caption": "Q",
- "items": 0
}, - {
- "letter": "r",
- "caption": "R",
- "items": 0
}, - {
- "letter": "r",
- "caption": "R",
- "items": 0
}, - {
- "letter": "s",
- "caption": "S",
- "index": 5,
- "items": 2
}, - {
- "letter": "t",
- "caption": "T",
- "index": 7,
- "items": 1
}, - {
- "letter": "u",
- "caption": "U",
- "items": 0
}, - {
- "letter": "v",
- "caption": "V",
- "index": 8,
- "items": 1
}, - {
- "letter": "w",
- "caption": "W",
- "items": 0
}, - {
- "letter": "x",
- "caption": "X",
- "items": 0
}, - {
- "letter": "y",
- "caption": "Y",
- "items": 0
}, - {
- "letter": "z",
- "caption": "Z",
- "items": 0
}
]
}Get a subset of all possible contacts, internal and external, for a user.
| domain required | string The domain of the user accessing the API. |
| user required | string The username of the user accessing the API. |
| index | integer <int32> The index number of the first item to get. Must be a positive integer. Default is 1 (first item). |
| items | integer <int32> The number of items to get. Must be an integer in the range 1-200. Default is 20. |
| orderby | string Enum: "firstname" "lastname" The primary field for sorting the result (ascending order). Default is lastname. The other sortable field will be used as secondary sort expression. |
| excludeFnrs | boolean Exclude function numbers from the result by providing this parameter with value 'true'. Otherwise, function numbers are included. |
Seven contacts ordered by lastname, default result size
{- "scope": {
- "index": 1,
- "items": 8,
- "totalItems": 8,
- "languageTag": "en",
- "sortStrategy": [
- {
- "field": "lastname",
- "order": "ascending"
}, - {
- "field": "firstname",
- "order": "ascending"
}
]
}, - "contacts": [
- {
- "key": "alice@example.com",
- "type": "directory",
- "contactEntryId": "Y29udGFjdElkQGV4YW1wbGUub3JnQGRpcmVjdG9yeQ",
- "header": "A",
- "firstname": "Alice",
- "lastname": "Alisson",
- "email": "alice@example.com",
- "phonenumbers": [
- {
- "number": "+46812345001",
- "type": "work"
}
], - "favorite": true,
- "chat": true,
- "vcard": 37
}, - {
- "key": "9@example.com",
- "type": "external",
- "contactEntryId": "Y29udGFjdElkQGV4YW1wbGUub3JnQGV4dGVybmFs",
- "header": "B",
- "firstname": "Vera",
- "lastname": "Barnes",
- "company": "Vera's",
- "phonenumbers": [
- {
- "number": "+467098765004",
- "type": "mobile"
}
], - "chat": false,
- "vcard": 37
}, - {
- "key": "bob@example.com",
- "type": "directory",
- "contactEntryId": "Y29udGFjdElkQGV4YW1wbGUub3JnQGRpcmVjdG9yeQ",
- "header": "B",
- "firstname": "Bob",
- "lastname": "Bobson",
- "email": "bob@example.com",
- "phonenumbers": [
- {
- "number": "+46812345002",
- "type": "work"
}, - {
- "number": "+467098765002",
- "type": "mobile"
}
], - "vip": true,
- "favorite": true,
- "chat": false,
- "vcard": 37
}, - {
- "key": "charles@anotherorg.com",
- "type": "directory",
- "contactEntryId": "Y29udGFjdElkQGV4YW1wbGUub3JnQGRpcmVjdG9yeQ",
- "header": "C",
- "firstname": "Charles",
- "lastname": "Charlson",
- "company": "Another org",
- "email": "charlie@another.org",
- "phonenumbers": [
- {
- "number": "+46812345003",
- "type": "work"
}
], - "chat": true,
- "vcard": 37
}, - {
- "key": "3@aexample.com",
- "type": "external",
- "contactEntryId": "Y29udGFjdElkQGV4YW1wbGUub3JnQGV4dGVybmFs",
- "header": "S",
- "firstname": "Sam",
- "lastname": "Samson",
- "company": "Sammys",
- "email": "sam@sammys.org",
- "phonenumbers": [
- {
- "number": "+467098765003",
- "type": "mobile"
}
], - "blocked": true,
- "chat": false,
- "vcard": 37
}, - {
- "key": "42@example.com",
- "type": "number",
- "contactEntryId": "Y29udGFjdElkQGV4YW1wbGUub3JnQG51bWJlcg",
- "header": "S",
- "firstname": "Support",
- "phonenumbers": [
- {
- "number": "+46812345004",
- "type": "work"
}
], - "chat": false,
- "imageUrl": "/api/contacts/info/example.com/42@example.com/image?ver=2",
- "vcard": 37
}, - {
- "key": "10@example.com",
- "type": "external",
- "contactEntryId": "Y29udGFjdElkQGV4YW1wbGUub3JnQGV4dGVybmFs",
- "header": "T",
- "company": "Taxi Tour",
- "email": "taxi@tour.org",
- "phonenumbers": [
- {
- "number": "+46812345005",
- "type": "work"
}
], - "chat": false,
- "vcard": 37
}, - {
- "key": "17@example.com",
- "type": "external",
- "contactEntryId": "Y29udGFjdElkQGV4YW1wbGUub3JnQGV4dGVybmFs",
- "header": "V",
- "firstname": "Alan",
- "lastname": "Vert",
- "company": "Alans diner",
- "phonenumbers": [
- {
- "number": "+467098765005",
- "type": "mobile"
}
], - "favorite": true,
- "chat": false,
- "vcard": 37
}
]
}Lookup matching contacts for a user by number. Contacts will be looked up in federated organizations if there are no matches in the user's own organization. Exchange contacts are only searched if there are no other matches. Note that the returned order of contacts is not defined. The user of the API is expected to reorder them as needed.
| domain required | string The domain of the organization. |
| user required | string The username of the user to lookup contacts for. |
| number required | string The number to lookup. |
| includeType | Array of strings Items Enum: "directory" "external" "number" "exchange" The type of contacts to include in the lookup. Multiple types can be stated. If not provided, directory, external and number are included. |
| maxHits | integer <int32> The number of contacts to return. If not provided, default is 25 contacts. |
| searchType | string Enum: "EXACT" "NORMALIZED" The type of lookup to conduct. Valid values are: |
Example lookup result
{- "number": "+463232112",
- "contacts": [
- {
- "contactEntryId": "MzM0MjIzQGV4YW1wbGUub3JnQGV4dGVybmFs",
- "contactType": "external",
- "contactList": "VIP",
- "firstname": "Carol",
- "lastname": "Clause",
- "vcard": 3,
- "preferredNumber": "+463232112",
- "email": "carol.clause@another.org",
- "phonenumbers": [
- {
- "number": "+463232112",
- "type": "work"
}
], - "address": { },
- "contactAccess": "READ",
- "contactListAccess": "WRITE",
- "contactId": "334223@internal"
}
]
}Add contact status for a user in contact list
| domain required | string The domain of the user accessing the API |
| user required | string The username of the user accessing the API |
| cid required | string The ID of the contact |
| contactStatus required | string Enum: "FAVORITE" "CONTACT" "VIP" "BLOCKED" The status of the contact. |
{- "contactStatus": "FAVORITE"
}The Contacts Information API has a set of commands to get more information and manipulate individual contacts. This is based on the presence authorization in Dstny Core. Contact management is authenticated using API tickets for Contact search.
Use the Contacts Information API to:
Retrieve a contact's information.
NOTE: This method is DEPRECATED since 5.7 and will be removed in future releases.
| domain required | string The domain of the contact |
| cid required | string The ID of the contact |
A directory contact
{- "id": "john@example.org",
- "firstname": "John",
- "lastname": "Doe",
- "company": "Example organization",
- "presence": {
- "futurePresenceAccess": "NONE",
- "activityAccess": "NONE",
- "roleAccess": "NONE",
- "noteAccess": "NONE",
- "capabilities": [
- "SMS"
]
}, - "inlist": false,
- "diversionAccess": "NONE",
- "type": "DIRECTORY",
- "vcard": 22,
- "contactStatus": "CONTACT",
- "preferredNumber": "+46812345001",
- "email": "john@example.org",
- "phonenumbers": [
- {
- "number": "+46456345001",
- "type": "mobile"
}
], - "faxNumber": "+46812349002"
}Retrieve a contact's availability. Response will be 'true' if the contact is available.
NOTE: This method is DEPRECATED since 5.7 and will be removed in future releases.
| domain required | string The domain of the contact |
| cid required | string The ID of the contact |
Fetches the contact image of the specified user in an organization.
NOTE: This method is DEPRECATED since 5.7 and will be removed in future releases.
| domain required | string The domain of the contact |
| cid required | string The ID of the contact |
| ver required | string The image version |
| prefWidth | integer <int32> Preferred width (pixels) |
| prefHeight | integer <int32> Preferred height (pixels) |
Retrieve a contact's call state. Response will be 'true' if the contact is in a call.
NOTE: This method is DEPRECATED since 5.7 and will be removed in future releases.
| domain required | string The domain of the contact |
| cid required | string The ID of the contact |
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.
NOTE: This method is DEPRECATED since 5.7 and will be removed in future releases.
| domain required | string The domain of the contact |
| cid required | string The ID of the contact |
| forcePremappedDiversion | string If set to 'true', activity diversion will override the premapped diversion. |
| updateMode | string Enum: "CHANGE" "CLEAR" "OVERRIDE" How the presence items note, role and activity should be updated. Valid values are: |
| role | string The current role of the contact |
| note | string The presence note |
object (com.telepo.api.contact.PresenceDTO.Activity) The presence activity of the contact |
{- "activity": {
- "id": "meeting",
- "expiration": "2010-10-11T05:30:00Z",
- "available": false
}, - "available": false
}{- "futurePresenceAccess": "NONE",
- "activityAccess": "NONE",
- "roleAccess": "NONE",
- "noteAccess": "NONE"
}Read the current activity expiration for a directory contact.
The response will be presented in UTC time format, yyyy-MM-dd'T'HH:mm:ss'Z'.
NOTE: This method is DEPRECATED since 5.7 and will be removed in future releases.
| domain required | string The domain of the contact |
| cid required | string The ID of the contact |
Update the note of a directory contact.
NOTE: This method is DEPRECATED since 5.7 and will be removed in future releases.
| domain required | string The domain of the contact |
| cid required | string The ID of the contact |
| note required | string The note |
Retrieve a contact's presence information.
NOTE: This method is DEPRECATED since 5.7 and will be removed in future releases.
| domain required | string The domain of the contact |
| cid required | string The ID of the contact |
{- "presence": {
- "futurePresenceAccess": "NONE",
- "activityAccess": "NONE",
- "roleAccess": "NONE",
- "noteAccess": "NONE"
}, - "forbidden": [
- "role",
- "activity",
- "note"
]
}Update the presence information for a directory contact, with information returned on which fields that failed to update. Note this is not an atomic API. The response will contain a set of fields (in forbidden tag) that were not allowed to change for a particular user. The response will also contain the new presence result. The fields that were allowed to change have their new values and the fields that was forbidden have their old value.
NOTE: This method is DEPRECATED since 5.7 and will be removed in future releases.
| domain required | string The domain of the contact |
| cid required | string The ID of the contact |
| forcePremappedDiversion | string If set to 'true', activity diversion will override the premapped diversion |
| updateMode | string Enum: "CHANGE" "CLEAR" "OVERRIDE" How the presence items note, role and activity should be updated. Valid values are: |
object (presence) The presence information for the contact. | |
| forbidden | Array of strings Contains one or multiple elements (fields) that the user does not have write access to. |
Unsuccessful
{- "activity": {
- "id": "meeting",
- "expiration": "2010-10-11T05:30:00Z",
- "available": false
}, - "available": false
}{- "presence": {
- "futurePresenceAccess": "NONE",
- "activityAccess": "NONE",
- "roleAccess": "NONE",
- "noteAccess": "NONE"
}, - "forbidden": [
- "role",
- "activity",
- "note"
]
}Retrieve a contact's vCard information.
NOTE: This method is DEPRECATED since 5.7 and will be removed in future releases.
| domain required | string The domain of the contact |
| cid required | string The ID of the contact |
| ver | string The vCard version |
{- "Description": {
- "TEL": [
- {
- "value": "+46812345001",
- "parseType": "Resource",
- "type": [
]
}, - {
- "value": "5001",
- "parseType": "Resource",
- "type": [
]
}
], - "group": [
- {
- "value": "Support",
- "parseType": "Resource"
}, - {
- "value": "Technical Support",
- "parseType": "Resource"
}
], - "field": [
- {
- "id": "field1",
- "value": "Field1 content"
}, - {
- "id": "field2",
- "value": "Field2 content"
}, - {
- "id": "field3",
- "value": "Field3 content"
}, - {
- "id": "field4",
- "value": "Field4 content"
}
], - "FN": "John Doe",
- "N": {
- "parseType": "Resource",
- "Family": "Doe",
- "Given": "John"
}, - "ADR": {
- "parseType": "Resource",
- "Country": "Sweden",
- "Pcode": "Stockholm",
- "Locality": "111 11",
- "Street": "Example Street 1"
}, - "EMAIL": {
- "value": "john.doe@example.org",
- "parseType": "Resource"
}, - "ORG": {
- "parseType": "Resource",
- "Orgunit": "Support",
- "Orgname": "Example Organisation"
}
}
}Update a contact's vCard information.
NOTE: This method is DEPRECATED since 5.7 and will be removed in future releases.
| domain required | string The domain of the contact |
| cid required | string The ID of the contact |
required | object (com.telepo.api.contact.vcard.VcardDTO.Desc) Contact description |
{- "Description": {
- "TEL": [
- {
- "value": "+46812345001",
- "type": [
]
}, - {
- "value": "5001",
- "type": [
]
}
], - "group": [
- {
- "value": "Support"
}, - {
- "value": "Technical Support"
}
], - "N": {
- "Family": "Doe",
- "Given": "John"
}, - "ADR": {
- "Country": "Sweden",
- "Pcode": "Stockholm",
- "Locality": "111 11",
- "Street": "Example Street 1"
}, - "EMAIL": {
- "value": "john.doe@example.org"
}, - "ORG": {
- "Orgunit": "Support",
- "Orgname": "Example Organisation"
}
}
}{- "field": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": "string",
- "name": "baduser@baddomain.com"
}
], - "warning": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": "string",
- "name": "baduser@baddomain.com"
}
], - "generated-id": "string"
}Retrieve a contact's directory fields.
NOTE: This method is DEPRECATED since 5.7 and will be removed in future releases.
| domain required | string The domain of the contact |
| cid required | string The ID of the contact |
{- "field": [
- {
- "id": "field1",
- "label": "Label1",
- "currentValue": "Field1",
- "editable": true
}, - {
- "id": "field2",
- "currentValue": "Field2",
- "editable": true
}, - {
- "id": "field3",
- "label": "Field3",
- "currentValue": "Field3",
- "editable": true
}, - {
- "id": "field4",
- "currentValue": "Field4",
- "editable": true
}
]
}Update a contact's directory fields.
NOTE: This method is DEPRECATED since 5.7 and will be removed in future releases.
| domain required | string The domain of the contact |
| cid required | string The ID of the contact. |
Array of objects (com.telepo.api.config.mobile.FieldDTO) List of fields. |
{ "field": [ { "id": "field1", "currentValue": "Field1", "requestedValue": "Field1" }, { "id": "field2", "currentValue": "Field2", "requestedValue": "Field2" }, { "id": "field3", "currentValue": "Field3", "requestedValue": "Field3" }, { "id": "field4", "currentValue": "Field4", "requestedValue": "Field4" } ] }
{- "field": [
- {
- "id": "field1",
- "currentValue": "Field1",
- "requestedValue": "Field1"
}, - {
- "id": "field2",
- "currentValue": "Field2",
- "requestedValue": "Field2"
}, - {
- "id": "field3",
- "currentValue": "Field3",
- "requestedValue": "Field3"
}, - {
- "id": "field4",
- "currentValue": "Field4",
- "requestedValue": "Field4"
}
]
}Update the current presence activity of a directory contact.
NOTE: This method is DEPRECATED since 5.7 and will be removed in future releases.
| domain required | string The domain of the contact |
| cid required | string The ID of the contact |
| activity required | string The presence activity |
| available | boolean The availability |
Update the expiration time of the current presence activity for a directory contact.
NOTE: This method is DEPRECATED since 5.7 and will be removed in future releases.
| 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. |
Update the presence role of a directory contact.
NOTE: This method is DEPRECATED since 5.7 and will be removed in future releases.
| domain required | string The domain of the contact |
| cid required | string The ID of the contact |
| role required | string The presence role |
The Contacts Information V1 API is used to read and modify individual contacts. Most operations are based on the presence authorization framework in Dstny Core and are applicable for directory contacts only. All methods in this API can accept a Contact Entry ID to be stated in place of a Contact ID. Contact management is authenticated using API tickets for Contact search.
Use the Contacts Information V1 API to:
Read presence events for a directory contact in an organization, either as structure or in 'application/pidf+xml' format, see RFC3863/RFC4480/4481/RFC4482.
When fetching information in PIDF format, only domain and cid shall be used as input parameters.
| domain required | string The domain of the organization |
| cid required | string The ID of the directory contact, including domain |
| 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. |
| expandRecurrence | string If set to true, the recurrence data should be expanded in the response. Default is false. |
| eventType | string The type of events to include in the result. Valid values are: |
| cachedCalendar | boolean Fetch only synchronized calendar events when value is true, i.e. the response will only contain events that are within 24 hours. If cachedCalendar is not set, it will default to false. |
{- "presence": [
- {
- "role": "business",
- "note": "Daily standup",
- "presenceId": "3",
- "activity": "meeting",
- "priority": 0,
- "name": "Standup meeting",
- "source": "INTERNAL",
- "modifiable": true,
- "deleted": false,
- "futurePresenceAccess": "WRITE",
- "activityAccess": "WRITE",
- "roleAccess": "WRITE",
- "noteAccess": "WRITE",
- "dt-start": "2021-02-01T08:30:00Z",
- "dt-end": "2021-02-01T09:00:00Z",
- "tzid": "Europe/Stockholm",
- "instances": [
- {
- "deleted": false,
- "dt-start": "2021-02-01T09:30:00Z",
- "dt-end": "2021-02-01T10:00:00Z",
- "instanceId": "1612168200000"
}, - {
- "deleted": false,
- "dt-start": "2021-02-02T09:30:00Z",
- "dt-end": "2021-02-02T10:00:00Z",
- "instanceId": "1612254600000"
}
], - "recur": {
- "freq": "WEEKLY",
- "byday": "MO,TU,WE,TH"
}
}, - {
- "role": "business",
- "note": "Lunch",
- "presenceId": "1",
- "activity": "lunch",
- "priority": 0,
- "name": "Lunch",
- "source": "INTERNAL",
- "modifiable": true,
- "deleted": false,
- "futurePresenceAccess": "WRITE",
- "activityAccess": "WRITE",
- "roleAccess": "WRITE",
- "noteAccess": "WRITE",
- "dt-start": "2021-01-10T11:00:00Z",
- "dt-end": "2021-01-10T12:00:00Z",
- "tzid": "Europe/Stockholm",
- "instances": [
- {
- "deleted": false,
- "dt-start": "2021-02-01T12:00:00Z",
- "dt-end": "2021-02-01T13:00:00Z",
- "instanceId": "1612341000000"
}, - {
- "deleted": false,
- "dt-start": "2021-02-02T12:00:00Z",
- "dt-end": "2021-02-02T13:00:00Z",
- "instanceId": "1612427400000"
}
], - "recur": {
- "until": "2021-02-14T23:00:00Z",
- "freq": "DAILY"
}
}
], - "calendar-sync-status": "calendar-sync-not-enabled"
}Update the presence state for a directory contact in an organization. The presence is provided in 'application/pidf+xml' format, see RFC3863/RFC4480/4481/RFC4482.
| domain required | string The domain of the organization |
| cid required | string The ID of the directory contact, including domain |
{- "field": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": "string",
- "name": "baduser@baddomain.com"
}
], - "warning": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": "string",
- "name": "baduser@baddomain.com"
}
], - "generated-id": "string"
}Create a scheduled presence event for a directory contact in an organization.
| domain required | string The domain of the organization |
| cid required | string The ID of the directory contact, including domain |
| role | string A role type. Eg. business or private. Role types can be managed under 'Presence states/Roles' in the 'Admin view'. |
| note | string A string containing a note, maximum 250 characters long. |
| presenceId | string An identifier of this future presence to be used in URL for methods(GET/PUT/DELETE) operating on a specific future presence. |
| activity | string An activity type. Eg. free, busy, lunch, meeting. Activity types can be managed under 'Presence states/Activities' in the 'Admin view'. |
| priority | integer <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 | string The name of the scheduled activity. |
| busyType | string Enum: "FREE" "TENTATIVE" "BUSY" "OOF" "WORKING_ELSEWHERE" The free/busy type of the external calendar event. |
| source | string The source of the presence item. Values are INTERNAL for client app created items and CALENDAR for items synchronized from external calendar. |
| modifiable | boolean A boolean value denoting whether the presence item is modifiable (i.e. a locally created item) or not modifiable (synced from external calendar). |
| deleted | boolean 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 | boolean Indicate if the external calendar event is set to private. |
| dt-start | string The start date and time for activity. Standard XML schema formatted date string in UTC format. Eg. 2020-04-04T09:00:00Z |
| dt-end | string The end date and time for activity. Can be max 30 days apart from dt-start. Eg. 2020-04-04T09:00:00Z |
| tzid | string The timezone for the dt-start and dt-end value. |
Array of objects (com.telepo.api.contact.PresenceInstanceDto) List of presence instances, only presented when expandRecurrance is set to true in the request. | |
object (com.telepo.api.contact.RecurrenceDTO) Recurrence settings |
{- "role": "business",
- "note": "Coffee time",
- "activity": "out_of_office",
- "priority": 0,
- "name": "Coffe break",
- "source": "INTERNAL",
- "modifiable": true,
- "deleted": false,
- "futurePresenceAccess": "WRITE",
- "activityAccess": "WRITE",
- "roleAccess": "WRITE",
- "noteAccess": "WRITE",
- "dt-start": "2021-01-10T14:30:00Z",
- "dt-end": "2021-01-10T14:45:00Z",
- "tzid": "Europe/Stockholm",
- "recur": {
- "freq": "WEEKLY",
- "byday": "MO,TU,WE,TH"
}
}{- "role": "business",
- "note": "Coffee time",
- "presenceId": "4",
- "activity": "out_of_office",
- "priority": 0,
- "name": "Coffe break",
- "source": "INTERNAL",
- "modifiable": true,
- "deleted": false,
- "futurePresenceAccess": "WRITE",
- "activityAccess": "WRITE",
- "roleAccess": "WRITE",
- "noteAccess": "WRITE",
- "dt-start": "2021-01-10T14:30:00Z",
- "dt-end": "2021-01-10T14:45:00Z",
- "tzid": "Europe/Stockholm",
- "recur": {
- "freq": "WEEKLY",
- "byday": "MO,TU,WE,TH"
}
}Read a specific scheduled presence for a directory contact in an organization.
| domain required | string The domain of the organization |
| cid required | string The ID of the directory contact, including domain |
| presenceId required | string The ID of the scheduled presence change |
{- "role": "business",
- "note": "Daily standup",
- "presenceId": "3",
- "activity": "meeting",
- "priority": 0,
- "name": "Standup meeting",
- "source": "INTERNAL",
- "modifiable": true,
- "deleted": false,
- "futurePresenceAccess": "WRITE",
- "activityAccess": "WRITE",
- "roleAccess": "WRITE",
- "noteAccess": "WRITE",
- "dt-start": "2021-02-01T08:30:00Z",
- "dt-end": "2021-02-01T09:00:00Z",
- "tzid": "Europe/Stockholm",
- "recur": {
- "freq": "WEEKLY",
- "byday": "MO,TU,WE,TH"
}
}Update a specific scheduled presence change for a directory contact in an organization.
| domain required | string The domain of the organization |
| cid required | string The ID of the directory contact, including domain |
| presenceId required | string The ID of the scheduled presence |
| role | string A role type. Eg. business or private. Role types can be managed under 'Presence states/Roles' in the 'Admin view'. |
| note | string A string containing a note, maximum 250 characters long. |
| presenceId | string An identifier of this future presence to be used in URL for methods(GET/PUT/DELETE) operating on a specific future presence. |
| activity | string An activity type. Eg. free, busy, lunch, meeting. Activity types can be managed under 'Presence states/Activities' in the 'Admin view'. |
| priority | integer <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 | string The name of the scheduled activity. |
| busyType | string Enum: "FREE" "TENTATIVE" "BUSY" "OOF" "WORKING_ELSEWHERE" The free/busy type of the external calendar event. |
| source | string The source of the presence item. Values are INTERNAL for client app created items and CALENDAR for items synchronized from external calendar. |
| modifiable | boolean A boolean value denoting whether the presence item is modifiable (i.e. a locally created item) or not modifiable (synced from external calendar). |
| deleted | boolean 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 | boolean Indicate if the external calendar event is set to private. |
| dt-start | string The start date and time for activity. Standard XML schema formatted date string in UTC format. Eg. 2020-04-04T09:00:00Z |
| dt-end | string The end date and time for activity. Can be max 30 days apart from dt-start. Eg. 2020-04-04T09:00:00Z |
| tzid | string The timezone for the dt-start and dt-end value. |
Array of objects (com.telepo.api.contact.PresenceInstanceDto) List of presence instances, only presented when expandRecurrance is set to true in the request. | |
object (com.telepo.api.contact.RecurrenceDTO) Recurrence settings |
{- "role": "business",
- "note": "Daily standup",
- "presenceId": "3",
- "activity": "meeting",
- "priority": 0,
- "name": "Standup meeting",
- "source": "INTERNAL",
- "modifiable": true,
- "deleted": false,
- "futurePresenceAccess": "WRITE",
- "activityAccess": "WRITE",
- "roleAccess": "WRITE",
- "noteAccess": "WRITE",
- "dt-start": "2021-02-01T08:30:00Z",
- "dt-end": "2021-02-01T09:00:00Z",
- "tzid": "Europe/Stockholm",
- "recur": {
- "freq": "WEEKLY",
- "byday": "MO,TU,WE,TH"
}
}{- "field": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": "string",
- "name": "baduser@baddomain.com"
}
], - "warning": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": "string",
- "name": "baduser@baddomain.com"
}
], - "generated-id": "string"
}Delete a scheduled presence for a directory contact in an organization.
| domain required | string The domain of the organization |
| cid required | string The ID of the directory contact, including domain |
| presenceId required | string The ID of the scheduled presence |
| startDate | string Delete from date in UTC format. Eg. 2020-04-01T00:00:00Z |
| untilDate | string Delete to date in UTC format. Eg. 2020-05-01T00:00:00Z |
{- "field": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": "string",
- "name": "baduser@baddomain.com"
}
], - "warning": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": "string",
- "name": "baduser@baddomain.com"
}
], - "generated-id": "string"
}Read information about a contact in an organization
| domain required | string The domain of the organization |
| cid required | string The ID of the contact, including domain |
| includeFields | boolean Whether directory fields of directory contacts should be included. Note that including fields will increase the response time. Default is false. |
A directory contact, including fields
{- "id": "john@example.org",
- "firstname": "John",
- "lastname": "Doe",
- "company": "Example organization",
- "presence": {
- "futurePresenceAccess": "NONE",
- "activityAccess": "NONE",
- "roleAccess": "NONE",
- "noteAccess": "NONE",
- "capabilities": [
- "SMS"
]
}, - "inlist": false,
- "diversionAccess": "NONE",
- "type": "DIRECTORY",
- "vcard": 22,
- "contactStatus": "CONTACT",
- "preferredNumber": "+46812345001",
- "email": "john@example.org",
- "phonenumbers": [
- {
- "number": "+46456345001",
- "type": "mobile"
}
], - "faxNumber": "+46812349002",
- "contactEntryId": "Y29udGFjdElkQGV4YW1wbGUub3JnQGRpcmVjdG9yeQ",
- "fields": {
- "fields": [
- {
- "id": "field1",
- "label": "Manager",
- "value": "James"
}, - {
- "id": "field2",
- "label": "Work title",
- "value": "Account manager"
}, - {
- "id": "field4",
- "label": "ICE contact",
- "value": "+4681234567"
}
]
}
}Read directory field information for a directory contact in an organization. Available fields are visible fields with a configured value, or fields that can be edited by the calling user.
| domain required | string The domain of the organization |
| cid required | string The ID of the directory contact, including domain. |
Get visible fields for another user (Searchable fields with a configured value, or fields the calling user is allowed to edit)
{- "fields": [
- {
- "id": "field1",
- "label": "Manager",
- "value": "James",
- "editable": false
}, - {
- "id": "field3",
- "label": "Work office",
- "value": "A57",
- "editable": false
}, - {
- "id": "field4",
- "label": "ICE contact",
- "value": "+4681234567",
- "editable": false
}, - {
- "id": "field5",
- "label": "Hobbies",
- "editable": false
}, - {
- "id": "field7",
- "label": "Salary class",
- "value": "37",
- "editable": false
}
]
}Update directory fields for a directory contact. All provided fields will be updated with the requested value, so take care not to include fields that should not change.
| domain required | string The domain of the organization |
| cid required | string The ID of the directory contact, including domain. |
Array of objects (com.telepo.api.contact.DirectoryFieldInfoDTO) The directory fields. |
Request to modify two values and delete one
{- "fields": [
- {
- "id": "field4",
- "requestedValue": "+4681234499"
}, - {
- "id": "field5",
- "requestedValue": "Sailing, skiing, hiking"
}, - {
- "id": "field8"
}
]
}{- "field": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": "string",
- "name": "baduser@baddomain.com"
}
], - "warning": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": "string",
- "name": "baduser@baddomain.com"
}
], - "generated-id": "string"
}Read the image of a directory contact in an organization.
| domain required | string The domain of the organization |
| cid required | string The ID of the contact, including domain |
| ver | string The image version. Not used as only the current version is maintained |
| prefWidth | integer <int32> Preferred width (pixels) |
| prefHeight | integer <int32> Preferred height (pixels) |
Read the line state of an accessible contact (directory contact or mobile subscriber) in an organization. Response will be 'true' if the contact is in a call.
| domain required | string The domain of the organization |
| cid required | string The ID of the contact, including domain. Use userid@domain to read linestate of a user, or number@domain to read linestate of a mobile subscriber. |
Update the current presence note of a directory contact in an organization.
| domain required | string The domain of the organization |
| cid required | string The ID of the directory contact, including domain |
| note | string The note to set |
| ver | string Version number (not used) |
Read vCard information for a contact in an organization.
| domain required | string The domain of the organization |
| cid required | string The ID of the contact, including domain, or the phone number of the contact |
| ver | string The vCard version |
{- "Description": {
- "TEL": [
- {
- "value": "+46812345001",
- "parseType": "Resource",
- "type": [
]
}, - {
- "value": "5001",
- "parseType": "Resource",
- "type": [
]
}
], - "group": [
- {
- "value": "Support",
- "parseType": "Resource"
}, - {
- "value": "Technical Support",
- "parseType": "Resource"
}
], - "field": [
- {
- "id": "field1",
- "value": "Field1 content"
}, - {
- "id": "field2",
- "value": "Field2 content"
}, - {
- "id": "field3",
- "value": "Field3 content"
}, - {
- "id": "field4",
- "value": "Field4 content"
}
], - "FN": "John Doe",
- "N": {
- "parseType": "Resource",
- "Family": "Doe",
- "Given": "John"
}, - "ADR": {
- "parseType": "Resource",
- "Country": "Sweden",
- "Pcode": "Stockholm",
- "Locality": "111 11",
- "Street": "Example Street 1"
}, - "EMAIL": {
- "value": "john.doe@example.org",
- "parseType": "Resource"
}, - "ORG": {
- "parseType": "Resource",
- "Orgunit": "Support",
- "Orgname": "Example Organisation"
}
}
}Update vCard information for a personal contact in the organization.
| domain required | string The domain of the organization |
| cid required | string The ID of the personal contact, including domain |
required | object (com.telepo.api.contact.vcard.VcardDTO.Desc) Contact description |
{- "Description": {
- "TEL": [
- {
- "value": "+46812345001",
- "type": [
]
}, - {
- "value": "5001",
- "type": [
]
}
], - "group": [
- {
- "value": "Support"
}, - {
- "value": "Technical Support"
}
], - "N": {
- "Family": "Doe",
- "Given": "John"
}, - "ADR": {
- "Country": "Sweden",
- "Pcode": "Stockholm",
- "Locality": "111 11",
- "Street": "Example Street 1"
}, - "EMAIL": {
- "value": "john.doe@example.org"
}, - "ORG": {
- "Orgunit": "Support",
- "Orgname": "Example Organisation"
}
}
}{- "field": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": "string",
- "name": "baduser@baddomain.com"
}
], - "warning": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": "string",
- "name": "baduser@baddomain.com"
}
], - "generated-id": "string"
}List the supported time zone ID values and their offset values
| when | string Calculate offsets for this given date Standard XML schema formatted date string in UTC format. Eg. 2021-01-01T09:00:00Z |
| tzid | string Set to a time zone ID to view only that timezone. Useful when the offset for a time zone is wanted. |
{- "timezone": [
- {
- "region": "America",
- "city": "Montreal",
- "offset": "-18000000",
- "tzid": "America/Montreal"
}, - {
- "region": "Europe",
- "city": "Stockholm",
- "offset": "3600000",
- "tzid": "Europe/Stockholm"
}, - {
- "region": "Etc",
- "city": "GMT",
- "offset": "0",
- "tzid": "Etc/GMT"
}
]
}Update the current presence activity of a directory contact in an organization.
| domain required | string The domain of the organization |
| cid required | string The ID of the directory contact, including domain |
| activity required | string The presence activity to set |
| available | boolean The availability to set for the activity. If not provided, the default availability of the activity will be set. |
Update the expiration time of the current presence activity for a directory contact in an organization.
| domain required | string The domain of the organization |
| cid required | string The ID of the directory contact, including domain |
| expires required | string The activity expires string, or 'never' if the activity should not have an expiry time. |
Update the current presence role of a directory contact in an organization.
| domain required | string The domain of the organization |
| cid required | string The ID of the directory contact, including domain |
| role required | string The presence role to set |
Produces an SSE stream of linestate events for a contact in an organization, in application/dialog-info+xml format, see RFC4235.
| domain required | string The domain of the organization |
| cid required | string The ID of the contact, including domain |
Produces an SSE stream of presence states for a directory contact in an organization, in 'application/pidf+xml' format, see RFC3863/RFC4480/4481/RFC4482.
| domain required | string The domain of the organization |
| cid required | string The ID of the directory contact, including domain |
The Personal Contacts API is used to manage contact list for all users at user/group/organization level in a specific organization.
Use the Personal Contacts API to:
List all contacts for a user in the organization.
| domain required | string The domain of the user that owns the contacts |
| user required | string The username of the user that owns the contacts |
{- "personal_contact": [
- {
- "cid": "167271@internal",
- "company": "MinFirma AB",
- "department": "Rnd",
- "firstname": "John",
- "lastname": "Doe",
- "shortname": "jodo",
- "email": "info@example.com",
- "street": "Firmagatan 1",
- "city": "Stockholm",
- "postalcode": "12177",
- "country": "Sweden",
- "speeddial": 5,
- "showInDefaultContactList": true,
- "contactStatus": "VIP",
- "ownerType": "USER",
- "phoneNumbers": [
- {
- "type": "WORK",
- "phoneNumber": "+46850654760",
- "preferredNumber": true
}
]
}, - {
- "cid": "167271@internal",
- "company": "MinFirma AB",
- "department": "Support",
- "firstname": "Bob",
- "lastname": "Dilen",
- "shortname": "bodi",
- "email": "info@example.com",
- "street": "Firmagatan 1",
- "city": "Stockholm",
- "postalcode": "12177",
- "country": "Sweden",
- "speeddial": 7,
- "showInDefaultContactList": true,
- "contactStatus": "FAVORITE",
- "ownerType": "USER",
- "phoneNumbers": [
- {
- "type": "MAIN",
- "phoneNumber": "+46890657890",
- "preferredNumber": true
}
]
}
]
}Create a contact for a user in the organization.
| domain required | string The domain of the user that owns the contact |
| user required | string The username of the user that owns the contact |
| cid | string The ID of the contact. Required when updating a contact. |
| company | string <= 64 characters The company of the contact. |
| department | string <= 64 characters The department that the contact belongs to. |
| firstname | string <= 64 characters The first name of the contact. A string preferably without spaces as it is not possible to search for first name together with last name if either has a space in the name. |
| lastname | string <= 64 characters The last name of the contact. A string preferably without spaces as it is not possible to search for first name together with last name if either has a space in the name. |
| shortname | string <= 64 characters The short name of the contact. A string preferably without spaces as it is not possible to search for first name together with last name if either has a space in the name. |
string <= 64 characters The email of the contact. | |
| street | string <= 64 characters The street address of the contact. |
| city | string <= 64 characters The city of residence for the contact. |
| postalcode | string <= 64 characters The postal code of the address of the contact. |
| country | string <= 64 characters The country of residence for the contact. |
| speeddial | integer <int32> [ 1 .. 10 ] The speed dial number. The value should be an integer in range from 1 to 10. |
| showInDefaultContactList | boolean If set to 'true' then the contact is shown in the default contact list. Otherwise set to 'false'. |
| contactStatus | string Enum: "FAVORITE" "CONTACT" "VIP" "BLOCKED" The status of the contact. Default is 'CONTACT'. |
Array of objects (com.telepo.api.contact.PhoneNumberDto) A list of phone numbers for the contact. |
{- "company": "MinFirma AB",
- "department": "Rnd",
- "firstname": "John",
- "lastname": "Doe",
- "shortname": "jodo",
- "email": "info@example.com",
- "street": "Firmagatan 1",
- "city": "Stockholm",
- "postalcode": "12177",
- "country": "Sweden",
- "speeddial": 5,
- "showInDefaultContactList": true,
- "contactStatus": "VIP",
- "phoneNumbers": [
- {
- "type": "WORK",
- "phoneNumber": "+46850654760",
- "preferredNumber": true
}
]
}{- "cid": "167271@internal",
- "company": "MinFirma AB",
- "department": "Rnd",
- "firstname": "John",
- "lastname": "Doe",
- "shortname": "jodo",
- "email": "info@example.com",
- "street": "Firmagatan 1",
- "city": "Stockholm",
- "postalcode": "12177",
- "country": "Sweden",
- "speeddial": 5,
- "showInDefaultContactList": true,
- "contactStatus": "VIP",
- "ownerType": "USER",
- "phoneNumbers": [
- {
- "type": "WORK",
- "phoneNumber": "+46850654760",
- "preferredNumber": true
}
]
}List all contacts for a user group in the organization.
| domain required | string The domain of the user group that owns the contacts |
| groupId required | string The name of the user group that owns the contacts |
{- "personal_contact": [
- {
- "cid": "167271@internal",
- "company": "MinFirma AB",
- "department": "Rnd",
- "firstname": "John",
- "lastname": "Doe",
- "shortname": "jodo",
- "email": "info@example.com",
- "street": "Firmagatan 1",
- "city": "Stockholm",
- "postalcode": "12177",
- "country": "Sweden",
- "speeddial": 5,
- "showInDefaultContactList": true,
- "contactStatus": "VIP",
- "ownerType": "GROUP",
- "phoneNumbers": [
- {
- "type": "WORK",
- "phoneNumber": "+46850654760",
- "preferredNumber": true,
- "abbreviatednumber": "4760"
}
]
}, - {
- "cid": "167271@internal",
- "company": "MinFirma AB",
- "department": "Support",
- "firstname": "Bob",
- "lastname": "Dilen",
- "shortname": "bodi",
- "email": "info@example.com",
- "street": "Firmagatan 1",
- "city": "Stockholm",
- "postalcode": "12177",
- "country": "Sweden",
- "speeddial": 7,
- "showInDefaultContactList": true,
- "contactStatus": "FAVORITE",
- "ownerType": "GROUP",
- "phoneNumbers": [
- {
- "type": "MAIN",
- "phoneNumber": "+46890657890",
- "preferredNumber": true,
- "abbreviatednumber": "7890"
}
]
}
]
}Create a contact for a user group in the organization.
| domain required | string The domain of the user group that owns the contact |
| groupId required | string The name of the user group that owns the contact |
| cid | string The ID of the contact. Required when updating a contact. |
| company | string <= 64 characters The company of the contact. |
| department | string <= 64 characters The department that the contact belongs to. |
| firstname | string <= 64 characters The first name of the contact. A string preferably without spaces as it is not possible to search for first name together with last name if either has a space in the name. |
| lastname | string <= 64 characters The last name of the contact. A string preferably without spaces as it is not possible to search for first name together with last name if either has a space in the name. |
| shortname | string <= 64 characters The short name of the contact. A string preferably without spaces as it is not possible to search for first name together with last name if either has a space in the name. |
string <= 64 characters The email of the contact. | |
| street | string <= 64 characters The street address of the contact. |
| city | string <= 64 characters The city of residence for the contact. |
| postalcode | string <= 64 characters The postal code of the address of the contact. |
| country | string <= 64 characters The country of residence for the contact. |
| speeddial | integer <int32> [ 1 .. 10 ] The speed dial number. The value should be an integer in range from 1 to 10. |
| showInDefaultContactList | boolean If set to 'true' then the contact is shown in the default contact list. Otherwise set to 'false'. |
| contactStatus | string Enum: "FAVORITE" "CONTACT" "VIP" "BLOCKED" The status of the contact. Default is 'CONTACT'. |
Array of objects (com.telepo.api.contact.PhoneNumberDto) A list of phone numbers for the contact. |
{- "company": "MinFirma AB",
- "department": "Rnd",
- "firstname": "John",
- "lastname": "Doe",
- "shortname": "jodo",
- "email": "info@example.com",
- "street": "Firmagatan 1",
- "city": "Stockholm",
- "postalcode": "12177",
- "country": "Sweden",
- "speeddial": 5,
- "showInDefaultContactList": true,
- "contactStatus": "VIP",
- "phoneNumbers": [
- {
- "type": "WORK",
- "phoneNumber": "+46850654760",
- "preferredNumber": true,
- "abbreviatednumber": "4760"
}
]
}{- "cid": "167271@internal",
- "company": "MinFirma AB",
- "department": "Rnd",
- "firstname": "John",
- "lastname": "Doe",
- "shortname": "jodo",
- "email": "info@example.com",
- "street": "Firmagatan 1",
- "city": "Stockholm",
- "postalcode": "12177",
- "country": "Sweden",
- "speeddial": 5,
- "showInDefaultContactList": true,
- "contactStatus": "VIP",
- "ownerType": "GROUP",
- "phoneNumbers": [
- {
- "type": "WORK",
- "phoneNumber": "+46850654760",
- "preferredNumber": true,
- "abbreviatednumber": "4760"
}
]
}List all contacts on organization level when requested by an administrator.
| domain required | string The domain of the organization that owns the contacts |
{- "personal_contact": [
- {
- "cid": "167271@internal",
- "company": "MinFirma AB",
- "department": "Rnd",
- "firstname": "John",
- "lastname": "Doe",
- "shortname": "jodo",
- "email": "info@example.com",
- "street": "Firmagatan 1",
- "city": "Stockholm",
- "postalcode": "12177",
- "country": "Sweden",
- "speeddial": 5,
- "showInDefaultContactList": true,
- "contactStatus": "VIP",
- "ownerType": "ORG",
- "phoneNumbers": [
- {
- "type": "WORK",
- "phoneNumber": "+46850654760",
- "preferredNumber": true,
- "abbreviatednumber": "4760"
}
]
}, - {
- "cid": "167271@internal",
- "company": "MinFirma AB",
- "department": "Support",
- "firstname": "Bob",
- "lastname": "Dilen",
- "shortname": "bodi",
- "email": "info@example.com",
- "street": "Firmagatan 1",
- "city": "Stockholm",
- "postalcode": "12177",
- "country": "Sweden",
- "speeddial": 7,
- "showInDefaultContactList": true,
- "contactStatus": "FAVORITE",
- "ownerType": "ORG",
- "phoneNumbers": [
- {
- "type": "MAIN",
- "phoneNumber": "+46890657890",
- "preferredNumber": true,
- "abbreviatednumber": "7890"
}
]
}
]
}Creates contact on organization level when requested by an administrator.
| domain required | string The domain of the organization that owns the contact |
| cid | string The ID of the contact. Required when updating a contact. |
| company | string <= 64 characters The company of the contact. |
| department | string <= 64 characters The department that the contact belongs to. |
| firstname | string <= 64 characters The first name of the contact. A string preferably without spaces as it is not possible to search for first name together with last name if either has a space in the name. |
| lastname | string <= 64 characters The last name of the contact. A string preferably without spaces as it is not possible to search for first name together with last name if either has a space in the name. |
| shortname | string <= 64 characters The short name of the contact. A string preferably without spaces as it is not possible to search for first name together with last name if either has a space in the name. |
string <= 64 characters The email of the contact. | |
| street | string <= 64 characters The street address of the contact. |
| city | string <= 64 characters The city of residence for the contact. |
| postalcode | string <= 64 characters The postal code of the address of the contact. |
| country | string <= 64 characters The country of residence for the contact. |
| speeddial | integer <int32> [ 1 .. 10 ] The speed dial number. The value should be an integer in range from 1 to 10. |
| showInDefaultContactList | boolean If set to 'true' then the contact is shown in the default contact list. Otherwise set to 'false'. |
| contactStatus | string Enum: "FAVORITE" "CONTACT" "VIP" "BLOCKED" The status of the contact. Default is 'CONTACT'. |
Array of objects (com.telepo.api.contact.PhoneNumberDto) A list of phone numbers for the contact. |
{- "company": "MinFirma AB",
- "department": "Rnd",
- "firstname": "John",
- "lastname": "Doe",
- "shortname": "jodo",
- "email": "info@example.com",
- "street": "Firmagatan 1",
- "city": "Stockholm",
- "postalcode": "12177",
- "country": "Sweden",
- "speeddial": 5,
- "showInDefaultContactList": true,
- "contactStatus": "VIP",
- "phoneNumbers": [
- {
- "type": "WORK",
- "phoneNumber": "+46850654760",
- "preferredNumber": true,
- "abbreviatednumber": "4760"
}
]
}{- "cid": "167271@internal",
- "company": "MinFirma AB",
- "department": "Rnd",
- "firstname": "John",
- "lastname": "Doe",
- "shortname": "jodo",
- "email": "info@example.com",
- "street": "Firmagatan 1",
- "city": "Stockholm",
- "postalcode": "12177",
- "country": "Sweden",
- "speeddial": 5,
- "showInDefaultContactList": true,
- "contactStatus": "VIP",
- "ownerType": "ORG",
- "phoneNumbers": [
- {
- "type": "WORK",
- "phoneNumber": "+46850654760",
- "preferredNumber": true,
- "abbreviatednumber": "4760"
}
]
}Retrieve the specific contact for a user in the organization.
| domain required | string The domain of the user that owns the contact |
| user required | string The username of the user that owns the contact |
| cid required | string The ID of the contact |
{- "cid": "167271@internal",
- "company": "MinFirma AB",
- "department": "Rnd",
- "firstname": "John",
- "lastname": "Doe",
- "shortname": "jodo",
- "email": "info@example.com",
- "street": "Firmagatan 1",
- "city": "Stockholm",
- "postalcode": "12177",
- "country": "Sweden",
- "speeddial": 5,
- "showInDefaultContactList": true,
- "contactStatus": "VIP",
- "ownerType": "USER",
- "phoneNumbers": [
- {
- "type": "WORK",
- "phoneNumber": "+46850654760",
- "preferredNumber": true
}
]
}Update the specific contact for a user in the organization.
| domain required | string The domain of the user that owns the contact |
| user required | string The username of the user that owns the contact |
| cid required | string The ID of the contact |
| cid | string The ID of the contact. Required when updating a contact. |
| company | string <= 64 characters The company of the contact. |
| department | string <= 64 characters The department that the contact belongs to. |
| firstname | string <= 64 characters The first name of the contact. A string preferably without spaces as it is not possible to search for first name together with last name if either has a space in the name. |
| lastname | string <= 64 characters The last name of the contact. A string preferably without spaces as it is not possible to search for first name together with last name if either has a space in the name. |
| shortname | string <= 64 characters The short name of the contact. A string preferably without spaces as it is not possible to search for first name together with last name if either has a space in the name. |
string <= 64 characters The email of the contact. | |
| street | string <= 64 characters The street address of the contact. |
| city | string <= 64 characters The city of residence for the contact. |
| postalcode | string <= 64 characters The postal code of the address of the contact. |
| country | string <= 64 characters The country of residence for the contact. |
| speeddial | integer <int32> [ 1 .. 10 ] The speed dial number. The value should be an integer in range from 1 to 10. |
| showInDefaultContactList | boolean If set to 'true' then the contact is shown in the default contact list. Otherwise set to 'false'. |
| contactStatus | string Enum: "FAVORITE" "CONTACT" "VIP" "BLOCKED" The status of the contact. Default is 'CONTACT'. |
Array of objects (com.telepo.api.contact.PhoneNumberDto) A list of phone numbers for the contact. |
{- "cid": "167271@internal",
- "company": "MinFirma AB",
- "department": "Support",
- "firstname": "Bob",
- "lastname": "Dilen",
- "shortname": "bodi",
- "email": "info@example.com",
- "street": "Firmagatan 1",
- "city": "Stockholm",
- "postalcode": "12177",
- "country": "Sweden",
- "speeddial": 7,
- "showInDefaultContactList": true,
- "contactStatus": "FAVORITE",
- "phoneNumbers": [
- {
- "type": "MAIN",
- "phoneNumber": "+46890657890",
- "preferredNumber": true
}
]
}"string"Delete the specific contact for a user.
| domain required | string The domain of the user that owns the contact |
| user required | string The username of the user that owns the contact |
| cid required | string The ID of the contact |
"string"Retrieve a contact for a user group in the organization.
| domain required | string The domain of the user group that owns the contact |
| groupId required | string The name of the user group that owns the contact |
| cid required | string The ID of the contact |
{- "cid": "167271@internal",
- "company": "MinFirma AB",
- "department": "Rnd",
- "firstname": "John",
- "lastname": "Doe",
- "shortname": "jodo",
- "email": "info@example.com",
- "street": "Firmagatan 1",
- "city": "Stockholm",
- "postalcode": "12177",
- "country": "Sweden",
- "speeddial": 5,
- "showInDefaultContactList": true,
- "contactStatus": "VIP",
- "ownerType": "GROUP",
- "phoneNumbers": [
- {
- "type": "WORK",
- "phoneNumber": "+46850654760",
- "preferredNumber": true,
- "abbreviatednumber": "4760"
}
]
}Update the specific contact for a user group in the organization.
| domain required | string The domain of the user group that owns the contact |
| groupId required | string The name of the user group that owns the contact |
| cid required | string The ID of the contact |
| cid | string The ID of the contact. Required when updating a contact. |
| company | string <= 64 characters The company of the contact. |
| department | string <= 64 characters The department that the contact belongs to. |
| firstname | string <= 64 characters The first name of the contact. A string preferably without spaces as it is not possible to search for first name together with last name if either has a space in the name. |
| lastname | string <= 64 characters The last name of the contact. A string preferably without spaces as it is not possible to search for first name together with last name if either has a space in the name. |
| shortname | string <= 64 characters The short name of the contact. A string preferably without spaces as it is not possible to search for first name together with last name if either has a space in the name. |
string <= 64 characters The email of the contact. | |
| street | string <= 64 characters The street address of the contact. |
| city | string <= 64 characters The city of residence for the contact. |
| postalcode | string <= 64 characters The postal code of the address of the contact. |
| country | string <= 64 characters The country of residence for the contact. |
| speeddial | integer <int32> [ 1 .. 10 ] The speed dial number. The value should be an integer in range from 1 to 10. |
| showInDefaultContactList | boolean If set to 'true' then the contact is shown in the default contact list. Otherwise set to 'false'. |
| contactStatus | string Enum: "FAVORITE" "CONTACT" "VIP" "BLOCKED" The status of the contact. Default is 'CONTACT'. |
Array of objects (com.telepo.api.contact.PhoneNumberDto) A list of phone numbers for the contact. |
{- "cid": "167271@internal",
- "company": "MinFirma AB",
- "department": "Support",
- "firstname": "Bob",
- "lastname": "Dilen",
- "shortname": "bodi",
- "email": "info@example.com",
- "street": "Firmagatan 1",
- "city": "Stockholm",
- "postalcode": "12177",
- "country": "Sweden",
- "speeddial": 7,
- "showInDefaultContactList": true,
- "contactStatus": "FAVORITE",
- "phoneNumbers": [
- {
- "type": "MAIN",
- "phoneNumber": "+46890657890",
- "preferredNumber": true,
- "abbreviatednumber": "7890"
}
]
}"string"Delete the specific contact for a user group in the organization.
| domain required | string The domain of the user group that owns the contact |
| groupId required | string The name of the user group that owns the contact |
| cid required | string The ID of the contact |
"string"Retrieve the specific contact on the organization level when requested by an administrator.
| domain required | string The domain of the organization that owns the contact |
| cid required | string The ID of the contact |
{- "cid": "167271@internal",
- "company": "MinFirma AB",
- "department": "Rnd",
- "firstname": "John",
- "lastname": "Doe",
- "shortname": "jodo",
- "email": "info@example.com",
- "street": "Firmagatan 1",
- "city": "Stockholm",
- "postalcode": "12177",
- "country": "Sweden",
- "speeddial": 5,
- "showInDefaultContactList": true,
- "contactStatus": "VIP",
- "ownerType": "ORG",
- "phoneNumbers": [
- {
- "type": "WORK",
- "phoneNumber": "+46850654760",
- "preferredNumber": true,
- "abbreviatednumber": "4760"
}
]
}Update the specific contact on organization level when requested by an administrator.
| domain required | string The domain of the organization that owns the contact |
| cid required | string The ID of the contact |
| cid | string The ID of the contact. Required when updating a contact. |
| company | string <= 64 characters The company of the contact. |
| department | string <= 64 characters The department that the contact belongs to. |
| firstname | string <= 64 characters The first name of the contact. A string preferably without spaces as it is not possible to search for first name together with last name if either has a space in the name. |
| lastname | string <= 64 characters The last name of the contact. A string preferably without spaces as it is not possible to search for first name together with last name if either has a space in the name. |
| shortname | string <= 64 characters The short name of the contact. A string preferably without spaces as it is not possible to search for first name together with last name if either has a space in the name. |
string <= 64 characters The email of the contact. | |
| street | string <= 64 characters The street address of the contact. |
| city | string <= 64 characters The city of residence for the contact. |
| postalcode | string <= 64 characters The postal code of the address of the contact. |
| country | string <= 64 characters The country of residence for the contact. |
| speeddial | integer <int32> [ 1 .. 10 ] The speed dial number. The value should be an integer in range from 1 to 10. |
| showInDefaultContactList | boolean If set to 'true' then the contact is shown in the default contact list. Otherwise set to 'false'. |
| contactStatus | string Enum: "FAVORITE" "CONTACT" "VIP" "BLOCKED" The status of the contact. Default is 'CONTACT'. |
Array of objects (com.telepo.api.contact.PhoneNumberDto) A list of phone numbers for the contact. |
{- "cid": "167271@internal",
- "company": "MinFirma AB",
- "department": "Support",
- "firstname": "Bob",
- "lastname": "Dilen",
- "shortname": "bodi",
- "email": "info@example.com",
- "street": "Firmagatan 1",
- "city": "Stockholm",
- "postalcode": "12177",
- "country": "Sweden",
- "speeddial": 7,
- "showInDefaultContactList": true,
- "contactStatus": "FAVORITE",
- "phoneNumbers": [
- {
- "type": "MAIN",
- "phoneNumber": "+46890657890",
- "preferredNumber": true,
- "abbreviatednumber": "7890"
}
]
}"string"Delete the specific contact on organization level when requested by an administrator.
| domain required | string The domain of the organization that owns the contact |
| cid required | string The ID of the contact |
"string"Retrieve localized phone labels.
| domain required | string The domain of the organization |
| locale required | string The locale to be translated to |
{- "phoneLabels": [
- {
- "labelValue": "HOME",
- "labelName": "Home"
}, - {
- "labelValue": "WORK",
- "labelName": "Work"
}, - {
- "labelValue": "MOBILE",
- "labelName": "Mobile"
}, - {
- "labelValue": "MAIN",
- "labelName": "Main"
}, - {
- "labelValue": "WORK_FAX",
- "labelName": "Work fax"
}, - {
- "labelValue": "HOME_FAX",
- "labelName": "Home fax"
}, - {
- "labelValue": "PAGER",
- "labelName": "Pager"
}, - {
- "labelValue": "OTHER",
- "labelName": "Other"
}
]
}The Activity Diversion Mapping API is used to manage diversions for activities.
Use the Activity Diversion Mapping API to:
Get all activity diversions for a user.
| userId required | string The user ID of the user accessing the API |
| domain required | string The domain of the user accessing the API |
{- "diversion-mapping": [
- {
- "activityId": "busy",
- "phoneNumber": "+12345678"
}, - {
- "activityId": "lunch",
- "phoneNumber": "+12345679"
}, - {
- "activityId": "out_of_office",
- "phoneNumber": "+12345679"
}
]
}Set activity diversions for a user.
Both POST and PUT can be used in the request.
This will replace all existing settings.
| userId required | string The user ID of the user accessing the API |
| domain required | string The domain of the user accessing the API |
Array of objects (com.telepo.api.calls.DiversionMappingDTO) List of activity diversions |
{- "diversion-mapping": [
- {
- "activityId": "busy",
- "phoneNumber": "+12345678"
}, - {
- "activityId": "lunch",
- "phoneNumber": "+12345679"
}, - {
- "activityId": "out_of_office",
- "phoneNumber": "+12345679"
}
]
}{- "diversion-mapping": [
- {
- "activityId": "busy",
- "phoneNumber": "+12345678"
}, - {
- "activityId": "lunch",
- "phoneNumber": "+12345679"
}, - {
- "activityId": "out_of_office",
- "phoneNumber": "+12345679"
}
]
}Get the diversion number for a specified activity for a user.
Available activity ids can be fetched with the Configuration API.
| userId required | string The user ID of the user accessing the API |
| domain required | string The domain of the user accessing the API |
| activityId required | string The ID of the activity |
{- "activityId": "lunch",
- "phoneNumber": "+12345679"
}Set an activity diversion for a user.
Both POST and PUT can be used in the request.
Available activity ids can be fetched with the Configuration API.
| userId required | string The user ID of the user accessing the API |
| domain required | string The domain of the user accessing the API |
| activityId required | string The ID of the activity |
| activityId | string The activity the call shall be diverted for |
| phoneNumber | string Phone number the call will be diverted to for specified activity |
{- "phoneNumber": "+12345679"
}{- "activityId": "out_of_office",
- "phoneNumber": "+12345679"
}Delete diversion for specified activity for a user.
Available activity ids can be fetched with the Configuration API.
| userId required | string The user ID of the user accessing the API |
| domain required | string The domain of the user accessing the API |
| activityId required | string The ID of the activity |
The Diversion API is used to set the active diversion number and diversion rules of a user.
Use the Diversion API to:
Retrieves a user's diversion rules.
| userId required | string The username of the user accessing the API |
| domain required | string The domain of the user accessing the API |
{- "user": {
- "domain": "example.com",
- "userid": "albo"
}, - "userDiversionLineRules": [
- {
- "lineNumber": "+123460000",
- "lineOrderType": "PRIMARY",
- "lineType": "OFFICE_FIXED",
- "userDiversionRules": [
- {
- "diversionRoutingRulesType": "CFWD_ALL"
}, - {
- "phoneNumber": "+12345679",
- "diversionRoutingRulesType": "CFWD_ON_BUSY"
}, - {
- "diversionRoutingRulesType": "CFWD_ON_BUSY_IN_CALL"
}, - {
- "diversionRoutingRulesType": "CFWD_ON_BUSY_IN_CALL_OR_UNREACHABLE"
}, - {
- "diversionRoutingRulesType": "CFWD_ON_BUSY_OR_UNREACHABLE"
}, - {
- "phoneNumber": "+12345678",
- "diversionRoutingRulesType": "CFWD_NO_ANSWER"
}, - {
- "diversionRoutingRulesType": "CFWD_NO_ANSWER_OR_UNREACHABLE"
}, - {
- "diversionRoutingRulesType": "CFWD_UNREACHABLE"
}
]
}, - {
- "lineNumber": "+123467890",
- "lineOrderType": "SECONDARY",
- "lineType": "OFFICE_MOBILE",
- "userDiversionRules": [
- {
- "diversionRoutingRulesType": "CFWD_ALL"
}, - {
- "diversionRoutingRulesType": "CFWD_ON_BUSY"
}, - {
- "diversionRoutingRulesType": "CFWD_ON_BUSY_IN_CALL"
}, - {
- "diversionRoutingRulesType": "CFWD_ON_BUSY_IN_CALL_OR_UNREACHABLE"
}, - {
- "diversionRoutingRulesType": "CFWD_ON_BUSY_OR_UNREACHABLE"
}, - {
- "phoneNumber": "+12345678",
- "diversionRoutingRulesType": "CFWD_NO_ANSWER"
}, - {
- "diversionRoutingRulesType": "CFWD_NO_ANSWER_OR_UNREACHABLE"
}, - {
- "diversionRoutingRulesType": "CFWD_UNREACHABLE"
}
]
}
]
}Updates the user's defined diversion rules for available lines.
Both POST and PUT can be used in the request.
| userId required | string The username of the user accessing the API |
| domain required | string The domain of the user accessing the API |
object (com.telepo.api.calls.diversionrules.UserIdentityDTO) User information | |
Array of objects (userDiversionLineRule) List of diversion details for a user's lines |
{- "user": {
- "domain": "example.com",
- "userid": "albo"
}, - "userDiversionLineRules": [
- {
- "lineNumber": "+123460000",
- "lineOrderType": "PRIMARY",
- "lineType": "OFFICE_FIXED",
- "userDiversionRules": [
- {
- "diversionRoutingRulesType": "CFWD_ALL"
}, - {
- "phoneNumber": "+12345679",
- "diversionRoutingRulesType": "CFWD_ON_BUSY"
}, - {
- "diversionRoutingRulesType": "CFWD_ON_BUSY_IN_CALL"
}, - {
- "diversionRoutingRulesType": "CFWD_ON_BUSY_IN_CALL_OR_UNREACHABLE"
}, - {
- "diversionRoutingRulesType": "CFWD_ON_BUSY_OR_UNREACHABLE"
}, - {
- "phoneNumber": "+12345678",
- "diversionRoutingRulesType": "CFWD_NO_ANSWER"
}, - {
- "diversionRoutingRulesType": "CFWD_NO_ANSWER_OR_UNREACHABLE"
}, - {
- "diversionRoutingRulesType": "CFWD_UNREACHABLE"
}
]
}, - {
- "lineNumber": "+123467890",
- "lineOrderType": "SECONDARY",
- "lineType": "OFFICE_MOBILE",
- "userDiversionRules": [
- {
- "diversionRoutingRulesType": "CFWD_ALL"
}, - {
- "diversionRoutingRulesType": "CFWD_ON_BUSY"
}, - {
- "diversionRoutingRulesType": "CFWD_ON_BUSY_IN_CALL"
}, - {
- "diversionRoutingRulesType": "CFWD_ON_BUSY_IN_CALL_OR_UNREACHABLE"
}, - {
- "diversionRoutingRulesType": "CFWD_ON_BUSY_OR_UNREACHABLE"
}, - {
- "phoneNumber": "+12345678",
- "diversionRoutingRulesType": "CFWD_NO_ANSWER"
}, - {
- "diversionRoutingRulesType": "CFWD_NO_ANSWER_OR_UNREACHABLE"
}, - {
- "diversionRoutingRulesType": "CFWD_UNREACHABLE"
}
]
}
]
}{- "field": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": "string",
- "name": "baduser@baddomain.com"
}
], - "warning": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": "string",
- "name": "baduser@baddomain.com"
}
], - "generated-id": "string"
}Deletes a user's defined diversion rules.
| userId required | string The username of the user accessing the API |
| domain required | string The domain of the user accessing the API |
{- "field": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": "string",
- "name": "baduser@baddomain.com"
}
], - "warning": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": "string",
- "name": "baduser@baddomain.com"
}
], - "generated-id": "string"
}Retrieves a user's diversion rules for specified line order type.
| userId required | string The username of the user accessing the API |
| domain required | string The domain of the user accessing the API |
| lineOrderType required | string User line order for which diversion details shall to be fetched. Possible values are: |
{- "user": {
- "domain": "example.com",
- "userid": "albo"
}, - "userDiversionLineRules": [
- {
- "lineNumber": "+123460000",
- "lineOrderType": "PRIMARY",
- "lineType": "OFFICE_FIXED",
- "userDiversionRules": [
- {
- "diversionRoutingRulesType": "CFWD_ALL"
}, - {
- "phoneNumber": "+12345679",
- "diversionRoutingRulesType": "CFWD_ON_BUSY"
}, - {
- "diversionRoutingRulesType": "CFWD_ON_BUSY_IN_CALL"
}, - {
- "diversionRoutingRulesType": "CFWD_ON_BUSY_IN_CALL_OR_UNREACHABLE"
}, - {
- "diversionRoutingRulesType": "CFWD_ON_BUSY_OR_UNREACHABLE"
}, - {
- "phoneNumber": "+12345678",
- "diversionRoutingRulesType": "CFWD_NO_ANSWER"
}, - {
- "diversionRoutingRulesType": "CFWD_NO_ANSWER_OR_UNREACHABLE"
}, - {
- "diversionRoutingRulesType": "CFWD_UNREACHABLE"
}
]
}
]
}Creates or updates a user's defined diversion rule for a pre-defined diversion rule type.
Both PUT and POST can be used in the request.
| userId required | string The username of the user accessing the API |
| domain required | string The domain of the user accessing the API |
| lineOrderType required | string User line order for which diversion shall be set. Possible values are: |
object (com.telepo.api.calls.diversionrules.UserIdentityDTO) User information | |
Array of objects (userDiversionLineRule) List of diversion details for a user's lines |
{- "userDiversionLineRules": [
- {
- "userDiversionRules": [
- {
- "phoneNumber": "+12345679",
- "diversionRoutingRulesType": "CFWD_ON_BUSY"
}
]
}
]
}{- "field": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": "string",
- "name": "baduser@baddomain.com"
}
], - "warning": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": "string",
- "name": "baduser@baddomain.com"
}
], - "generated-id": "string"
}Deletes a user's defined diversion rule for a line order type.
| userId required | string The username of the user accessing the API |
| domain required | string The domain of the user accessing the API |
| lineOrderType required | string User line order for which diversion rules shall be deleted. Possible values are: |
{- "field": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": "string",
- "name": "baduser@baddomain.com"
}
], - "warning": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": "string",
- "name": "baduser@baddomain.com"
}
], - "generated-id": "string"
}Retrieves a user's diversion rules for a specific line order and rule type.
| userId required | string The username of the user accessing the API |
| domain required | string The domain of the user accessing the API |
| diversionRuleType required | string Enum: "CFWD_ALL" "CFWD_ON_BUSY_IN_CALL" "CFWD_ON_BUSY" "CFWD_NO_ANSWER" "CFWD_UNREACHABLE" "CFWD_NO_ANSWER_OR_UNREACHABLE" "CFWD_ON_BUSY_OR_UNREACHABLE" "CFWD_ON_BUSY_IN_CALL_OR_UNREACHABLE" The diversion rule type for which details shall be fetched. |
| lineOrderType required | string User line order for which diversion details shall be fetched. Possible values are: |
{- "lineOrderType": "PRIMARY",
- "phoneNumber": "+12345678",
- "diversionRoutingRulesType": "CFWD_NO_ANSWER"
}Creates or updates a user's defined diversion rule for a pre-defined diversion rule type.
Both POST and PUT can be used in the request.
| userId required | string The username of the user accessing the API |
| domain required | string The domain of the user accessing the API |
| diversionRuleType required | string Enum: "CFWD_ALL" "CFWD_ON_BUSY_IN_CALL" "CFWD_ON_BUSY" "CFWD_NO_ANSWER" "CFWD_UNREACHABLE" "CFWD_NO_ANSWER_OR_UNREACHABLE" "CFWD_ON_BUSY_OR_UNREACHABLE" "CFWD_ON_BUSY_IN_CALL_OR_UNREACHABLE" The diversion rule type details shall be set for. |
| lineOrderType required | string User line order for which diversion rules shall be set. Possible values are: |
| lineOrderType | string Enum: "PRIMARY" "SECONDARY" The line order |
| phoneNumber | string Phone number to be used for this diversion rule type |
| diversionRoutingRulesType | string Enum: "NONE" "CFWD_ALL" "CFWD_ON_BUSY_IN_CALL" "CFWD_ON_BUSY" "CFWD_NO_ANSWER" "CFWD_UNREACHABLE" "CFWD_NO_ANSWER_OR_UNREACHABLE" "CFWD_ON_BUSY_OR_UNREACHABLE" "CFWD_ON_BUSY_IN_CALL_OR_UNREACHABLE" The diversion rule type |
{- "phoneNumber": "+12345679",
- "diversionRoutingRulesType": "CFWD_ON_BUSY"
}{- "field": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": "string",
- "name": "baduser@baddomain.com"
}
], - "warning": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": "string",
- "name": "baduser@baddomain.com"
}
], - "generated-id": "string"
}Deletes a user's defined diversion rule for a pre-defined diversion rule type.
| userId required | string The username of the user accessing the API |
| domain required | string The domain of the user accessing the API |
| diversionRuleType required | string Enum: "CFWD_ALL" "CFWD_ON_BUSY_IN_CALL" "CFWD_ON_BUSY" "CFWD_NO_ANSWER" "CFWD_UNREACHABLE" "CFWD_NO_ANSWER_OR_UNREACHABLE" "CFWD_ON_BUSY_OR_UNREACHABLE" "CFWD_ON_BUSY_IN_CALL_OR_UNREACHABLE" The diversion rule type for which diversion shall be deleted |
| lineOrderType required | string User line order for which diversion rules shall be deleted. Possible values are: |
{- "field": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": "string",
- "name": "baduser@baddomain.com"
}
], - "warning": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": "string",
- "name": "baduser@baddomain.com"
}
], - "generated-id": "string"
}Retrieves a user's active diversion number.
| userId required | string The username of the user accessing the API |
| domain required | string The domain of the user accessing the API |
{- "diversion-number": "+14423455"
}Sets a user's active diversion number.
Both POST and PUT can be used in the request.
| userId required | string The username of the user accessing the API |
| domain required | string The domain of the user accessing the API |
| phoneNumber required | string The diversion number |
| activityScoped | boolean Set to true if the diversion number should be cleared after a change of presence activity. |
{- "diversion-number": "+14423455"
}The Mobile Subscriber API is used to set features on a subscriber level.
Use Mobile Subscriber API to:
Retrieve the full caller ID setting for incoming calls to a subscriber's mobile.
| number required | string The mobile number of the subscriber |
| domain required | string The organization domain |
trueUpdate the full caller ID setting for incoming calls to a subscriber's mobile.
| number required | string The mobile number of the subscriber |
| domain required | string The organization domain |
| enable required | boolean Indicate if integration should be enabled or disabled |
Update the number presentation of a mobile subscriber.
| number required | string The mobile number of the subscriber |
| domain required | string The organization domain |
| value required | integer <int32> The number presentation setting. The parameter can have 4 different values; |
Update the PBX integration of a mobile subscriber.
| number required | string The mobile number of the subscriber |
| domain required | string The organization domain |
| enable required | boolean Indicate if integration should be enabled or disabled |
Update the Route to PBX setting of a mobile subscriber.
| number required | string The mobile number of the subscriber |
| domain required | string The organization domain |
| enable required | boolean Indicate if route to PBX should be enabled or disabled |
The Presence Shortcuts API is used to manage presence shortcuts on user level. Use the Presence Shortcuts API to:
Read a specific presence shortcut for the user.
| domain required | string The domain of the user accessing the API |
| user required | string The username of the user accessing the API |
| id required | string The ID of the presence shortcut that should be read |
{- "id": "sdfdsf3333",
- "name": "Weekend",
- "activityId": "busy",
- "available": false,
- "durationType": "UNTIL_NEXT_WORKING_DAY",
- "order": 1,
- "imageId": "ic_shortcut_big_red",
- "applyDiversionNumber": false
}Update a specific presence shortcut for a user. A new shortcut will be created if it does not already exist.
| domain required | string The domain of the user accessing the API |
| user required | string The username of the user accessing the API |
| id required | string The ID of the presence shortcut that should be updated |
| id required | string 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 | string The name of the presence shortcut. |
| activityId required | string The ID of the presence activity. |
| available required | boolean Indicate if the presence shortcut should set the user in available or do not disturb. |
| durationType required | string Enum: "NO_END_TIME" "UNTIL_NEXT_WORKING_DAY" "MINUTES" Indicate if an expiration time should be set for the presence state. |
| durationMinutes | integer <int32> The expiration time for the presence state. Is only applicable if durationType is set to MINUTES. |
| order required | integer <int32> A number that is used to order the presence shortcuts in end-user applications. |
| imageId required | string 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 | string 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 | boolean Indicate if the shortcut will override any default diversion set for the presence activity (Activity Diversion). Default is false. |
{- "id": "yyrn333ffFFs2",
- "name": "Short lunch break",
- "activityId": "lunch",
- "available": false,
- "durationType": "MINUTES",
- "durationMinutes": 45,
- "order": 4,
- "imageId": "ic_shortcut_pizza",
- "diversionPhoneNumber": "+45552641",
- "applyDiversionNumber": true
}{- "id": "sdfdsf3333",
- "name": "Weekend",
- "activityId": "busy",
- "available": false,
- "durationType": "UNTIL_NEXT_WORKING_DAY",
- "order": 1,
- "imageId": "ic_shortcut_big_red",
- "applyDiversionNumber": false
}Delete a specific presence shortcut for a user.
| domain required | string The domain of the user accessing the API |
| user required | string The username of the user accessing the API |
| id required | string The ID of the presence shortcut that should be deleted |
Read all presence shortcuts for a user.
| domain required | string The domain of the user accessing the API |
| user required | string The username of the user accessing the API |
{- "presenceShortcut": [
- {
- "id": "sdfdsf3333",
- "name": "Weekend",
- "activityId": "busy",
- "available": false,
- "durationType": "UNTIL_NEXT_WORKING_DAY",
- "order": 1,
- "imageId": "ic_shortcut_big_red",
- "applyDiversionNumber": false
}, - {
- "id": "23342323232",
- "name": "Short lunch break",
- "activityId": "lunch",
- "available": false,
- "durationType": "MINUTES",
- "durationMinutes": 45,
- "order": 2,
- "imageId": "ic_shortcut_pizza",
- "diversionPhoneNumber": "+5545445656",
- "applyDiversionNumber": true
}
]
}Update all presence shortcuts for a user. Any existing presence shortcut for the user will be overwritten by this list.
| domain required | string The domain of the user accessing the API |
| user required | string The username of the user accessing the API |
required | Array of objects (com.telepo.api.presence.PresenceShortcutDTO) A list of presence shortcuts |
{- "presenceShortcut": [
- {
- "id": "yyrn333ffFFs2",
- "name": "Short lunch break",
- "activityId": "lunch",
- "available": false,
- "durationType": "MINUTES",
- "durationMinutes": 45,
- "order": 4,
- "imageId": "ic_shortcut_pizza",
- "diversionPhoneNumber": "+45552641",
- "applyDiversionNumber": true
}
]
}{- "presenceShortcut": [
- {
- "id": "sdfdsf3333",
- "name": "Weekend",
- "activityId": "busy",
- "available": false,
- "durationType": "UNTIL_NEXT_WORKING_DAY",
- "order": 1,
- "imageId": "ic_shortcut_big_red",
- "applyDiversionNumber": false
}, - {
- "id": "23342323232",
- "name": "Short lunch break",
- "activityId": "lunch",
- "available": false,
- "durationType": "MINUTES",
- "durationMinutes": 45,
- "order": 2,
- "imageId": "ic_shortcut_pizza",
- "diversionPhoneNumber": "+5545445656",
- "applyDiversionNumber": true
}
]
}The End-user Configuration API is used to fetch different configuration data.
Use the End-user Configuration API to:
Read mapping for the possible devices the user can set up calls from.
| domain required | string The domain of the user accessing the API |
| user required | string The username of the user accessing the API |
| language | string The language to use for localization. Stated as a ISO 639-1 language code (e.g. 'sv' for Swedish) optionally combined with an ISO-3166-2 Country code (e.g. 'en_US' for US English). If not provided, the language of the user will be used. |
User answer the call from a mobile device.
{- "answerplace": [
- {
- "id": "mobile",
- "name": "Mobile"
}
]
}Read the presence roles available for the user. Roles can be used to define different work situations.
| domain required | string The domain of the user accessing the API |
| user required | string The username of the user accessing the API |
| language | string The language to use for localization. Stated as a ISO 639-1 language code (e.g. 'sv' for Swedish) optionally combined with an ISO-3166-2 Country code (e.g. 'en_US' for US English). If not provided, the language of the user will be used. |
Available roles, localized in English
{- "role": [
- {
- "id": "business",
- "name": "Business",
- "stateName": "Business"
}, - {
- "id": "private",
- "name": "Private",
- "stateName": "Private"
}, - {
- "id": "1400593658949",
- "name": "Support",
- "stateName": "Support"
}
]
}Read the presence activities available for the user.
| domain required | string The domain of the user accessing the API |
| user required | string The username of the user accessing the API |
| language | string The language to use for localization. Stated as a ISO 639-1 language code (e.g. 'sv' for Swedish) optionally combined with an ISO-3166-2 Country code (e.g. 'en_US' for US English). If not provided, the language of the user will be used. |
Available activites, localized in English
{- "activity": [
- {
- "id": "available",
- "name": "Available",
- "available": true,
- "default": true,
- "stateName": "Available"
}, - {
- "id": "lunch",
- "name": "Lunch",
- "available": false,
- "default": false,
- "stateName": "Lunch"
}, - {
- "id": "meeting",
- "name": "Meeting",
- "available": false,
- "default": false,
- "stateName": "Meeting"
}
]
}Read an aggregated document with all configuration settings.
| domain required | string The domain of the user accessing the API |
| user required | string The username of the user accessing the API |
| language | string The language to use for localization. Stated as a ISO 639-1 language code (e.g. 'sv' for Swedish) optionally combined with an ISO-3166-2 Country code (e.g. 'en_US' for US English). If not provided, the language of the user will be used. |
{- "activities": {
- "activity": [
- {
- "id": "available",
- "name": "Available",
- "available": true,
- "default": true,
- "stateName": "Available"
}, - {
- "id": "lunch",
- "name": "Lunch",
- "available": false,
- "default": false,
- "stateName": "Lunch"
}, - {
- "id": "meeting",
- "name": "Meeting",
- "available": false,
- "default": false,
- "stateName": "Meeting"
}
]
}, - "roles": {
- "role": [
- {
- "id": "business",
- "name": "Business",
- "stateName": "Business"
}, - {
- "id": "private",
- "name": "Private",
- "stateName": "Private"
}, - {
- "id": "1400593658949",
- "name": "Support",
- "stateName": "Support"
}
]
}, - "answerplaces": {
- "answerplace": [
- {
- "id": "mobile",
- "name": "Mobile"
}
]
}, - "topics-enabled": true,
- "sms-allowed": true,
- "fallbackToDefaultPresenceState": false,
- "defaultPresenceState": "Available",
- "callrouting-enabled": true,
- "fields": {
- "field": [
- {
- "id": "field7",
- "label": "Department",
- "currentValue": "Field7",
- "requestedValue": "Field7",
- "editable": true,
- "dateRequested": "2020-10-10T13:12:12Z"
}
]
}
}Retrieve URL to the web client to access enduser portal and web softphone.
| domain required | string The domain of the user accessing the API |
| user required | string The username of the user accessing the API |
{
}The User Device Information API is used to manage information about end user devices.
Use the User Device Information API to:
Unregister an existing webhook registered for the user.
| domain required | string The domain of the organization |
| userId required | string The ID of the user |
| targetId required | string The unique id of the webhook that should be unregistered |
Retrieve detailed information about a certain user device. The returned document contains a list of attributes providing detailed information about the user's device.
| domain required | string The domain of the organization the user belongs to |
| userId required | string The user ID |
| deviceId required | string The device ID |
[- {
- "name": "USER_AGENT",
- "value": "Telepo Softphone/Mac/5.x.x.xxxx"
}
]Retrieve display icon name for a certain user device. If no icon has been configured for the device, the default icon of the type of the device is returned.
| domain required | string The domain of the organization the user belongs to |
| userId required | string The user ID |
| deviceId required | string The device ID |
| fallback | boolean If true, the default icon name will be returned if no name is configured |
"DESKPHONE_TYPE_2"Set or Update the display icon name for a certain user device. The icon name must correspond to the type of the device.
| domain required | string The domain of the organization the user belongs to |
| userId required | string The user ID |
| deviceId required | string The device ID |
| name required | string Enum: "DEFAULT" "TYPE_1" "TYPE_2" The display icon name of the device to be updated |
Retrieve a list with all the user's devices. The returned document contains a list with information on all the user's devices. If there are no devices, an empty document is returned.
| domain required | string The domain of the organization the user belongs to |
| userId required | string The user ID |
| type | string Enum: "MOBILE" "TABLET" "SOFTPHONE" "DESKPHONE" "PBX" "DECT" "THIRD_PARTY" "WEB_SOFTPHONE" "TEAMS" The type of devices to fetch. If not stated, all device types are retrieved. |
[- {
- "deviceId": "kf45ffr3dd3dtj7r",
- "deviceType": "SOFTPHONE",
- "deviceName": "My work laptop",
- "deviceIcon": "DEFAULT",
- "deviceTypeName": "Application for Desktop",
- "deviceStatus": "INACTIVE",
- "revocable": true,
- "hasAttributes": true
}, - {
- "deviceId": "dhhjhdsb008jnnh",
- "deviceType": "MOBILE",
- "deviceName": "My black iPhone XS",
- "deviceIcon": "TYPE_2",
- "deviceTypeName": "Mobile Application",
- "deviceStatus": "ACTIVE",
- "revocable": true,
- "hasAttributes": true
}
]Retrieve display name of certain user device.
| domain required | string The domain of the organization the user belongs to |
| userId required | string The user ID |
| deviceId required | string The device ID |
| fallback | boolean If true, the default name will be returned if no name is configured |
"My work laptop"Set or Update the display name of a certain user device.
| domain required | string The domain of the organization the user belongs to |
| userId required | string The user ID |
| deviceId required | string The device ID |
| name required | string The display name of the device to be updated (max 32 characters) |
Retrieve a compact list with all the user's active devices. The returned document contains all the user's devices that are not known to be currently unreachable. If there are no active devices, an empty document is returned.
| domain required | string The domain of the organization the user belongs to |
| userId required | string The user ID |
[- {
- "deviceId": "dhhjhdsb008jnnh",
- "deviceType": "MOBILE",
- "deviceName": "My black iPhone XS",
- "deviceIcon": "TYPE_2"
}
]Register a webhook where notifications when there are any changes in the user's device set.
| domain required | string The domain of the organization |
| userId required | string The ID of the user |
| targetUrl required | string The webhook url |
| targetId required | string A unique id of the webhook. |
| publicTarget required | boolean Indicates if the target node hosting the webhook is deployed on the same network segment as the service nodes or if callbacks needs to go through the edge http proxy |
{- "targetId": "434356",
- "publicTarget": true
}{- "expiresOn": 3600
}{- "userId": "alice@organization.org",
- "timeStamp": "2026-03-08 18:58:48.962",
- "changedField": "DEVICE_INFO"
}Subscribe for update events when there are any changes in the users device set. Subscription data is in application/app-config-data format.
| domain required | string The domain of the organization the user belongs to |
| userId required | string The user id |
The User Information API provides functionality similar to the Contacts API, but is designed
to provide information about the calling user. It can also be used to provide information and
to manipulate other users' presence state if the calling user is authorized to do so.
The UserInfo API also allows for changing a contact's picture.
Use the User Information API to:
Get the photo associated with a user.
| domain required | string The domain of the user |
| user required | string The user ID of the user |
| prefWidth | integer <int32> The preferred width of the photo |
| prefHeight | integer <int32> The preferred height of the photo |
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.
| domain required | string The domain of the user |
| user required | string The user ID of the user |
Get the presence state for the accessing user.
| domain required | string The domain of the user accessing the API |
| user required | string The user ID of the user accessing the API |
{- "futurePresenceAccess": "NONE",
- "activityAccess": "NONE",
- "roleAccess": "NONE",
- "noteAccess": "NONE",
- "note": "Planning our upgrade",
- "activity": {
- "id": "working",
- "expiration": "2020-09-21T11:05:00Z",
- "available": true
}, - "idle": false,
- "available": true,
- "capabilities": [
- "SMS"
]
}Update the presence state of a user.
| domain required | string The domain of the user to be updated |
| user required | string The user ID of the user to be updated |
| updateMode | string Enum: "CHANGE" "CLEAR" "OVERRIDE" How the presence items note, role and activity should be updated. Valid values are: |
| role | string The current role of the contact |
| note | string The presence note |
object (com.telepo.api.contact.PresenceDTO.Activity) The presence activity of the contact |
Setting a new presence note
{- "note": "Presenting at the conference"
}{- "futurePresenceAccess": "NONE",
- "activityAccess": "NONE",
- "roleAccess": "NONE",
- "noteAccess": "NONE",
- "note": "Discuss UX with Dan",
- "activity": {
- "id": "meeting",
- "expiration": "2010-10-11T05:30:00Z",
- "available": false
}, - "idle": true,
- "available": false
}Get end-time of the user's current activity. Returns 'never' if no end-time is set.
| domain required | string The domain of the user |
| user required | string The user ID of the user |
2020-01-31T20:00:00Z
Get the availability state for the user. The operation returns "true" if the user is available, and "false" otherwise.
| domain required | string The domain of the user |
| user required | string The user ID of the user |
trueSet the activity of the user.
| domain required | string The domain of the user |
| user required | string The user ID of the user |
| activity required | string The new activity ID |
| available | boolean The new availability of the user |
available
Set a user's current activity's end-time.
| domain required | string The domain of the user |
| user required | string The user ID of the user |
| expires required | string The activity end-time in ISO-8601 format, or 'never' if the activity should not have an expiry time |
2020-05-09T08:45:00Z
The User Line API allows to set or check the current caller ID that is used during the calls and is displayed on the destination party as a number.
Use User Line API to:
Get the list of all available lines that user can use
| domain required | string The organization domain |
| user required | string The username of the user |
{- "line": [
- {
- "groupId": 0,
- "type": "OFFICE_FIXED",
- "number": "+123400",
- "name": "office fixed",
- "active": true
}
]
}Get the current active caller ID for a user.
| domain required | string The organization domain |
| user required | string The username of the user |
{- "number": "+123400",
- "type": "SWITCHBOARD",
- "name": "swithboard",
- "groupId": 0
}Update the current active caller ID for user.
| domain required | string The organization domain |
| user required | string The username of the user |
| type required | string Enum: "ANONYMOUS" "ACD" "ACD_LIGHT" "ATTENDANT" "SWITCHBOARD" "OFFICE_FIXED" "PRIVATE_FIXED" "OFFICE_MOBILE" "PRIVATE_MOBILE" The outbound number type |
| groupId required | integer <int64> For PRIVATE_FIXED/OFFICED_FIXED/PRIVATE_MOBILE/OFFICE_MOBILE 0 indicate primary line and 1 indicate secondary line. For ACD/ACD_LIGHT/ATTENDANT this value indicates internal ID of the funtional number. |
{- "type": "OFFICE_FIXED",
- "groupId": 0
}{- "field": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": "string",
- "name": "baduser@baddomain.com"
}
], - "warning": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": "string",
- "name": "baduser@baddomain.com"
}
], - "generated-id": "string"
}The User Voicemail Settings API is a group of methods to manage Voicemail Settings at end user level.
Use the Voicemail Settings API to:
Retrieve voicemail settings for a user.
| domain required | string The domain of the organization |
| userId required | string The user id of the user |
{- "playActivity": true,
- "playMergedUnavailableEndTime": false,
- "playHumanAssistance": true,
- "humanAssistanceNumber": "+4676767676",
- "smsNotification": false,
- "emailNotification": true,
- "fileAttached": false,
- "voicemailInboxFullSmsNotification": false,
- "voicemailInboxFullEmailNotification": true,
- "allowDownload": true,
- "allowVoicemail": true,
- "bypassVoicemail": false,
- "voicemailCallbackEnabled": false
}Update voicemail settings for a user.
| domain required | string The organization domain |
| userId required | string The user id of the user |
| playActivity | boolean Whether the greeting played when a caller reaches the voice mail service will include information about callee's current activity. |
| playMergedUnavailableEndTime | boolean Whether the end time of the last consecutive activity present with unavailable status. |
| playHumanAssistance | boolean Whether the human assistance option should be played out as part of the greeting. |
| humanAssistanceNumber | string The number that the human assistance option redirects to, if the 'playHumanAssistance' value set to true. |
| smsNotification | boolean Whether SMS should be used for new voicemail messages notifications. |
| emailNotification | boolean Whether email should be used for new voicemail messages notifications. |
| fileAttached | boolean Whether the voicemail is to be attached to the email notifications. |
| voicemailInboxFullSmsNotification | boolean Whether SMS notifications should be used when the voicemail inbox approaches it's maximum capacity. |
| voicemailInboxFullEmailNotification | boolean Whether email notifications should be used when the voicemail inbox approaches it's maximum capacity. |
| allowDownload | boolean Whether the users are allowed to download vociemails to their mobile from the inbox page of the mobile app. |
| allowVoicemail | boolean Whether the callers are allowed to deposit voicemail messages. |
| bypassVoicemail | boolean Whether bypass voicemail as part of the greeting. |
| voicemailCallbackEnabled | boolean Whether the user will get the option to call back to the number that left the voicemail message. |
{- "playActivity": true,
- "playMergedUnavailableEndTime": false,
- "playHumanAssistance": true,
- "humanAssistanceNumber": "+4676767676",
- "smsNotification": false,
- "emailNotification": true,
- "fileAttached": false,
- "voicemailInboxFullSmsNotification": false,
- "voicemailInboxFullEmailNotification": true,
- "allowDownload": true,
- "allowVoicemail": true,
- "bypassVoicemail": false,
- "voicemailCallbackEnabled": false
}The User Tickets API is used to manage user API tickets.
Use the User Tickets API to:
There are two authentication approaches for this method. One approach is to use Password based ticket and the other one is to use Superuser Ticket.
For details on how to calculate the ticket string for the password based ticket, please see Using the API within the API reference.
This endpoint is deprecated and will be removed in Core 6.0.
NOTE: This method is DEPRECATED since 5.7.4 and will be removed in future releases.
| domain required | string The domain of the user to create an API ticket for |
| user required | string The username of the user to create an API ticket for |
| api required | Array of strings One or more valid external APIs (e.g. ?api=CALLS&api=USER). |
| platform required | string Specifies which client that is making the request. The license validation is matched against the client value. It can have one of the following values: android, iphone, other |
| ver | string The version of the platform. Not required when the value of the platform is other |
| number | string The mobile number of the device that sends the request (applicable for platforms iphone and android). If stated, the number must be a mobile number of the user. |
| name | string A user defined name of the ticket, max 64 characters |
| expires | integer <int32> Expiration time of the ticket in seconds |
| deviceDisplayName | string A user defined name of the device |
PASSWORD_BASED_TICKET
{- "expires": "2023-11-10T15:38:39.482+00:00",
- "name": "ALL_CALLS",
- "token": "2343.ZSDjndiJSDjksHj",
- "allowedApis": [
- "CALLS"
]
}This method creates a user API ticket. HTTP basic authentication is used to authenticate this method and it requires user's password. Additionally, an OTP is required if the two-factor authentication is enabled for the user.
| verificationCode | string OTP code for two-factor authentication. An OTP is generated when this parameter is absent or set to an empty string (""). |
| expires | integer <int32> The expiration time of the ticket in seconds. The value must be greater than 0. |
| ticketName | string The name of the API ticket |
| allowedApis required | Array of strings non-empty unique Items Enum: "CALL_CONTROL" "CALL_RECORDING" "CALLS" "CDR_READER" "COMMUNICATION_LOG" "CONTACT" "DISTRIBUTION_GROUP" "EVENTCHANNEL" "LINE_STATE" "PERSONAL_CONTACTS" "QUEUE_STATS" "SMS" "USER" "VOICEMAIL_SETTINGS" A list of APIs for which authorization needs to be granted in the ticket. |
{- "expires": 10,
- "ticketName": "ALL_CALLS",
- "allowedApis": [
- "CALLS"
]
}{- "expires": "2023-11-10T15:38:39.482+00:00",
- "userId": "alice",
- "domain": "example.com",
- "ticketName": "ALL_CALLS",
- "token": "2343.ZSDjndiJSDjksHj",
- "allowedApis": [
- "CALLS"
]
}If the ticket is deleted or revoked, it returns API ticket deleted successfully. The method is accessible through Password based ticket and Superuser Ticket.
NOTE: This method is DEPRECATED since 5.7.4 and will be removed in future releases.
| 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 |
Removes a user API ticket with the provided name. Users can delete only the ticket used to make the request.
| domain required | string The domain of the user of the API ticket to delete |
| user required | string The username of the user of the API ticket to delete |
| ticketName required | string The user defined name of the ticket to delete |
The SMS API provides possibility to send SMS via the system. An end-user must have a valid ticket for the API and be authorized to send SMS to use this API.
An end-user with authorized ticket could send SMS to recipient.
| to required | string The the number to send to. This number will be expanded according to the sending user's number plan. For example, if the user's organization has a number plan conversion of 08 -> +468, the user can send to 0890510 and the SMS will be routed to +46890510. |
| smsText required | string The SMS text |
{ "smsText": "Everythingâs going to be amazing" }
{- "field": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": "string",
- "name": "baduser@baddomain.com"
}
], - "warning": [
- {
- "fieldName": "user",
- "code": "user.does.not.exist",
- "description": "string",
- "name": "baduser@baddomain.com"
}
], - "generated-id": "string"
}