Voice API Overview
This document is intended for developers who want to create applications using the silhouette API. The silhouette API is a web service based on REST and WebSocket technologies that accepts and delivers content in JSON format. Application Developers can use any development platform capable of consuming the service.
The following typographical conventions are used in the documentation.
Bold text
Indicates GUI components, such as menu items and buttons.
Italic text
References titles of publications and is used for emphasis.
Monospace text
Indicates paths and filenames, and is used for code.
2 About this Document
The silhouette Public API integrates call management, status monitoring, and provisioning, and enables applications to receive asynchronous notification of call-related events. Applications can use it to make calls, answer calls, release calls and view the call details of active calls in silhouette. It allows applications to monitor the call and presence status of specific users by subscribing to receive call and presence status events.
The silhouette API is a RESTful hyperlinking API, supporting the following the HAL media type specification, combined with a WebSocket-based stream for reporting realtime call and presence events.
Public API Guide
The silhouette API provides public access, implemented as a web service following a REST/HATEOAS architectural style. Call and presence events are delivered via WebSockets.
An application using the silhouette API is expected to
provide authentication credentials with each request to the API
authenticate users connected to the application
populate the HTTP User-Agent header with a string identifying the client application
limit request rate to avoid exceeding limits
handle errors appropriately (interpret response)
Client applications using the silhouette API to manage calls are expected to
subscribe for required events
associate requests and events and manage the application view of call activity, and so forth
track call history, if required
not assume events will be received immediately (may be rate limited)
initiate and maintain connection to silhouette (for example, use a keep-alive to keep a WebSocket open to receive events)
request the current state of a silhouette account when it initially connects (if required). Events are only pushed to the applications as they occur.
The silhouette API entry point is https://<WebAdmin>/api. Accessing the silhouette API includes
The Public API is intended for use by client applications deployed in the customer premise. Applications access the Public API through the TOWS, using the existing WebAdmin IP address or FQDN.
See Architecture.
silhouette API security comprises
HTTP Basic Authentication (see https://en.wikipedia.org/wiki/ Basic_access_authentication) is used for authenticating silhouette API access. All REST requests and the WebSocket connection request must be authenticated individually (no sessions).
The credentials required in the HTTP Authorization header must be in the format of:
<username>:<password> Credentials
The silhouette API authenticates that the credentials specified in the HTTP Authentication header are those of a valid silhouette user. The username in the credentials must indicate the user’s tenant and extension. The password in the credentials are the user’s PIN.
The username of the credential must be in one of following formats:
<ext>@<tenant ID>
for example, [email protected]
<ext>@<tenant ID>.ID
<ext>@<tenant DID>.DID
Public API Guide<ext>@<tenant web login URL>.URI
for example, [email protected]
where DID, URI or ID are used as the domain type suffix and have to be in uppercase. Disabled users and users of inactive tenants are not permitted to use the API.
Authorization is per request and is based on the authority users have to access the API. Public API
In the following table, the Authority column indicates the permission set the user has for managing resources of the API. Each resource documents its specific Authority requirements for permitted operations.
Authorization Header contains
Authority
<ext>@<tenant ID> - where extension
corresponds to a TenantAdmin User
Tenant Admin Call Control User
<ext>@<tenant ID> - where extension
corresponds to a non-admin User
Non-admin Call Control User
Load control mechanisms ensure the following on the Public API:
WebSockets
maxIdleTimeout=3600000 milliseconds (1 hour). Without any data transfer, the WebSocket connection times out after 1 hour.
maxConnectionCount=4000. The maximum number of public WebSocket connections.
maxConnectionPerClient=1. The maximum number of concurrent processing threads per client. Per client means per user+client IP address.
blockAfterFailedLoginCount=3. Client is locked out after 3 failed login attempts.
blockFailedLoginWithin=1800000 milliseconds (30 minutes). After 3 failed login attempts within 30 minutes, the client is locked out.
blockPeriod=3600000 milliseconds (1 hour). After 3 failed attempts within 30 minutes, the client is locked out for an hour.
For REST service calls
maxThreads=100. The maximum number of concurrent requests from all clients that the server accepts.
maxConnectionPerClient=3. The maximum number of concurrent processing threads per client. Per client means per user+client IP address.
busyDelay=3000 milliseconds (3 seconds). When a response is delayed for 3 seconds, the system returns a 503.
blockAfterFailedLoginCount=3. Client is locked out after 3 failed login attempts.
blockFailedLoginWithin=1800000 milliseconds (30 minutes). After 3 failed login attempts within 30 minutes, the client is locked out.
blockPeriod=3600000 milliseconds (1 hour). After 3 failed attempts within 30 minutes, the client is locked out for an hour.
The silhouette API supports the following versions of Transport Layer Security (TLS):
TLS v1.2
The silhouette API supports the TLS SSL ECDHE_* cipher suite, excluding all RC4, MD5, DES, DSS and NULL ciphers.
Using the API includes the following topics:
Hyperlinking API Fundamentals
The silhouette API is designed as a hyperlinking RESTful API. Rather than focusing on specific URLs, which may change as the system evolves, a hyperlinking API focuses on exposing relationships between resources and providing the ability to discover available resources. The benefit of this approach is that it results in an explorable API that provides client developers the ability to browse data and interact with the API at design time, which makes it much easier for the client developers to build a mental model of the API and its data structures.
The silhouette API supports the following HTTP verbs in compliance with the definitions in the HTTP specification (RFC7231). Note that not all resources of the API support all verbs. See the resource details (online or in this document) for its supported verbs.
GET—Retrieves the representation of the resource at the request URL. Some resources accept optional query parameters that let the client refine the content received in the response.
HEAD —Performs the same logic on the server as a GET request to the same URL, but does not return any response data. Clients can use this to pre-test whether a GET will be successful.
PUT—Creates a new resource or replaces an existing resource at the request URL using the request payload.
POST—Tells the service how to modify the contents of the resource at the request URL, particularly when that resource is a container of other resources. Thus, a POST request may create a new subordinate resource if it is a container resource (a POST request to the Call Group list is used to add a new Call Group). If the resource is not a container resource, the POST request may have the effect of
directly modifying the resource at the request URL (a POST request to a Call is used to change the call state).
If a new resource is created as the effect of a POST request, the HTTP response code will be a 201 Created and the HTTP Location header will be populated with the URL of the new resource.
DELETE—Deletes the resource at the request URL. A successful response is typically a 200 OK with an empty payload.
The API supports the media type application/json for request payloads, and
application/hal+json in response payloads.
API Documentation—The HAL Browser
The HAL Browser is a web-based user interface that is provided as part of the silhouette API. It lets client developers explore the API’s capabilities. Use it to discover the resources supported in the API, their data structures, and their link relationships.
The HAL Browser is located at
https://<WebAdmin IP>/api/browser/browser.html
When accessing The HAL Browser for the first time, you are prompted for credentials. See API Access. Once the credentials have been accepted you can proceed with exploring the API.
Provide the user identifier (<ext>@<tenant ID>) and a valid subscriber PIN to start browsing the API from a Tenant Administrator or non-admin user perspective.
Resource Graph
The detailed documentation (online and in this document) includes sample Request/Response formats, including sample URLs. The URLs shown in these examples are representative only. Actual URLs will likely differ at runtime, based on the runtime environment.
The silhouette API delivers Call and Presence Event Notifications over a WebSocket. You can find out more about the WebSocket protocol at
http://www.websocket.org/aboutwebsocket.html
To establish a WebSocket connection with silhouette, the URL is published in API Root Resource response as the link relation called “v1:createWebSocket”. In the current release, this URL is as follows:
https:<WebAdmin IP>/api/ws
Any valid user credentials can be used.
After the WebSocket connection has been successfully established, a message is sent from the server to the client indicating the UUID of the newly-created WebSocket. This UUID is used in subsequent REST requests to the silhouette API to subscribe to events. Note that there could be a small delay before this message is sent.
===>
wss://{webadmin ip}/api/ws
<===
HTTP/1.1 101 Switching Protocols
Connection: Upgrade Upgrade: WebSocket
<===
{"webSocketId":"aa922613-78ad-4e30-97e1-fac6a6a7e75c"}
The server establishes a timeout interval for the WebSocket connection. If no events are delivered in that period of time, silhouette closes the connection and any subscriptions on the WebSocket are cancelled. Clients can force the connection to stay open by periodically sending a message over the connection. The format of the message may be a short string, such as “hello”. The server will echo this back if the connection is still alive and reset the timeout counter.
The timeout value for connections is set to 1 hour.
WebSockets should be explicitly torn down gracefully by the client before any attempt to establish a new connection.
WSTool is a web-based tool that creates a WebSocket connection. It is shipped with the silhouette API, preconfigured to use the createWebsocket URL to establish a connection, and can be used for testing or exploring the API. It requires HTTP basic authentication, the same as the API itself (see Security). Access WSTool at https://
<webadmin IP>/api/wstool/wstool.html.
Once it has established a WebSocket, the client can subscribe to events. To receive events, follow these steps:
Establish a WebSocket with the silhouette API.
Receive a WebSocket ID over the newly-established WebSocket.
Use the WebSocket ID to create a Subscription Set for each set of subscriptions.
Create a subscription within the Subscription Set to subscribe for specific events. (Events related to the subscriptions are sent over the WebSocket as they occur.)
The silhouette API includes the following features:
Table of Contents
Expand Parameter Examples Description
Most resources list or entity (for example: a list of tenants, or a single tenant) support an optional query parameter on the URL that enables the client to request more detail in the query response.
In a query response, many entity representations include information about related resources in the _embedded section of the payload. Similarly, in a list query, each element of the list is included in the _embedded section of the payload. Embedded representations typically include only identifying information about the resource.
However, when a client is interested in more information about some embedded representations than is included by default, it can ask for more detail about those representations to be included in the response by providing the representation name in the value of the expand query parameter.
If the embedded resource contains an array, each element of the array will be expanded. In the case of list resources, such as the tenant list or user list, this allows the client to retrieve detail about every item in the list in a single query.
The expand parameter value contains one or more expand keys, each expand key can be:
simple keys:
•
item, this special key only used in a list resource context, it means item of the list.
•
all, this special key means expand all possible embed resources of an entity resource.
•
<valid embed name of entity>, this means expand the specified embed resource of an entity resource.
•
-<valid embed name of entity>, minus sign can be used to specify not expand the specified embed resource, which is useful when together with the
all key to exclude the specified embed resource.
multi-level keys: (combination of simple keys)
•
<valid embed name of entity>.item, this means expand the embedded resource, not include embedded of the embedded resource.
•
<valid embed name of entity>.all, this means expand the embedded resource, include all embedded of the embedded resource.
•
<valid embed name of entity>.<valid embed name>, this means expand the specified embed resource of specified embed resource of the
entity.
•
-<valid embed name of entity>.<valid embed name>, minus sign
can be used to specify not expand the specified embed resource of specified embed resource of the entity, which is useful when together with the <valid embed name of entity>.all key.
•
Recursive expansion can be specified by identifying the desired tokens using
dot-notation to specify the path to the embedded resource within the embedded resource, there is no limitation of how many level can be expanded.
When more than one expand key provided, they must be separated by coma.
Any unrecognized key include embed name of embed resource not accessible for user will be ignored.
When expand any embed resource, the owner of the embed resource will be expanded as well (the item will be implicitly included).
When expand any entity(include embedded resource), it only expand one level, which means it will include all attributes of the entity(visible by user role), and un-expanded view of all embedded resource of the entity, if need expand next level, next level expand key have to be provided in the parameter value.
When using embed name as expand key, must exactly (case-sensitively) match the name of the embedded resource to include.
When expand parameter included, the more content included and more level content included, the more time it will be cost to build the response and the much bigger size of the response will be.
It is up to the client to judge the query performance based on their requirements. Expand Parameter Examples
Here are some examples of getting a list of user with expand parameters:
GET /api/v1/tenants/414/users?expand=item GET /api/v1/tenants/414/users?expand=all
GET /api/v1/tenants/414/users?expand=all,-keyProfile
GET /api/v1/tenants/414/users?expand=featureSettings,adminSettings GET /api/v1/tenants/414/users/100?expand=all
GET /api/v1/tenants/414/users/100?expand=callPermissionProfile
Table of Contents
Filter Parameter Examples Description
Filtering result of GET request on all List resources is supported by optional filter
query parameter.
When multiple filter parameters provided, the logical relation between these filters are AND which means the result will only include items match all filters.
Each filter parameter value contains one or more filter conditions.
When more than one condition provided, they must be separated by coma.
When more than one filter conditions in the filter parameter value, the logical relation between filter conditions are OR relation which mean any item match any one of the filter conditions will be included in the result.
Each filter condition must match valid format, if NOT, will get 400 bad request error. There are 2 type of filter conditions: value condition and no-value condition. value condition
Value condition means compare the current value of an attribute of resource or embed resource with a provided value.
Each value condition format is:
<operator>(<key>,<value>)
value condition operators
operator
description
support value type
eq
equal
Integer, Boolean, String
ne
not equal
Integer, Boolean, String
operator
description
support value type
gt
greater than
Integer
ge
greater and equal
Integer
lt
less than
Integer
le
less and equal
Integer
ct
contains
String(case sensitive)
ci
contains ignore case
String(case insensitive)
sw
start with
String(case sensitive)
ew
end with
String(case sensitive)
value condition key
Key must be either a <valid property name> of the item resource of the list or a
<valid property name> of a valid embed resource of the item resource.
Only property or embedded which is visible to the user can be used as key
Multi level embed resources and properties is valid for filter condition key value,
such as:
•
<valid embed name>.<valid embed name>…<valid embed name>.<valid property name>
•
Note: the above condition implicitly indicate that every higher level embed must be exist
value
value must be provided
value must match expected value type
string value should not be quoted and must be URI encoded if contains URI special
characters
value condition examples eq(active,false) ci(firstName,Steven)
sw(keyProfile.name,Sales)
format: <operator>(<key>)
non-value condition operators
operator
description
est
exist
nes
not exist
emp
empty
nem
not empty
non-value condition key
key must be: <valid property name or valid embed name> of the item resource of the list or <valid property name or valid embed name> of a valid embed resource of the item resource.
only property or embedded which is visible to the user can be used as key
Multi level embed resources and properties is valid for filter condition key value,
such as:
•
<valid embed name>.<valid embed name>…<valid embed name>
•
<valid embed name>.<valid embed name>…<valid embed name>.<valid
property name>
•
Note: the above condition implicitly indicate that every higher level embed
must be exist
non-value condition examples
est(keyProfile) emp(feature.callForwardNoAnswer.callTarget) Performance
When filter parameter included, it will cause server processing time slightly increase, while it may reduce the network transfer time if the result list getting smaller.
When multiple filter parameter provided, the order in the URI will affect performance, the better performance can be achieved by put the more restricted filter more closer to beginning of the query parameter. For example, the filter of filter user by name equals Steven should be put before user do not have a key profile.
When use more than one condition in a filter, better performance can be achieved by put the less restricted condition before more restricted condition. For example, you should be put user do not have a key profile before name equals Steven.
Here is an example query URI for get a list of user with filter to ask for users which extension start with 2 or 3 and no key profile:
GET /api/v1/tenants/414/users? filter=sw(extension,2),sw(extension,3)&filter=nes(keyProfile)
As a client development aid, the silhouette API provides an enum lookup service for enumerated type values used in the API. This service provides a list of valid values that can be used for the indicated property. A hyperlink is provided to each enum value from the resource that uses it.
For example, the POST Call request has a required field called callRequest:
POST /calls/3501-1441389611741-3%[email protected]
{"callRequest":"hangupCall", "myPartyId":"[email protected]", "deviceId":"4564",
}
The GET Call response includes a hyperlink to the enum lookup resource for the
callRequest field:
GET /calls/3501-1441389611741-3%3A155%4021375 HTTP/1.1
Response:
{
"_links" : {
"curies" : {
"href" : "/api/v1/rels/{rel}", "name" : "v1options", "templated" : true
},
"self" : {
"href" : "/calls/3501-1441389611741-3:[email protected]"
},
"v1options:callRequest" : {
"href" : "/api/v1/enums/callrequest"
}
},
"answerTime" : "2016-03-18T13:05:14.216-04:00", "callId" : "3501-1441389611741-3:[email protected]",
"callParties" : [ { "PartyId" : "[email protected]",
"PartyName" : "User, Jane"
}, {
"PartyId" : "[email protected]",
"PartyName" : "User, Joe"
} ],
"callState" : "connected", "digitsDialed" : "203", "from" : "[email protected]",
"redirected" : false,
"startTime" : "2016-03-18T13:04:44.260-04:00",
"talkDuration" : "PT45S", "to" : "[email protected]",
"transferred" : false
}
You can issue a GET request to the href value indicated by the v1options:callRequest link to see the list of valid values that can be used for the callRequest field:
GET /api/v1/enums/callrequest
The response includes a list of valid values:
{
"_links": {
"self": {
"href": "/api/v1/enums/callrequest"
}
},
"values": [
{
"name": "answerCall", "defaultLabel": "answerCall"
},
{
"name": "hangupCall", "defaultLabel": "hangupCall"
}
]
}
The string value in the name property can be used as the value of the callRequest
property in subsequent POST requests to modify the call state.
By programmatically parsing it at runtime, client can ensure they are using the correct string value.
The purpose of a Third Party Call Control API is to enable applications to monitor calls, and to invoke requests to make calls, and modify existing calls.
Details on how to initiate a call, retrieve a parked call, and query a user’s active calls are documented in the ActiveCalls Resource section of Call Management Resources. Commands to answer, hang up, or invoke call features are documented in the Call Resource section of Call Management Resources.
It is possible to monitor call activity using Events received over a WebSocket. In order to receive Call, Presence, or ParkLocation events, a Subscription Set must be created, and the client must register for specific events. The details on how to register for events are documented in the Event Management Resources section.
Detail on the Event content is contained in the Events section.
It is also possible to get the current status information of a user or park location as described in the Presence Status Resource and ParkLocation Status Resource. This is normally used by an application that has registered for events to get an initial status.
Third Party Call Control Commands
The silhouette API includes the following Third Party Call Control (3PCC) commands. All commands are supported for MiNET and VVX devices. The following table shows which commands are supported for BSTs (Basic SIP Terminals).
Command | BST Support |
Yes | |
Yes | |
Yes | |
Yes | |
No | |
Yes | |
Yes | |
No | |
No | |
Yes | |
Yes | |
Yes | |
Yes |
For more information, see API Resources and Subscription Sets.
Description
Places a call. Allows the user to place the call from an external number as part of the Bring Your Own Number (BYON) feature. The feature still places a call from the user’s default device when no device is specified.
Details
https://{ip}/api/v1/calls
{"request":"makeCall" "from":"[email protected]", "to":"912125551212",
"deviceIdType":"external", "deviceId": "{external number}"}
For a basic SIP terminal (BST) to support makeCall, the SIP phone must
be able to handle a minimum of two calls concurrently
have an available line appearance
accept reINVITEs
be able to send reINVITEs
Description
Gets a list of active calls for the authorized user.
Details
https://{ip}/api/v1/calls/{callObserverId}
For a basic SIP terminal (BST) to support getCalls, the SIP phone must
be able to handle a minimum of two calls concurrently
have an available line appearance
accept reINVITEs
be able to send reINVITEs
Description
Gets the details of a particular call based on the callObserverId.
Details
https://{ip}/api/v1/calls/{callObserverId}
For a basic SIP terminal (BST) to support getCall, the SIP phone must
be able to handle a minimum of two calls concurrently
have an available line appearance
accept reINVITEs
be able to send reINVITEs
Description
Parks a specific call based on the callId.
To Park a call at system-generated (generic) location, remove featureData from the request body.
Details
https://{ip}/api/v1/calls/{callId}
{"callRequest":"parkCall", "myPartyId":"[email protected]", “featureData”:”4”}
For a basic SIP terminal (BST) to support parkCall, the SIP phone must
be able to handle a minimum of two calls concurrently
have an available line appearance
accept reINVITEs
be able to send reINVITEs
Description Answers a call.
Details
https://{ip}/api/v1/calls/{callObserverId}
{"callRequest":"answerCall", ”myPartyId”:"[email protected]"}
Description Hangs up a call.
Details
https://{ip}/api/v1/calls/{callObserverId}
{"callRequest":"hangupCall"}
For a basic SIP terminal (BST) to support hangupCall, the SIP phone must
be able to handle a minimum of two calls concurrently
have an available line appearance
accept reINVITEs
be able to send reINVITEs
Description
Deflects a ringing call to coverage. Details
https://{ip}/api/v1/calls/{callId}
{"callRequest":"deflectCall", "myPartyId":"[email protected]" }
For a basic SIP terminal (BST) to support deflectCall, the SIP phone must
be able to handle a minimum of two calls concurrently
have an available line appearance
accept reINVITEs
be able to send reINVITEs
Description
Holds a specific call based on the callId.
Details
https://{ip}/api/v1/calls/{callId}
{"callRequest":"holdCall", "myPartyId":[email protected] }
Description
Resumes a specific call based on the callId from a hold state.
Details
https://{ip}/api/v1/calls/{callId}
{"callRequest":"resumeHeldCall", "myPartyId":"[email protected]" }
Description
Transfers active and held calls. Details
https://{ip}/api/v1/calls/{callId2}
{"callRequest":"transfer", "myPartyId":"[email protected]", "otherCallId":"{callId1}" }
For a basic SIP terminal (BST) to support transferCall, the SIP phone must
be able to handle a minimum of two calls concurrently
have an available line appearance
accept reINVITEs
be able to send reINVITEs
Description
Retrieves a parked call at a park location referenced by featureData. Details
POST https://{ip}/api/v1/calls
{"request":"retrieveParkedCall" "from":"[email protected]", "featureData”:”4" "deviceIdType":"device", "deviceId": "23"}
For a basic SIP terminal (BST) to support retrieveCall, the SIP phone must
be able to handle a minimum of two calls concurrently
have an available line appearance
accept reINVITEs
be able to send reINVITEs
Applications use the Subscription Set Resource to subscribe to accounts. See Event Management Resources. Applications can subscribe to Call Events, Presence Events and ParkLocation Events. Events are streamed through a WebSocket and include
a callId, which is necessary for tracking calls for each subscriber involved. The smdrCallId in Third Party Call Control (3PCC) events correlates with the callid in the SMDR records and optionally in call segments if Segmented SMDR is enabled.
Call events provide the necessary information for tracking calls. Call events reference a callId, which can be used to associate events common to a single call on the account. Call events also reference the account. Call events report basic call events such as dial, ring, answer, offer, and end—although not all information is included in each event. Calls start with either an offer (incoming) or dial (outgoing) event and end with an “end” event. When a client starts up, if it tracks calls, it can get current calls to find out about existing calls. See ActiveCalls Resource and Call Management Resources. After that the events should provide all needed information.
Feature events including hold, resume, forward, and transfer are reported as call events. Call events are pushed to each subscribed application as they occur. Call events report the same basic information on accounts as the legacy call events, but are not identical. Call events reference the phone used by the associated user or location when relevant (events such as Answer).
===>
https://{webadminIP}/api/v1/calls
Description
Account has dialed a call. Details
{
“subscriptionSetId”:”12345”, “event”:”dial”,
“callId”:1, “observedParty”:”[email protected]”, “timestamp”:”2015-05-11T14:06:52-04”,
“version”:”v1”, “from”:”[email protected]”, “to”:”[email protected]”,
“sipCallId”:”[email protected]”, “dialingDeviceId”:1
}
Description
Dialed call is ringing.
Details
{
“subscriptionSetId”:”12345”, “event”:”ringback”, “callId”:1,
“observedParty”:”[email protected]”, “timestamp”:”2015-05-11T14:06:52-04”,
“version”:”v1”
}
Description
Call has been offered to account. Details
{
“subscriptionSetId”:”12345”, “event”:”offer”,
“callId”:1, “observedParty”:”[email protected]”, “timestamp”:”2015-05-11T14:06:52-04”,
“version”:”v1”, “from”:”[email protected]”, “to”:”[email protected]”, “via”:”[email protected]”,
“sipCallId”:”[email protected]”, “dialedDigits”:“100”,
“callingName”:”Homer Simpson”
}
Description
Call offered to account is ringing on a particular phone. Details
{
“subscriptionSetId”:”12345”, “event”:”ringing”, “callId”:1,
“observedParty”:”[email protected]”, “timestamp”:”2015-05-11T14:06:52-04”,
“version”:”v1”, “ringingDeviceId”:1
}
Description
Ringing call offered to account has been answered on a particular phone, or dialed call has been answered.
Details
{
“subscriptionSetId”:”12345”, “event”:”answer”, “callId”:1,
“observedParty”:”[email protected]”, “timestamp”:”2015-05-11T14:06:52-04”,
“version”:”v1”, “answeringParty”:”[email protected]”, “answeringDeviceId”:2
}
Description
Call has been forwarded. Details
{
“subscriptionSetId”:”12345”, “event”:”forward”, “callId”:1,
“observedParty”:”[email protected]”, “timestamp”:”2015-05-11T14:06:52-04”,
"version”:”v1”, “forwardingParty”:”[email protected]”, “forwardTarget”:”[email protected]”
}
Description
Call has been put on hold. Details
{
“subscriptionSetId”:”12345”, “event”:”hold”,
“callId”:1, “observedParty”:”[email protected]”, “timestamp”:”2015-05-11T14:06:52-04”,
“version”:”v1”, “holdingParty”:”[email protected]”, “heldParty”:”[email protected]”
}
Description
Issued for the held party when a call is put on hold. Details
{
“subscriptionSetId”:”12345”, “event”:”hold”,
“callId”:1, “observedParty”:”[email protected]”, “timestamp”:”2015-05-11T14:06:52-04”,
“version”:”v1”, “holdingParty”:”[email protected]”, “heldParty”:”[email protected]”
}
Description
Held call has been resumed. Details
{
“subscriptionSetId”:”12345”, “event”:”resume”, “callId”:1,
“observedParty”:”[email protected]”, “timestamp”:”2015-05-11T14:06:52-04”,
“version”:”v1”, “resumingParty”:”[email protected]”, “heldParty”:”[email protected]”
}
Description
Issued to the held party when a call is taken off hold. Details
{
“subscriptionSetId”:”12345”, “event”:”resume”, “callId”:1,
“observedParty”:”[email protected]”, “timestamp”:”2015-05-11T14:06:52-04”,
“version”:”v1”, “resumingParty”:”[email protected]”, “heldParty”:”[email protected]”
}
Description
Call has been transferred. Details
{
“subscriptionSetId”:”12345”, “event”:”transfer”, “callId”:1,
“observedParty”:”[email protected]”, “timestamp”:”2015-05-11T14:06:52-04”,
“version”:”v1”, “transferringParty”:”[email protected]”, “transferee”:”[email protected]”, “transferTarget”:”[email protected]”
}
Description
Call cannot be completed and has been forwarded to treatment. Details
{
“subscriptionSetId”:”12345”, “event”:”callError”, “callId”:1,
“observedParty”:”[email protected]”, “timestamp”:”2015-05-11T14:06:52-04”,
“version”:”v1”, “error”:”Subscriber unavailable”
}
Description
Account is no longer involved in a call . Details
{
“subscriptionSetId”:”12345”, “event”:”end”,
“callId”:1, “observedParty”:”[email protected]”, “timestamp”:”2015-05-11T14:06:52-04”,
“version”:”v1”, “from”:”[email protected]”, “to”:”[email protected]”, “endingParty”:”[email protected]”, “endReason”:”normal”, “callDuration”:”PT3M25S”
}
Description
Issued for the parking party when an account parks a call. Details
{
“callId”:1, "parkingPartyNumber"."100", "parkLocationId"."1", "observedParty"."120", "parkedPartyNumber"."101", “subscriptionSetId”:”12345”, “event”:”park”, "parkingPartyName"."Jack Slack", “version”:”v1”, “parkedPartyName”:”Joe Schmo” “timestamp”:”2015-05-11T14:06:52-04”,
}
Description
Issued for the parked party when a call is parked. Details
{
“callId”:1, "parkingPartyNumber"."100", "parkLocationId"."1", "observedParty"."120", "parkedPartyNumber"."101", “subscriptionSetId”:”12345”, “event”:”park”, "parkingPartyName"."Jack Slack", “version”:”v1”, “parkedPartyName”:”Joe Schmo” “timestamp”:”2015-05-11T14:06:52-04”,
}
Description
Issued for the retrieving party when an account retrieves a call from the parked state. Details
{
“callId”:1, "retrievingPartyName"."Joe Schmo", "parkLocationID"."3", "observedPartyID"."[email protected]", "parkedPartyNumber"."100", “subscriptionSetId”:”12345”, “event”:”retrieve”,
“version”:”v1”, “retrievingPartyID”:”101”, “parkedPartyName”:”Jack Slack” “timestamp”:”2015-05-11T14:06:52-04”,
}
Description
Issued for the parked party when a call is retrieved from park. Details
{
“callId”:1, "retrievingPartyName"."Joe Schmo", "parkLocationID"."3", "observedPartyID"."[email protected]", "parkedPartyNumber"."100", “subscriptionSetId”:”12345”, “event”:”retrieved”, “version”:”v1”, “retrievingPartyID”:”101”, “parkedPartyName”:”Jack Slack”
“timestamp”:”2015-05-11T14:06:52-04”,
}
Presence Events must be reported from the perspective of a single user or location extension. Currently, presence events are relevant only for users and locations. The application must explicitly subscribe for presence events for specific accounts. All presence events include a reference to the account, rather than particular calls. Clients that track presence status will want to get the current presence status of users at the same time that they register for presence events. See PresenceStatusByExtension Resource.
Presence events report basic account status such as idle, busy, available for calls, unavailable for calls, joined group, left group, available for ACD, unavailable for ACD. Presence events are pushed as they occur to each subscribed application.
The sipCallId header may or may not be present in the dial, offer, ringback, ringing, and answer events. To be included at any point in a call flow, the call must include at least one SIP endpoint (device, gateway, and so forth.). The particular events in a call event stream that contain a sipCallId header depends on the call scenario.
The via header may or may not be included in the offer event, depending on the call scenario.
Account is not involved in any calls. Details
{
“subscriptionSetId”:”12345”, “event”:”idle”, “observedParty”:”[email protected]”, “timestamp”:”2015-05-11T14:06:52+04”,
“version”:”v1”
}
Account is involved in one or more calls. Details
{
“subscriptionSetId”:”12345”, “event”:”busy”, “observedParty”:”[email protected]”, “timestamp”:”2015-05-11T14:06:52+04”,
“version”:”v1”
}
Account is available to receive calls (that is, logged in to at least one, connected device). Details
{
“subscriptionSetId”:”12345”, “event”:”available”, “observedParty”:”[email protected]”, “timestamp”:”2015-05-11T14:06:52+04”,
“version”:”v1”
}
Account is not available to receive calls (i.e., account is not logged into any connected devices.
Details
{
“subscriptionSetId”:”12345”, “event”:”unavailable”, “observedParty”:”[email protected]”, “timestamp”:”2015-05-11T14:06:52+04”,
“version”:”v1”
}
Account has joined a group. Details
{
“subscriptionSetId”:”12345”, “event”:”joinedGroup”, “observedParty”:”[email protected]”, “timestamp”:”2015-05-11T14:06:52+04”,
“version”:”v1”, “groupJoined”:”[email protected]”
}
Account has left a group. Details
{
“subscriptionSetId”:”12345”, “event”:”leftGroup”, “observedParty”:”[email protected]”, “timestamp”:”2015-05-11T14:06:52+04”,
“version”:”v1”, “groupLeft”:”[email protected]”
}
Account is available to participate in ACD applications. Details
{
“subscriptionSetId”:”12345”, “event”:”signedInAcd”, “observedParty”:”[email protected]”, “timestamp”:”2015-05-11T14:06:52+04”,
“version”:”v1”
}
Account is unavailable to participate in ACD applications. Details
{
“subscriptionSetId”:”12345”, “event”:”signedOutAcd”, “observedParty”:”[email protected]”, “timestamp”:”2015-05-11T14:06:52+04”,
“version”:”v1”
}
Account has turned DND off. Details
{
“subscriptionSetId”:”12345”, “event”:”dndOff”, “observedParty”:”[email protected]”, “timestamp”:”2015-05-11T14:06:52+04”,
“version”:”v1”
}
Account has turned DND on. Details
{
“subscriptionSetId”:”12345”, “event”:”dndOn”, “observedParty”:”[email protected]”, “timestamp”:”2015-05-11T14:06:52+04”,
“version”:”v1”
}
ParkLocation Events must be reported from the perspective of a single Park Location. The application must explicitly subscribe for ParkLocation events for specific Park Location or all Park Locations in a tenant. All ParkLocation events include a reference to the Park Location. Clients that track ParkLocation status will want to get the
current ParkLocation status of a ParkLocation at the same time that they register for ParkLocation events. See ParkLocationStatus Resource.
ParkLocation events report basic Park Location status such as idle, busy. ParkLocation events are pushed as they occur to each subscribed application.
ParkLocation is not involved in any calls. Details
{
“subscriptionSetId”:”12345”, “event”:”idle”, “observedParty”:”[email protected]”, “timestamp”:”2015-05-11T14:06:52+04”,
“version”:”v1”
}
ParkLocation is involved in one or more calls. Details
{
“subscriptionSetId”:”12345”, “event”:”busy”, “observedParty”:”[email protected]”, "parkedParty":"6132805555", "parkedPartyName":"Steve L" “timestamp”:”2015-05-11T14:06:52+04”,
“version”:”v1”
}
This section includes
The detailed documentation in this chapter includes references to information thatis visible only to Telco Users or which may not be enabled on all systems. Clients of this API are not able to view or modify this data. In particular, example messages may differ between this document and the live system. Use The HAL Browser to verify resource representations in your system.
You can view the complete interactive graph online at https://<webadminIP>/api/ browser/graph.html or using the “Resource Graph” link in the HAL browser. You can view a whole list of all resource models online at https://< webadminIP>/api/ browser/list.html or using the “Resource List” link in the HAL browser.
Navigation resources include:
API Root Resource—the API entry point; this resource varies depending on the authorization of the requesting user.
V1 Resource—the entry point to the V1 of the API; this resource varies depending on the authorization of the requesting user.
URI Template Dictionary—provides a list of URL templates of major resources supported by the API.
Enums List Resource—provides a list of all enum types used by the application.
Enum Resource—describes the general response format to a query for enum details.
Table of Contents
Sample GET Response Description
This resource is the entry point of the silhouette API.
This resource returns a list of potential resources an application client may wish to navigate to as a logical next step in using the silhouette API.
If the end user making the request is restricted to viewing data within a tenant, then basic information about that tenant will also be returned in this response.
GET
View API Root resource HEAD
Get just the header response
Permitted Authorities (as defined in API Guide)
Telco User
View
TenantAdmin
View
User
View
Location
View
Path
Type
Description
Visibility
tenantId
Number
The unique identifier of the requesting subscriber’s tenant. This may form
part of the AccountId. This property is only provided if the requester is a Subscriber or a Telco user with tenant scope.
TenantAdmin, User
tenantName
String
The tenant name of the requesting subscriber’s tenant. This property is only provided if the requester
is a Subscriber or a Telco user with tenant scope.
TenantAdmin, User
Relation
Description
Visibility
api:createWebsocket
The href defined by this link relation provides the URL to use to create
a WebSocket connection for the delivery of Call and Presence Events.
all
api:v1
The v1 resource is the entry point to the v1 version of the interface.
all
HTTP/1.1 200 OK
Content-Type: application/hal+json Content-Length: 353
{
"_links" : {
"curies" : {
"href" : "/api/releases/{rel}", "name" : "api",
"templated" : true
},
"self" : {
"href" : "/api"
},
"api:createWebsocket" : { "href" : "/api/ws"
},
"api:v1" : {
"href" : "/api/v1"
}
},
"tenantId" : 156,
"tenantName" : "Dave's Moose Hunting Supply"
}
Table of Contents
Sample GET Response Description
This relation returns a list of resources that an application client may wish to allow the end user to view and manage.
The content of this resource varies depending on the role and identity of the end user initiating the request.
TelcoAdmin users with Tenant Management permission will be provided with a link to explore tenant resources in the system
TelcoAdmin users with Tenant Scope and Call Control Management permission will
be provided with links to manage their event subscription sets and the presence status for users within their tenant
TenantAdmin users will be provided with links to explore the details of their tenant’s
data, their personal data, as well as links to manage their event subscription sets and view their own presence status
Non-admin users (Users and Locations) will be provided with links to explore details
of their own system usage.
GET
View V1 resources HEAD
Get just the header response
Permitted Authorities (as defined in API Guide)
Telco User |
GET | |
Telco User with Tenant Scope | GET |
TenantAdmin User | GET |
User | GET |
Location | GET |
Relation | Description | Visibility |
v1:tenants | Provides a list of tenants configured in the system. | Telco(TenantBasicOrAdvance Management) |
v1:systemAnnouncements | Provides a list of system announcement configured in the system. | Telco(TenantBasicOrAdvance Management) |
v1:defaultSystem Announcement | Provides the default system announcement setting details of the system. | Telco(TenantBasicOrAdvance Management) |
v1:customAnnouncementFiles | Lists all existing custom announcement files. | Telco(TenantBasicOrAdvance Management) |
v1:defaultAnnouncementFiles | Lists all existing default announcement files. | Telco(TenantBasicOrAdvance Management) |
v1:languages | Provide a list of Supported languages of the system. | Telco(TenantBasicOrAdvance Management, SystemManagement), TenantAdmin, User |
Relation | Description | Visibility |
v1:aaLanguages | Provide a list of Supported auto attendant languages of the system. | Telco(TenantBasicOrAdvance Management, SystemManagement), TenantAdmin |
v1:crPlatforms | Provide a list of CrPlatform of the system. | Telco(TenantBasicOrAdvance Management, SystemManagement) |
v1:priGroups | Provide a list of PRIGroup of the system. | Telco(SystemManagement) |
v1:routes | Provide a list of Route of the system. | Telco(SystemManagement) |
v1:dialPlans | Provide a list of DialPlan of the system. | Telco(SystemManagement) |
v1:enterprises | Provide a list of Enterprises of the system. | Telco(TenantBasicOrAdvance Management) |
v1:zones | Provide a list of Zone of the system. | Telco(SystemManagement, Tenant BasicOrAdvanceManagement, Site BasicOrAdvanceManagement) |
v1:codecSets | Provides a list of codecSets. | Telco(SystemManagement, Tenant BasicOrAdvanceManagement) |
v1:defaultSystemCodecSet | Provide the default system CodecSet setting details of the system. | Telco(SystemManagement, Tenant BasicOrAdvanceManagement, Site BasicOrAdvanceManagement) |
v1:brandDetails | Provide a list of BrandDetail of the system. | Telco(SystemManagement, Tenant BasicOrAdvanceManagement) |
v1:standardDhcpOptions | Provide a list of global standard DHCP options of the system. | Telco(SystemManagement) |
v1:customDhcpOptions | Provide a list of global custom DHCP options of the system. | Telco(SystemManagement) |
v1:tenantPhoneModels | List of Phone Models available for this tenant. | User |
Relation | Description | Visibility |
v1:macAddresses | Provides a list of MAC addresses. | Telco(TenantBasicOrAdvance Management) |
v1:serviceProviders | Provides a list of serviceProviders. | Telco(SystemManagement, Tenant BasicOrAdvanceManagement) |
v1:voicemailServers | Provides a list of voicemailServers. | Telco(ElementManagement) |
v1:carriers | Provides a list of carriers. | Telco(SystemManagement) |
v1:appServers | Provides a list of application servers. | Telco(ElementManagement, Tenant BasicOrAdvanceManagement) |
v1:gateways | Provides a list of gateways. | Telco(ElementManagement) |
v1:mediaServers | Provides a list of media servers. | Telco(ElementManagement) |
v1:conferenceServers | Provides a list of conference servers. | Telco(SystemManagement, Tenant BasicOrAdvanceManagement) |
v1:rtpProxyServers | Provides a list of RTP Proxy servers. | Telco(SystemManagement, Tenant BasicOrAdvanceManagement) |
v1:phoneAccessEntries | Provides a list of Phone Access Entries. | Telco(SystemManagement) |
v1:callpServers | Provides a list of Callp Servers. | Telco(ElementManagement, Tenant BasicOrAdvanceManagement) |
v1:licensing | Provides access to Silhouette licenses. | Telco(SystemManagement, Tenant BasicOrAdvanceManagement) |
v1:pinNotificationSettings | Manage PIN notification settings. | Telco(SystemManagement, Tenant BasicOrAdvanceManagement) |
v1:systemProperties | System properties management. | Telco(SystemManagement) |
v1:runningTasks | Provide a list of Running Tasks. | Telco(TenantBasicOrAdvance Management) |
Relation | Description | Visibility |
v1:vmLanguages | Provide a list of Supported Voicemail languages of the system. | Telco(TenantBasicOrAdvance Management, SystemManagement), TenantAdmin, User |
v1:activeCalls | Allows the client to retrieve a list of active calls for this subscriber. | ScopedTelco(CallControl), Tenant Admin, User |
v1:deviceStates | Allows the client to retrieve a list of device states. | ScopedTelco(TenantBasicOr AdvanceManagement), TenantBasic OrAdvanceManagement |
v1:eventSubscriptionSets | Enables a client application to register to receive Presence and Call Events for extensions within a tenant. | ScopedTelco(CallControl), Tenant Admin, User |
v1:extensions | Retrieves a list of configured extensions within the tenant. | ScopedTelco(CallControl), Tenant Admin, User |
v1:location | Provides details about the location’s configuration. This Link Relation is provided only when the requesting extension belongs to a location. | TenantAdmin, User |
v1:presenceStatusBy Extension | Allows a client application to retrieve the current Presence Status for the requesting user/location. For a Scoped TelcoAdmin request initiator, this template resource allows them to retrieve the Presence Status for an extension within the tenant. | ScopedTelco(CallControl), Tenant Admin, User |
v1:presenceStatusTenant Accounts | Allows a client application to retrieve the current Presence Status for all accounts in a tenant. For a Scoped TelcoAdmin request initiator, this template resource allows them to retrieve the Presence Status for all extensions within the tenant. | ScopedTelco(CallControl), Tenant Admin |
v1:presenceStatusTenantPark Locations | Allows a client application to retrieve the current Presence Status for park locations. For a Scoped TelcoAdmin request initiator, this template resource allows them to retrieve the Presence Status for all park locations within the tenant. | ScopedTelco(CallControl), Tenant Admin, User |
Relation | Description | Visibility |
v1:parkLocationStatus | Allows a client application to retrieve the current Status for the specified park location. | ScopedTelco(CallControl), Tenant Admin, User |
v1:sendMessageUsers | Allows a client application to send an emergency message to phones of specific users or locations. | ScopedTelco(CallControl), Tenant Admin |
v1:sendMessageSites | Allows a client application to send an emergency message to phones in specific sites. | ScopedTelco(CallControl), Tenant Admin |
v1:tenant | Provides details about the tenant business configuration. | ScopedTelco(CallControl), Tenant Admin |
v1:user | Provides details about the user’s personal configuration. This Link Relation is provided only when the requesting extension belongs to a TenantAdmin or non-admin user. | TenantAdmin, User |
v1:userPhones | Provides a list of the user/location’s logged-in phones and identifies their default Click-to-Call and Intercom devices. | TenantAdmin, User |
v1:externalContacts | List of ExternalContact configured by the current tenant. This link are not available for Telco Users. | TenantAdmin, User |
v1:uriDictionary | Provides a list of URI Templates which can be used to directly navigate to specific entity instances by applying correct entity identifiers to the URI. | Telco(all), ScopedTelco(CallControl), TenantAdmin |
HTTP/1.1 200 OK
Content-Type: application/hal+json Content-Length: 5603
{
"_links" : {
"curies" : {
"href" : "/api/v1/rels/{rel}", "name" : "v1",
"templated" : true
},
"self" : {
"href" : "/api/v1"
},
"v1:aaLanguages" : {
"href" : "/api/v1/aalanguages{?filter}", "templated" : true
},
"v1:activeCalls" : { "href" : "/api/v1/calls"
},
"v1:appServers" : {
"href" : "/api/v1/appservers{?expand,filter}", "templated" : true
},
"v1:brandDetails" : {
"href" : "/api/v1/branddetails{?filter}", "templated" : true
},
"v1:callpServers" : {
"href" : "/api/v1/callpservers{?expand}", "templated" : true
},
"v1:carriers" : {
"href" : "/api/v1/carriers{?expand,filter}", "templated" : true
},
"v1:codecSets" : {
"href" : "/api/v1/codecsets{?expand,filter}", "templated" : true
},
"v1:conferenceServers" : {
"href" : "/api/v1/conferenceservers{?expand,filter}", "templated" : true
},
"v1:crPlatforms" : {
"href" : "/api/v1/crplatforms{?expand,filter}", "templated" : true
},
"v1:customAnnouncementFiles" : {
"href" : "/api/v1/customannouncementfiles/{langCode}{?filter}", "templated" : true
},
"v1:customDhcpOptions" : {
"href" : "/api/v1/customdhcpoptions{?filter}", "templated" : true
},
"v1:defaultAnnouncementFiles" : {
"href" : "/api/v1/defaultannouncementfiles/{langCode}{?filter}", "templated" : true
},
"v1:defaultSystemAnnouncement" : {
"href" : "/api/v1/defaultsystemannouncement{?expand}", "templated" : true
},
"v1:defaultSystemCodecSet" : {
"href" : "/api/v1/defaultcodecset{?expand}", "templated" : true
},
"v1:deviceStates" : {
"href" : "/api/v1/devicestates"
},
"v1:dialPlans" : {
"href" : "/api/v1/dialplans{?expand,filter}", "templated" : true
},
"v1:enterprises" : {
"href" : "/api/v1/enterprises{?expand,filter}", "templated" : true
},
"v1:eventSubscriptionSets" : {
"href" : "/api/v1/subscriptions/ws/{webSocketId}/subscriptionsets", "templated" : true
},
"v1:extensions" : {
"href" : "/api/v1/tenants/156/extensions{?expand,filter,extensionType,agent}", "templated" : true
},
"v1:externalContacts" : {
"href" : "/api/v1/tenants/156/externalcontacts{?expand,filter}", "templated" : true
},
"v1:gateways" : {
"href" : "/api/v1/gateways{?expand,filter}", "templated" : true
},
"v1:languages" : {
"href" : "/api/v1/languages{?filter}", "templated" : true
},
"v1:licensing" : {
"href" : "/api/v1/licensing"
},
"v1:macAddresses" : {
"href" : "/api/v1/macaddresses?macAddress={macAddress}", "templated" : true
},
"v1:mediaServers" : {
"href" : "/api/v1/mediaservers{?expand,filter}", "templated" : true
},
"v1:parkLocationStatus" : {
"href" : "/api/v1/presencestatus/parklocationstatus/{accountId}", "templated" : true
},
"v1:phoneAccessEntries" : {
"href" : "/api/v1/phoneaccessentries{?expand,filter}", "templated" : true
},
"v1:pinNotificationSettings" : {
"href" : "/api/v1/pinnotificationsettings"
},
"v1:presenceStatusByExtension" : {
"href" : "/api/v1/presencestatus/tenants/156/extensions/4332"
},
"v1:presenceStatusTenantAccounts" : {
"href" : "/api/v1/presencestatus/tenants/156/extensions"
},
"v1:presenceStatusTenantParkLocations" : {
"href" : "/api/v1/presencestatus/tenants/156/parklocations"
},
"v1:priGroups" : {
"href" : "/api/v1/prigroups{?expand,filter}", "templated" : true
},
"v1:routes" : {
"href" : "/api/v1/routes{?expand,filter}", "templated" : true
},
"v1:rtpProxyServers" : {
"href" : "/api/v1/rtpproxyservers{?expand,filter}", "templated" : true
},
"v1:runningTasks" : {
"href" : "/api/v1/runningtasks{?expand,filter}", "templated" : true
},
"v1:sendMessageSites" : {
"href" : "/api/v1/sendmessage/tenants/156/alertsites"
},
"v1:sendMessageUsers" : {
"href" : "/api/v1/sendmessage/tenants/156/alertusers"
},
"v1:serviceProviders" : {
"href" : "/api/v1/serviceproviders{?expand,filter}", "templated" : true
},
"v1:standardDhcpOptions" : {
"href" : "/api/v1/standarddhcpoptions{?expand,filter}", "templated" : true
},
"v1:systemAnnouncements" : {
"href" : "/api/v1/systemannouncements{?expand,filter}", "templated" : true
},
"v1:systemProperties" : {
"href" : "/api/v1/systemproperties"
},
"v1:tenant" : {
"href" : "/api/v1/tenants/156"
},
"v1:tenantPhoneModels" : {
"href" : "/api/v1/tenants/156/phonemodels{?expand,filter}", "templated" : true
},
"v1:tenants" : {
"href" : "/api/v1/tenants{?expand,filter}", "templated" : true
},
"v1:uriDictionary" : {
"href" : "/api/v1/uridictionary"
},
"v1:user" : {
"href" : "/api/v1/tenants/156/users/4332"
},
"v1:userPhones" : {
"href" : "/api/v1/tenants/156/users/4332/phones{?expand,filter}", "templated" : true
},
"v1:vmLanguages" : {
"href" : "/api/v1/vmlanguages{?filter}", "templated" : true
},
"v1:voicemailServers" : {
"href" : "/api/v1/voicemailservers"
},
"v1:zones" : {
"href" : "/api/v1/zones{?expand,filter}", "templated" : true
}
}
}
Table of Contents
This resource is the URI Template Dictionary of the silhouette API. It returns a list of URI Templates of frequently used links which can be used to access a single Entity Resource.
Each list of resources in the service publishes an itemTemplate link relation that provides a templated URI that the client can use in conjunction with a known identifier value to resolve the URI to a specific instance URL. This resource gathers those templates into a single place so that a client that is identifier-aware can cache the templates and resolve them as required, which may help to reduce the number of required round-trip queries.
The URI Template Dictionary only provides URI Templates links visible to Telco and TenantAdmin users.
GET
View URI Template Dictionary resources HEAD
Get just the header response
Permitted Authorities (as defined in API Guide)
Telco User | View |
TenantAdmin | View |
This resource has no configurable properties.
Relation | Description | Visibility |
v1:call | A URI template for managing a specific Call. Clients that know the callId of the Call they’re seeking may use this URL to manage the resource instead of iterating over the list. Provided to requesters User or Location authority. | ScopedTelco(CallControl), Tenant Admin, User |
v1:deviceState | A URI template for retrieve state of a specific Device. Clients that know the device ID of the Device they’re seeking may use this URL to manage the resource instead of iterating over the list. Provided to requesters TelcoAdmin authority. | ScopedTelco(CallControl) |
v1:subscriptionSets | A URI template for managing a specific SubscriptionSet. Clients that know the UUID of the Subscription Set they’re seeking may use this URL to manage the resource instead of iterating over the list. Provided to requesters with User, Location, or Scoped TelcoAdmin authority. | ScopedTelco(CallControl), Tenant Admin, User |
v1:callEventAccount | A URI template for managing a specific Call Event Account of a SubscriptionSet. Clients that know the UUID of the SubscriptionSet and the Account ID they’re seeking may use this URL to manage the resource instead of iterating over the list. Provided to requesters with User, Location, or Scoped TelcoAdmin authority. | ScopedTelco(CallControl), Tenant Admin, User |
v1:presenceEventAccount | A URI template for managing a specific Presence Event Account of a SubscriptionSet. Clients that know the UUID of the SubscriptionSet and the Account ID they’re seeking may use this URL to manage the resource instead of iterating over the | ScopedTelco(CallControl), Tenant Admin, User |
Relation | Description | Visibility |
list. Provided to requesters with User, Location, or Scoped TelcoAdmin authority. | ||
v1:presenceStatusBy Extension | A URI template indicating how to retrieve the Presence Status for a specific extension. Clients that know the extension of the account they’re seeking may use this URL to retrieve the resource instead of iterating over the list. Provided to requesters with User, Location or Scoped TelcoAdmin authority. | ScopedTelco(CallControl), Tenant Admin, User |
v1:parkLocationStatus | A URI template indicating how to retrieve the Park Location Status for a specific park location. Clients that know the park location of the account they’re seeking may use this URL to retrieve the resource instead of iterating over the list. Provided to requesters with User, Location or Scoped TelcoAdmin authority. | ScopedTelco(CallControl), Tenant Admin, User |
v1:parkLocationEventAccount | A URI template for querying a specific Park Location Event Account. Clients that know the UUID of the Park Location Account ID they’re seeking may use this URL to query the resource instead of iterating over the list. Provided to requesters with User, Location, or Scoped TelcoAdmin authority. | ScopedTelco(CallControl), Tenant Admin, User |
v1:announcement | A URI template indicating how to retrieve a specific Announcement. Clients that know the announcement Id of the announcement they are seeking can use this URL to retrieve the resource, instead of iterating over the list. Provided to TelcoAdmin requesters only. | Telco(TenantBasicOrAdvance Management, SystemManagement), TenantAdmin |
v1:priGroup | A URI template indicating how to retrieve a specific PRIGroup. Clients that know the priGroupId of the PRIGroup they are seeking can use this URL to retrieve the resource, instead of iterating over the list. Provided to TelcoAdmin requesters only. | Telco(SystemManagement, Element Management) |
Relation | Description | Visibility |
v1:route | A URI template indicating how to retrieve a specific Route. Clients that know the routeId of the Route they are seeking can use this URL to retrieve the resource, instead of iterating over the list. Provided to TelcoAdmin requesters only. | Telco(SystemManagement) |
v1:dialPlan | A URI template indicating how to retrieve a specific DialPlan. Clients that know the dialPlanId of the DialPlan they are seeking can use this URL to retrieve the resource, instead of iterating over the list. Provided to TelcoAdmin requesters only. | Telco(SystemManagement) |
v1:zone | A URI template indicating how to retrieve a specific Zone. Clients that know the zoneId of the Zone they are seeking can use this URL to retrieve the resource, instead of iterating over the list. Provided to TelcoAdmin requesters only. | Telco(TenantBasicOrAdvance Management, SiteBasicOrAdvance Management, SystemManagement) |
v1:codecSet | A URI template indicating how to retrieve a specific CodecSet. Clients that know the codecId of the CodecSet they are seeking can use this URL to retrieve the resource, instead of iterating over the list. Provided to TelcoAdmin requesters only. | Telco(TenantBasicOrAdvance Management, SystemManagement) |
v1:gateway | A URI template indicating how to retrieve a specific Gateway. Clients that know the gatewayId of the Gateway they are seeking can use this URL to retrieve the resource, instead of iterating over the list. Provided to requesters with Tenant Admin or TelcoAdmin authority. | Telco(TenantBasicOrAdvance Management), TenantAdmin, User |
v1:crPlatform | A URI template indicating how to retrieve a specific CR Platform. Clients that know the crPlatformId of the CR Platform they are seeking can use this URL to retrieve the resource, instead of iterating over the list. Provided to TelcoAdmin requesters only. | Telco(TenantBasicOrAdvance Management, SystemManagement) |
Relation | Description | Visibility |
v1:brandDetail | A URI template indicating how to retrieve a specific BrandDetail. Clients that know the brandDetailId of the BrandDetail they are seeking can use this URL to retrieve the resource, instead of iterating over the list. Provided to TelcoAdmin requesters only. | Telco(SystemManagement) |
v1:carrier | A URI template indicating how to retrieve a specific Carrier. Clients that know the carrierId of the Carrier they are seeking can use this URL to retrieve the resource, instead of iterating over the list. Provided to TelcoAdmin requesters only. | Telco(TenantBasicOrAdvance Management, SystemManagement) |
v1:mediaServer | A URI template indicating how to retrieve a specific MediaServer. Clients that know the codecId of the MediaServer they are seeking can use this URL to retrieve the resource, instead of iterating over the list. Provided to TelcoAdmin requesters only. | Telco(TenantBasicOrAdvance Management, SystemManagement), TenantAdmin |
v1:enterprise | A URI template indicating how to retrieve a specific Enterprise. Clients that know the enterpriseId of the Enterprise they are seeking can use this URL to retrieve the resource, instead of iterating over the list. Provided to TelcoAdmin requesters only. | Telco(TenantBasicOrAdvance Management) |
v1:conferenceServer | A URI template indicating how to retrieve a specific ConferenceServer. Clients that know the codecId of the ConferenceServer they are seeking can use this URL to retrieve the resource, instead of iterating over the list. Provided to TelcoAdmin requesters only. | Telco(TenantBasicOrAdvance Management, SystemManagement), TenantAdmin |
v1:rtpProxyServer | A URI template indicating how to retrieve a specific ConferenceServer. Clients that know the codecId of the RtpProxyServer they are seeking can use this URL to retrieve the resource, instead of iterating over the list. Provided to TelcoAdmin requesters only. | Telco(TenantBasicOrAdvance Management, SystemManagement), TenantAdmin |
Relation | Description | Visibility |
v1:tenant | A URI template indicating how to retrieve a specific Tenant. Clients that know the tenantId of the tenant they are seeking can use this URL to retrieve the resource, instead of iterating over the list. Provided to TelcoAdmin requesters only. | Telco(TenantBasicOrAdvance Management, SiteBasicOrAdvance Management), TenantAdmin |
v1:staticSite | A URI template indicating how to retrieve a specific Site. Clients that know the siteId of the (non-dynamic) site they are seeking can use this URL to retrieve the resource, instead of iterating over the list. Provided to TelcoAdmin requesters only. | Telco(TenantBasicOrAdvance Management, SiteBasicOrAdvance Management), TenantAdmin |
v1:dynamicSite | A URI template indicating how to retrieve a specific Dynamic Site. Clients that know the siteId of the Dynamic Site they are seeking can use this URL to retrieve the resource, instead of iterating over the list. Provided to TelcoAdmin requesters only. | Telco(TenantBasicOrAdvance Management, SiteBasicOrAdvance Management), TenantAdmin |
v1:did | A URI template indicating how to retrieve a specific DID. Clients that know the didId of the DID they are seeking can use this URL to retrieve the resource, instead of iterating over the list. Provided to TelcoAdmin requesters only. | Telco(TenantBasicOrAdvance Management, SiteBasicOrAdvance Management), TenantAdmin |
v1:businessHoursProfile | A URI template indicating how to retrieve a specific Business HoursProfile. Clients that know the businessHoursId of the Business Hours they are seeking can use this URL to retrieve the resource, instead of iterating over the list. Provided to TenantAdmin and TelcoAdmin requesters only. | Telco(TenantBasicOrAdvance Management, SiteBasicOrAdvance Management), TenantAdmin |
v1:callGroup | A URI template indicating how to retrieve a specific Call Group. Clients that know the callGroupId of the call group they are seeking can use this URL to retrieve the resource, instead of iterating over the list. Provided to TenantAdmin and TelcoAdmin requesters only. | Telco(TenantBasicOrAdvance Management), TenantAdmin, User |
Relation | Description | Visibility |
v1:keyProfile | A URI template indicating how to retrieve a specific Key Profile. Clients that know the keyProfileId of the key profile they are seeking can use this URL to retrieve the resource, instead of iterating over the list. Provided to TenantAdmin and TelcoAdmin requesters only. | Telco(TenantBasicOrAdvance Management), TenantAdmin, User |
v1:callPermissionProfile | A URI template indicating how to retrieve a specific Call Permission Profile. Clients that know the call PermissionProfileId of the call permission profile they are seeking can use this URL to retrieve the resource, instead of iterating over the list. Provided to TenantAdmin and TelcoAdmin requesters only. | Telco(TenantBasicOrAdvance Management), TenantAdmin, User |
v1:extension | A URI template indicating how to use a known extension value to find a specific Extension resource. Provided to requesters with Tenant Admin and TelcoAdmin authority. | Telco(TenantBasicOrAdvance Management), TenantAdmin, User |
v1:user | A URI template indicating how to retrieve a specific User resource. Clients that know the extension of the user they are seeking can use this URL to retrieve the resource, instead of iterating over the list. Provided to requesters with TenantAdmin and TelcoAdmin authority. | Telco(TenantBasicOrAdvance Management), TenantAdmin, User |
v1:location | A URI template indicating how to use a known subscriber extension to find a specific Location. Provided to requesters with TenantAdmin and TelcoAdmin authority. | Telco(TenantBasicOrAdvance Management), TenantAdmin, User |
v1:acd | A URI template indicating how to retrieve a specific ACD. Clients that know the acdId of the ACD they are seeking can use this URL to retrieve the resource, instead of iterating over the list. Provided to requesters with TenantAdmin and TelcoAdmin authority. | Telco(TenantBasicOrAdvance Management), TenantAdmin, User |
v1:autoAttendant | A URI template indicating how to retrieve a specific AutoAttendant. Clients that know the autoAttendant | Telco(TenantBasicOrAdvance Management), TenantAdmin, User |
Relation | Description | Visibility |
Id of the AutoAttendant they are seeking can use this URL to retrieve the resource, instead of iterating over the list. Provided to requesters with TenantAdmin and TelcoAdmin authority. | ||
v1:phone | A URI template indicating how to retrieve a specific Phone. Clients that know the extension of the Phone they are seeking can use this URL to retrieve the resource, instead of iterating over the list. Provided to requesters with TenantAdmin or TelcoAdmin authority. | Telco(TenantBasicOrAdvance Management), TenantAdmin, User |
v1:externalContact | A URI template indicating how to retrieve a specific ExternalContact. Clients that know the externalContact Id of the ExternalContact they are seeking can use this URL to retrieve the resource, instead of iterating over the list. Provided to requesters with TenantAdmin or TelcoAdmin authority. | Telco(TenantBasicOrAdvance Management), TenantAdmin, User |
v1:callpServer | A URI template indicating how to retrieve a specific Callp Server. Clients that know the callpId of the Callp Server they are seeking can use this URL to retrieve the resource, instead of iterating over the list. Provided to requesters with Tenant Admin or TelcoAdmin authority. | Telco(TenantBasicOrAdvance Management), TenantAdmin, User |
v1:serviceProvider | A URI template indicating how to retrieve a specific Service Provider. Clients that know the serviceProvider Id of the Service Provider they are seeking can use this URL to retrieve the resource, instead of iterating over the list. Provided to requesters with TenantAdmin or TelcoAdmin authority. | Telco(TenantBasicOrAdvance Management), TenantAdmin, User |
v1:voicemailServer | A URI template indicating how to retrieve a specific Voicemail Server. Clients that know the voicemail ServerId of the Voicemail Server they are seeking can use this URL to retrieve the resource, instead of | Telco(TenantBasicOrAdvance Management), TenantAdmin, User |
Relation | Description | Visibility |
iterating over the list. Provided to requesters with TenantAdmin or TelcoAdmin authority. |
This resource contains no expandable elements.
HTTP/1.1 200 OK
Content-Type: application/hal+json Content-Length: 5142
{
"_links" : {
"curies" : {
"href" : "/api/v1/rels/{rel}", "name" : "v1",
"templated" : true
},
"self" : {
"href" : "/api/v1/uridictionary"
},
"v1:acd" : {
"href" : "/api/v1/tenants/{tenantId}/acds/{acdId}", "templated" : true
},
"v1:announcement" : {
"href" : "/api/v1/announcements/{announcementId}", "templated" : true
},
"v1:autoAttendant" : {
"href" : "/api/v1/tenants/{tenantId}/autoattendants/{autoAttendantId}", "templated" : true
},
"v1:brandDetail" : {
"href" : "/api/v1/branddetails/{brandDetailId}", "templated" : true
},
"v1:businessHoursProfile" : {
"href" : "/api/v1/tenants/{tenantId}/businesshours/{businessHourId}", "templated" : true
},
"v1:call" : {
"href" : "/api/v1/calls/{callObserverId}", "templated" : true
},
"v1:callEventAccount" : {
"href" : "/api/v1/subscriptions/ws/{webSocketId}/subscriptionsets/{subscriptionSetId}/
calleventaccounts/{accountId}", "templated" : true
},
"v1:callGroup" : {
"href" : "/api/v1/tenants/{tenantId}/callinggroups/{callGroupId}", "templated" : true
},
"v1:callPermissionProfile" : {
"href" : "/api/v1/tenants/{tenantId}/callpermissionprofiles/{callPermissionProfileId}", "templated" : true
},
"v1:callpServer" : {
"href" : "/api/v1/callpservers/{callpId}", "templated" : true
},
"v1:carrier" : {
"href" : "/api/v1/carriers/{carrierId}", "templated" : true
},
"v1:codecSet" : {
"href" : "/api/v1/codecsets/{codecSetId}", "templated" : true
},
"v1:conferenceServer" : {
"href" : "/api/v1/conferenceservers/{conferenceServerId}", "templated" : true
},
"v1:crPlatform" : {
"href" : "/api/v1/crplatforms/{crPlatformId}", "templated" : true
},
"v1:deviceState" : {
"href" : "/api/v1/devicestates/{deviceId}", "templated" : true
},
"v1:dialPlan" : {
"href" : "/api/v1/dialplans/{dialPlanId}", "templated" : true
},
"v1:did" : {
"href" : "/api/v1/tenants/{tenantId}/dids/{didId}", "templated" : true
},
"v1:dynamicSite" : {
"href" : "/api/v1/tenants/{tenantId}/dynamicsites/{siteId}", "templated" : true
},
"v1:enterprise" : {
"href" : "/api/v1/enterprises/{enterpriseId}", "templated" : true
},
"v1:extension" : {
"href" : "/api/v1/tenants/{tenantId}/extensions/{extension}", "templated" : true
},
"v1:externalContact" : {
"href" : "/api/v1/tenants/{tenantId}/externalcontacts/{externalContactId}", "templated" : true
},
"v1:gateway" : {
"href" : "/api/v1/gateways/{gatewayId}", "templated" : true
},
"v1:keyProfile" : {
"href" : "/api/v1/tenants/{tenantId}/keyprofiles/{keyProfileId}", "templated" : true
},
"v1:location" : {
"href" : "/api/v1/tenants/{tenantId}/locations/{extension}", "templated" : true
},
"v1:mediaServer" : {
"href" : "/api/v1/mediaservers/{mediaServerId}", "templated" : true
},
"v1:parkLocationEventAccount" : {
"href" : "/api/v1/subscriptions/ws/{webSocketId}/subscriptionsets/{subscriptionSetId}/ parklocationeventaccounts/{accountId}",
"templated" : true
},
"v1:parkLocationStatus" : {
"href" : "/api/v1/presencestatus/parklocationstatus/{accountId}", "templated" : true
},
"v1:phone" : {
"href" : "/api/v1/tenants/{tenantId}/phones/{phoneId}",
"templated" : true
},
"v1:presenceEventAccount" : {
"href" : "/api/v1/subscriptions/ws/{webSocketId}/subscriptionsets/{subscriptionSetId}/ presenceeventaccounts/{accountId}",
"templated" : true
},
"v1:presenceStatusByExtension" : {
"href" : "/api/v1/presencestatus/tenants/{tenantId}/extensions/{extension}", "templated" : true
},
"v1:priGroup" : {
"href" : "/api/v1/prigroups/{priGroupId}", "templated" : true
},
"v1:route" : {
"href" : "/api/v1/routes/{routeId}", "templated" : true
},
"v1:rtpProxyServer" : {
"href" : "/api/v1/rtpproxyservers/{rtpProxyServerId}", "templated" : true
},
"v1:serviceProvider" : {
"href" : "/api/v1/serviceproviders/{serviceProviderId}", "templated" : true
},
"v1:staticSite" : {
"href" : "/api/v1/tenants/{tenantId}/staticsites/{siteId}", "templated" : true
},
"v1:subscriptionSets" : {
"href" : "/api/v1/subscriptions/ws/{webSocketId}/subscriptionsets/{subscriptionSetId}", "templated" : true
},
"v1:tenant" : {
"href" : "/api/v1/tenants/{tenantId}", "templated" : true
},
"v1:user" : {
"href" : "/api/v1/tenants/{tenantId}/users/{extension}", "templated" : true
},
"v1:voicemailServer" : {
"href" : "/api/v1/voicemailservers/{voicemailServerId}", "templated" : true
},
"v1:zone" : {
"href" : "/api/v1/zones/{zoneId}", "templated" : true
}
}
}
Table of Contents
Modify List Request Description
This relation returns a list of enum values used by the API. Clients can use the items in the list to view possible values for enumerated properties used in the API.
GET
View User List HEAD
Get just the header response
Permitted Authorities (as defined in API Guide)
Telco User | GET |
Telco User with Tenant Scope | GET |
TenantAdmin User | GET |
User | GET |
Location | GET |
The Enum list resource provides a list of Enum resources.
Relation | Description | Visibility |
v1:itemTemplate | A URL template indicating how to retrieve a specific element of the list. Clients that know the unique identifier of the item they are seeking can use this URL to retrieve it, instead of iterating over the list. | same as item resource permission |
Name | Description | Visibility | Expandable |
parkLocationRange | Values for configuring the Tenant’s Park Location Range setting. See Tenant AdminSettings resource. | all | n |
extensionType | Supported Extension types. See the Extension resource. | all | n |
directorySearchType | Values for the tenant Directory Search Type setting. See Tenant Details resource. | all | n |
subscriberClidType | The possible origins for setting the CLID for a User or Location. | all | n |
parameterType | Used in error messages that contain substitutable parameters, this enum indicates the type of each parameter. | all | n |
callparkLocation Algorithm | Values for the Tenant’s Callpark Location Algorithm setting. See Tenant Details resource. | all | n |
signallingProtocol | Supported values for a phone’s signalling protocol. | all | n |
Name | Description | Visibility | Expandable |
autoAttendantAction Type | Actions that can be assigned to keys within an auto attendant. | all | n |
callRequest | Supported values for making a request to handle a call. See Active Calls resource. | all | n |
callForwardTarget Type | Supported values for specifying the Call Forward (Immediate) Target. See User/Location Features resource for details. | all | n |
callTargetType | Supported values for configuring the Call Forward No Answer call target type. See the User/ Location Features or Call Group details resource for details. | all | n |
callGroupType | Supported values for Call Group types. See the Tenant CallGroups resource for details. | all | n |
ringBehaviourType | Possible values for the Ring Behaviour Type of broadcast and hunt call groups. See the Tenant Call Groups resource for details. | all | n |
huntGroupType | Possible values for the Hunt Group Type for hunt call groups. See the Tenant Call Groups resource for details. | all | n |
vvxBlfRingToneType | Possible values for configuring the BLF ring on a VVX phone. See the User/Location Polycom Ring Tones resource for details. | all | n |
Name | Description | Visibility | Expandable |
mitelRingToneType | Possible values for configuring the Ring Tones on a Mitel phone. See the User/Location Mitel Ringtones resource for details. | all | n |
deviceIdType | Supported values for making a request to handle a call. See Active Calls resource. | all | n |
callDestinationType | Supported values for configuring the SCR call destination type. See the SCR related target resources for details. | all | n |
clidMatchType | Supported values for configuring the SCR CLID condition match type. See the SCR related CLID condition resources for details. | all | n |
keyFeatureDataType | Supported values for key feature data type. See the KeyFeature resource for details. | all | n |
keyFeatureData Require | Supported values for key feature data require type. See the KeyFeature resource for details. | all | n |
pinNotification MethodType | Supported values PIN notification type. See the PinNotificationMethod resource for details. | all | n |
routeType | Supported values of route type. See the Route resource for details. | all | n |
classOfService | Supported values of class of service. See the DialPlan Entry resource for details. | all | n |
Name | Description | Visibility | Expandable |
numberOfDigitsType | Supported values of number of digits type. See the DialPlanEntry resource for details. | all | n |
phoneSiteAssignment Type | Supported values of class of phone site assignment type. See the PhoneToSite resource for details. | all | n |
sipPhoneNameDefault Type | User agent or custom. | all | n |
codecType | The voice encoding types available on the system. | all | n |
packetization IntervalType | The packetization intervals available on the system. This is the number of speech frames per packet. | all | n |
moreHelpLinkType | Possible values for the more help link type. | all | n |
voicemailBoxState Type | Possible values for the voicemail box state type. | all | n |
gatewayType | Possible values for the gateway type. | all | n |
mediaServerType | Possible values for the media server type. | all | n |
conferenceServerType | Possible values for the conference server type. | all | n |
minetSiteIPAssign Type | Possible values for the minet site IP assign type. | all | n |
supportLink VisibilityType | Possible values for the support link visibility type. | all | n |
Name | Description | Visibility | Expandable |
supportLinkType | Possible values for the support link type. | all | n |
telcoGroupPermission Type | Possible values for permissions for Telco Groups and Users. | all | n |
presenceStateRouting OverrideType | list of types available for Presence State Routing Override. | all | n |
dhcpOptionValueType | Possible values for DHCP option value types. | all | n |
alertPriority | Supported values for the priority of an alert message. See Send Message resource. | all | n |
phoneMessageAlert Type | The options for Phone Message Alert Type. | all | n |
runningTaskType | The options for Running Task Type. | all | n |
runningTaskState | The options for Running Task State. | all | n |
HTTP/1.1 200 OK
Content-Type: application/hal+json Content-Length: 6894
{
"_links" : {
"curies" : [ {
"href" : "/api/v1/rels/{rel}", "name" : "v1",
"templated" : true
} ],
"self" : {
"href" : "/api/v1/enums"
},
"v1:itemTemplate" : [ {
"href" : "/api/v1/enums/{enumName}", "templated" : true
} ]
},
"_embedded" : { "pinNotificationMethodType" : [ {
"_links" : {
"self" : {
"href" : "/api/v1/enums/pinnotificationmethodtype"
}
}
} ],
"huntGroupType" : [ { "_links" : {
"self" : {
"href" : "/api/v1/enums/huntgrouptype"
}
}
} ],
"callTargetType" : [ { "_links" : {
"self" : {
"href" : "/api/v1/enums/calltargettype"
}
}
} ],
"deviceIdType" : [ { "_links" : {
"self" : {
"href" : "/api/v1/enums/deviceidtype"
}
}
} ],
"presenceStateRoutingOverrideType" : [ { "_links" : {
"self" : {
"href" : "/api/v1/enums/presencestateroutingoverridetype"
}
}
} ],
"callparkLocationAlgorithm" : [ { "_links" : {
"self" : {
"href" : "/api/v1/enums/callparklocationalgorithm"
}
}
} ],
"callDestinationType" : [ { "_links" : {
"self" : {
"href" : "/api/v1/enums/calldestinationtype"
}
}
} ],
"alertPriority" : [ { "_links" : {
"self" : {
"href" : "/api/v1/enums/alertpriority"
}
}
} ],
"codecType" : [ {
"_links" : {
"self" : {
"href" : "/api/v1/enums/codectype"
}
}
} ],
"autoAttendantActionType" : [ { "_links" : {
"self" : {
"href" : "/api/v1/enums/autoattendantactiontype"
}
}
} ],
"gatewayType" : [ {
"_links" : {
"self" : {
"href" : "/api/v1/enums/gatewaytype"
}
}
} ],
"subscriberClidType" : [ { "_links" : {
"self" : {
"href" : "/api/v1/enums/subscriberclidtype"
}
}
} ],
"conferenceServerType" : [ { "_links" : {
"self" : {
"href" : "/api/v1/enums/conferenceservertype"
}
}
} ],
"voicemailBoxStateType" : [ { "_links" : {
"self" : {
"href" : "/api/v1/enums/voicemailboxstatetype"
}
}
} ],
"runningTaskState" : [ { "_links" : {
"self" : {
"href" : "/api/v1/enums/runningtaskstate"
}
}
} ],
"telcoGroupPermissionType" : [ { "_links" : {
"self" : {
"href" : "/api/v1/enums/telcogrouppermissiontype"
}
}
} ],
"callGroupType" : [ { "_links" : {
"self" : {
"href" : "/api/v1/enums/callgrouptype"
}
}
} ],
"clidMatchType" : [ { "_links" : {
"self" : {
"href" : "/api/v1/enums/clidmatchtype"
}
}
} ],
"packetizationIntervalType" : [ { "_links" : {
"self" : {
"href" : "/api/v1/enums/packetizationintervaltype"
}
}
} ],
"routeType" : [ {
"_links" : {
"self" : {
"href" : "/api/v1/enums/routetype"
}
}
} ],
"callForwardTargetType" : [ { "_links" : {
"self" : {
"href" : "/api/v1/enums/callforwardtargettype"
}
}
} ],
"numberOfDigitsType" : [ { "_links" : {
"self" : {
"href" : "/api/v1/enums/numberofdigitstype"
}
}
} ],
"classOfService" : [ { "_links" : {
"self" : {
"href" : "/api/v1/enums/classofservice"
}
}
} ],
"ringBehaviourType" : [ { "_links" : {
"self" : {
"href" : "/api/v1/enums/ringbehaviourtype"
}
}
} ],
"signallingProtocol" : [ { "_links" : {
"self" : {
"href" : "/api/v1/enums/signallingprotocol"
}
}
} ],
"parameterType" : [ { "_links" : {
"self" : {
"href" : "/api/v1/enums/parametertype"
}
}
} ],
"keyFeatureDataRequire" : [ { "_links" : {
"self" : {
"href" : "/api/v1/enums/keyfeaturedatarequire"
}
}
} ],
"supportLinkType" : [ { "_links" : {
"self" : {
"href" : "/api/v1/enums/supportlinktype"
}
}
} ],
"directorySearchType" : [ { "_links" : {
"self" : {
"href" : "/api/v1/enums/directorysearchtype"
}
}
} ],
"vvxBlfRingToneType" : [ { "_links" : {
"self" : {
"href" : "/api/v1/enums/vvxblfringtonetype"
}
}
} ],
"keyFeatureDataType" : [ { "_links" : {
"self" : {
"href" : "/api/v1/enums/keyfeaturedatatype"
}
}
} ],
"dhcpOptionValueType" : [ { "_links" : {
"self" : {
"href" : "/api/v1/enums/dhcpoptionvaluetype"
}
}
} ],
"phoneSiteAssignmentType" : [ { "_links" : {
"self" : {
"href" : "/api/v1/enums/phonesiteassignmenttype"
}
}
} ],
"mitelRingToneType" : [ { "_links" : {
"self" : {
"href" : "/api/v1/enums/mitelringtonetype"
}
}
} ],
"minetSiteIPAssignType" : [ { "_links" : {
"self" : {
"href" : "/api/v1/enums/minetsiteipassigntype"
}
}
} ],
"moreHelpLinkType" : [ { "_links" : {
"self" : {
"href" : "/api/v1/enums/morehelplinktype"
}
}
} ],
"parkLocationRange" : [ { "_links" : {
"self" : {
"href" : "/api/v1/enums/parklocationrange"
}
}
} ],
"extensionType" : [ { "_links" : {
"self" : {
"href" : "/api/v1/enums/extensiontype"
}
}
} ],
"supportLinkVisibilityType" : [ { "_links" : {
"self" : {
"href" : "/api/v1/enums/supportlinkvisibilitytype"
}
}
} ],
"sipPhoneNameDefaultType" : [ { "_links" : {
"self" : {
"href" : "/api/v1/enums/sipphonenamedefaulttype"
}
}
} ],
"callRequest" : [ {
"_links" : {
"self" : {
"href" : "/api/v1/enums/callrequest"
}
}
} ],
"phoneMessageAlertType" : [ { "_links" : {
"self" : {
"href" : "/api/v1/enums/phonemessagealerttype"
}
}
} ],
"mediaServerType" : [ { "_links" : {
"self" : {
"href" : "/api/v1/enums/mediaservertype"
}
}
} ],
"runningTaskType" : [ { "_links" : {
"self" : {
"href" : "/api/v1/enums/runningtasktype"
}
}
} ]
}
}
This is a server-managed list and does not support element creation.
Table of Contents
Sample GET Response Description
The Enum Resource provides a list of possible values for an enumerated type.
For each property in the API that uses an enumerated type, the list of possible values for the property can be looked up in the enum dictionary. Each value list follows a consistent format, providing the real value that is used in the API as well as a suggested label for the value.
GET
View Enum Details HEAD
Get just the header response
Permitted Authorities (as defined in API Guide)
Telco User
GET
Telco User with Tenant Scope
GET
TenantAdmin User
GET
User
GET
Location
GET
Path
Type
Description
Visibility
values[]
Array
Each element of the values array represents an enum value and a suggested label that clients can use to present to the end user.
all
values[].name
String
Name is the (enum) value that is used in the resource that is referencing the enum.
all
values[].default Label
String
The default label property provides a string that can be used for presenting to the user. Localization is not currently supported.
all
HTTP/1.1 200 OK
Content-Type: application/hal+json Content-Length: 441
{
"_links" : {
"self" : {
"href" : "/api/v1/enums/extensiontype"
}
},
"values" : [ {
"name" : "userExt", "defaultLabel" : "userExt"
}, {
"name" : "locationExt", "defaultLabel" : "locationExt"
}, {
"name" : "acdExt", "defaultLabel" : "acdExt"
}, {
"name" : "groupExt", "defaultLabel" : "groupExt"
}, {
"name" : "autoAttendantExt", "defaultLabel" : "autoAttendantExt"
} ]
}
Event Management resources include:
Event Subscription Sets List Resource—returns a list of Subscriptions Sets associated with a specific WebSocket belonging to the requesting user.
SubscriptionSets Resource—used to register for and manage the delivery of events on the WebSocket.
CallEventSubscriptions—exists within a Subscription Set, and manages the accounts for which Call Events are issued.
Call Event Account Resource—identifies an Account for subscribing to Call Events.
EmergencyCallAlertEventSubscriptions—exists within a Subscription Set, and manages subscriptions for the Emergency Call Alert Events.
PresenceEventSubscriptions—exists within a Subscription Set, and manages the accounts for which Presence Events are issued.
Presence Event Account Resource—returns a list of the Accounts for which there are Presence Event Subscriptions on this Subscription Set.
ParkLocationEventSubscriptions—exists within a Subscription Set, and manages the Park Locations for which ParkLocation Events are issued.
Park Location Event Account Resource—returns a list of the Park Locations for which there are ParkLocation Event Subscriptions on this Subscription Set.
Event Subscription Sets List Resource
Table of Contents
This resource returns a list of Subscriptions Sets associated with a specific WebSocket that belong to the requesting user, and is used to create a new Subscription Set to deliver events over the indicated WebSocket.
Subscription Sets exist and must be created in the context of a WebSocket. When a new subscription set is created a UUID will be generated to identify it. Once the Subscription Set is created, the client must register for the events it wishes to receive as part of the set.
GET
View Subscription Set List HEAD
Get just the header response POST
Create a new Subscription Set
Permitted Authorities (as defined in API Guide)
Telco Call Control User with Tenant Scope | GET, POST |
TenantAdmin Call Control User | GET, POST |
Non-admin Call Control User | GET, POST |
The Event Subscription Sets list returns a list of SubscriptionSets resources.
Relation | Description | Visibility |
v1:itemTemplate | A URL template indicating how to retrieve a specific element of the list. Clients that know the unique identifier of the item they are seeking can use this URL to retrieve it, instead of iterating over the list. | same as item resource permission |
Name | Description | Visibility | Expandable |
Each element of the subscriptionSets array represents a single subscriptionSet resource, and indicates the UUID and tenantId of the subscription Set. | ScopedTelco(CallControl), TenantAdmin, User | n |
HTTP/1.1 200 OK
Content-Type: application/hal+json Content-Length: 2085
{
"_links" : {
"curies" : [ {
"href" : "/api/v1/rels/{rel}", "name" : "v1",
"templated" : true
} ],
"self" : {
"href" : "/api/v1/subscriptions/ws/300f5121-17e0-477e-915a-830121cdc5d7/subscriptionsets"
},
"v1:itemTemplate" : [ {
"href" : "/api/v1/subscriptions/ws/300f5121-17e0-477e-915a-830121cdc5d7/subscriptionsets/
{subscriptionSetId}", "templated" : true
} ]
},
"_embedded" : { "subscriptionSets" : [ {
"_links" : {
"self" : {
"href" : "/api/v1/subscriptions/ws/300f5121-17e0-477e-915a-830121cdc5d7/ subscriptionsets/5817dfce-61a8-4c37-ab6d-d72ec78219e8"
},
"v1:callEventSubscriptions" : [ {
"href" : "/api/v1/subscriptions/ws/300f5121-17e0-477e-915a-830121cdc5d7/ subscriptionsets/5817dfce-61a8-4c37-ab6d-d72ec78219e8/calleventaccounts"
} ],
"v1:emergencyCallAlertEventSubscriptions" : [ {
"href" : "/api/v1/subscriptions/ws/300f5121-17e0-477e-915a-830121cdc5d7/ subscriptionsets/5817dfce-61a8-4c37-ab6d-d72ec78219e8/alertevent/emergencycall"
} ],
"v1:parkLocationEventSubscriptions" : [ {
"href" : "/api/v1/subscriptions/ws/300f5121-17e0-477e-915a-830121cdc5d7/ subscriptionsets/5817dfce-61a8-4c37-ab6d-d72ec78219e8/parklocationeventaccounts"
} ],
"v1:parkLocationStatusBySubscriptionSet" : [ {
"href" : "/api/v1/presencestatus/parklocationstatus/
ws/300f5121-17e0-477e-915a-830121cdc5d7/subscriptionsets/5817dfce-61a8-4c37-ab6d-d72ec78219e8"
} ],
"v1:presenceEventSubscriptions" : [ {
"href" : "/api/v1/subscriptions/ws/300f5121-17e0-477e-915a-830121cdc5d7/ subscriptionsets/5817dfce-61a8-4c37-ab6d-d72ec78219e8/presenceeventaccounts"
} ],
"v1:presenceStatusBySubscriptionSet" : [ {
"href" : "/api/v1/presencestatus/300f5121-17e0-477e-915a-830121cdc5d7/ subscriptionsets/5817dfce-61a8-4c37-ab6d-d72ec78219e8"
} ]
},
"subscriptionSetId" : "5817dfce-61a8-4c37-ab6d-d72ec78219e8", "tenantId" : 21375
} ]
}
}
Use a POST request to create a new SubscriptionSet.
No properties are required in the payload of the POST request.
POST /api/v1/subscriptions/ws/300f5121-17e0-477e-915a-830121cdc5d7/subscriptionsets HTTP/1.1 Content-Type: application/x-www-form-urlencoded; charset=ISO-8859-1
Host: localhost:34989
HTTP/1.1 200 OK
Content-Type: application/hal+json Content-Length: 1582
{
"_links" : {
"curies" : {
"href" : "/api/v1/rels/{rel}", "name" : "v1",
"templated" : true
},
"self" : {
"href" : "/api/v1/subscriptions/ws/300f5121-17e0-477e-915a-830121cdc5d7/
subscriptionsets/5817dfce-61a8-4c37-ab6d-d72ec78219e8"
},
"v1:callEventSubscriptions" : {
"href" : "/api/v1/subscriptions/ws/300f5121-17e0-477e-915a-830121cdc5d7/ subscriptionsets/5817dfce-61a8-4c37-ab6d-d72ec78219e8/calleventaccounts"
},
"v1:emergencyCallAlertEventSubscriptions" : {
"href" : "/api/v1/subscriptions/ws/300f5121-17e0-477e-915a-830121cdc5d7/ subscriptionsets/5817dfce-61a8-4c37-ab6d-d72ec78219e8/alertevent/emergencycall"
},
"v1:parkLocationEventSubscriptions" : {
"href" : "/api/v1/subscriptions/ws/300f5121-17e0-477e-915a-830121cdc5d7/ subscriptionsets/5817dfce-61a8-4c37-ab6d-d72ec78219e8/parklocationeventaccounts"
},
"v1:parkLocationStatusBySubscriptionSet" : {
"href" : "/api/v1/presencestatus/parklocationstatus/
ws/300f5121-17e0-477e-915a-830121cdc5d7/subscriptionsets/5817dfce-61a8-4c37-ab6d-d72ec78219e8"
},
"v1:presenceEventSubscriptions" : {
"href" : "/api/v1/subscriptions/ws/300f5121-17e0-477e-915a-830121cdc5d7/ subscriptionsets/5817dfce-61a8-4c37-ab6d-d72ec78219e8/presenceeventaccounts"
},
"v1:presenceStatusBySubscriptionSet" : {
"href" : "/api/v1/presencestatus/300f5121-17e0-477e-915a-830121cdc5d7/ subscriptionsets/5817dfce-61a8-4c37-ab6d-d72ec78219e8"
}
},
"subscriptionSetId" : "5817dfce-61a8-4c37-ab6d-d72ec78219e8", "tenantId" : 21375
}
Table of Contents
Sample GET Response Description
Each Subscription Set resource is used to register for and manage the delivery of events on the WebSocket. It holds two collections of eventAccounts: one represents the subscribed accounts for call events, and one represents the subscribed accounts for presence events.
A Subscription Set is associated with the user who creates it, and also the tenant that the user is a member of. After creating the subscription set, the client must
explicitly register to receive the events that it is interested in by adding accounts to the appropriate list: the server does not automatically add any event subscriptions.
When creating event subscriptions within a set, all Accounts must be associated with the tenant associated with the subscription set. A TenantAdmin may subscribe to events for any Account (user) within the tenant, but a non-admin user may only subscribe to events related to his own extension.
GET
View Subscription Set details HEAD
Get just the header response
Permitted Authorities (as defined in API Guide)
Telco Call Control User with Tenant Scope | GET, POST |
TenantAdmin Call Control User | GET, POST |
Non-admin Call Control User |
GET, POST |
Path | Type | Description | Visibility |
subscriptionSetId | String | The UUID that uniquely identifies this Subscription Set. | TenantAdmin, User |
tenantId | Number | The unique identifier of the Tenant for which subscriptions may be created within this SubscriptionSet. | TenantAdmin, User |
Relation | Description | Visibility |
v1:callEventSubscriptions | Use this link to query or modify the list of subscribed accounts for Call Events on this Subscription Set. | ScopedTelco(CallControl), Tenant Admin, User |
v1:emergencyCallAlertEvent Subscriptions | Use this link to query or modify the subscription of Emergency Call Alert Event on this Subscription Set. | ScopedTelco(CallControl), Tenant Admin |
v1:presenceEvent Subscriptions | Use this link to query or modify the list of subscribed accounts for Presence Events on this Subscription Set. | ScopedTelco(CallControl), Tenant Admin, User |
v1:presenceStatusBy SubscriptionSet | Use this link to query the current Presence Status of all accounts subscribed for Presence Events on this Subscription Set. | ScopedTelco(CallControl), Tenant Admin, User |
v1:parkLocationEvent Subscriptions | Use this link to query or modify the list of subscribed accounts for Park Location Events on this Subscription Set. | ScopedTelco(CallControl), Tenant Admin, User |
Relation | Description | Visibility |
v1:parkLocationStatusBy SubscriptionSet | Use this link to query the current Park Location Status of all accounts subscribed for Park Location Events on this Subscription Set. | ScopedTelco(CallControl), Tenant Admin, User |
HTTP/1.1 200 OK
Content-Type: application/hal+json Content-Length: 1582
{
"_links" : {
"curies" : {
"href" : "/api/v1/rels/{rel}", "name" : "v1",
"templated" : true
},
"self" : {
"href" : "/api/v1/subscriptions/ws/300f5121-17e0-477e-915a-830121cdc5d7/
subscriptionsets/5817dfce-61a8-4c37-ab6d-d72ec78219e8"
},
"v1:callEventSubscriptions" : {
"href" : "/api/v1/subscriptions/ws/300f5121-17e0-477e-915a-830121cdc5d7/ subscriptionsets/5817dfce-61a8-4c37-ab6d-d72ec78219e8/calleventaccounts"
},
"v1:emergencyCallAlertEventSubscriptions" : {
"href" : "/api/v1/subscriptions/ws/300f5121-17e0-477e-915a-830121cdc5d7/ subscriptionsets/5817dfce-61a8-4c37-ab6d-d72ec78219e8/alertevent/emergencycall"
},
"v1:parkLocationEventSubscriptions" : {
"href" : "/api/v1/subscriptions/ws/300f5121-17e0-477e-915a-830121cdc5d7/ subscriptionsets/5817dfce-61a8-4c37-ab6d-d72ec78219e8/parklocationeventaccounts"
},
"v1:parkLocationStatusBySubscriptionSet" : {
"href" : "/api/v1/presencestatus/parklocationstatus/
ws/300f5121-17e0-477e-915a-830121cdc5d7/subscriptionsets/5817dfce-61a8-4c37-ab6d-d72ec78219e8"
},
"v1:presenceEventSubscriptions" : {
"href" : "/api/v1/subscriptions/ws/300f5121-17e0-477e-915a-830121cdc5d7/ subscriptionsets/5817dfce-61a8-4c37-ab6d-d72ec78219e8/presenceeventaccounts"
},
"v1:presenceStatusBySubscriptionSet" : {
"href" : "/api/v1/presencestatus/300f5121-17e0-477e-915a-830121cdc5d7/ subscriptionsets/5817dfce-61a8-4c37-ab6d-d72ec78219e8"
}
},
"subscriptionSetId" : "5817dfce-61a8-4c37-ab6d-d72ec78219e8", "tenantId" : 21375
}
Call Events Subscriptions List
Table of Contents
Add Element Request Description
This relation returns a list of the Accounts for which there are Call Event Subscriptions on this Subscription Set.
GET
View Call Event Subscriptions HEAD
Get just the header response PUT
Replace the list of subscribed accounts on the server with the list provided in the request.
Permitted Authorities (as defined in API Guide)
Telco Call Control User with Tenant Scope | GET, PUT |
TenantAdmin Call Control User | GET, PUT |
Non-admin Call Control User | GET, PUT |
The Call Events Subscriptions list returns a list of Call Event Account resources.
Relation | Description | Visibility |
v1:itemTemplate | A URL template indicating how to retrieve a specific element of the list. Clients that know the unique identifier of the item they are seeking can use this URL to retrieve it, instead of iterating over the list. | same as item resource permission |
v1:extensions | List of valid extensions for the tenant which can be used for presence status subscription. | Telco(TenantBasicOrAdvance Management), TenantAdmin, User |
Name | Description | Visibility | Expandable |
Each Account representation in the event Account array reflects an extension for which events are generated. | TenantAdmin, User | n |
HTTP/1.1 200 OK
Content-Type: application/hal+json Content-Length: 995
{
"_links" : {
"curies" : [ {
"href" : "/api/v1/rels/{rel}", "name" : "v1",
"templated" : true
} ],
"self" : {
"href" : "/api/v1/subscriptions/ws/300f5121-17e0-477e-915a-830121cdc5d7/
subscriptionsets/5817dfce-61a8-4c37-ab6d-d72ec78219e8/calleventaccounts"
},
"v1:extensions" : [ {
"href" : "/api/v1/tenants/{tenantId}/extensions{?expand,filter,extensionType,agent}", "templated" : true
} ],
"v1:itemTemplate" : [ {
"href" : "/api/v1/subscriptions/ws/300f5121-17e0-477e-915a-830121cdc5d7/ subscriptionsets/5817dfce-61a8-4c37-ab6d-d72ec78219e8/calleventaccounts/{accountId}",
"templated" : true
} ]
},
"_embedded" : { "eventAccount" : [ {
"_links" : {
"self" : {
"href" : "/api/v1/subscriptions/ws/300f5121-17e0-477e-915a-830121cdc5d7/ subscriptionsets/5817dfce-61a8-4c37-ab6d-d72ec78219e8/calleventaccounts/[email protected]"
}
},
"accountId" : "[email protected]"
} ]
}
}
Use a PUT request specifying an array of AccountIds to create or fully replace the current set of call event subscriptions. Providing an empty list will have the effect of deleting all call event subscriptions on this subscription set.
The following properties are processed as part of each element in the PUT request. Any other content in the payload is ignored. This includes other properties that may be part of the GET response: if they are not documented here, they are ignored by the server if they are included as part of this request.
Path | Type | Description | Permission | Constraints |
eventAccounts | Array | An array of Account Ids | TenantAdmin, User | Required. The value must be an array of valid Account Ids in format <ext>@ <tenantId>. Empty array can be used to remove all current subscribed account. |
scope | Null | used for Park Location events | TenantAdmin, User | Not Required for call events |
PUT /api/v1/subscriptions/ws/300f5121-17e0-477e-915a-830121cdc5d7/ subscriptionsets/5817dfce-61a8-4c37-ab6d-d72ec78219e8/calleventaccounts HTTP/1.1 Content-Type: application/json; charset=UTF-8
Host: localhost:34921 Content-Length: 58
{
"scope" : null,
"eventAccounts" : [ "[email protected]" ]
}
HTTP/1.1 200 OK
Content-Type: application/hal+json Content-Length: 995
{
"_links" : {
"curies" : [ {
"href" : "/api/v1/rels/{rel}", "name" : "v1",
"templated" : true
} ],
"self" : {
"href" : "/api/v1/subscriptions/ws/300f5121-17e0-477e-915a-830121cdc5d7/ subscriptionsets/5817dfce-61a8-4c37-ab6d-d72ec78219e8/calleventaccounts"
},
"v1:extensions" : [ {
"href" : "/api/v1/tenants/{tenantId}/extensions{?expand,filter,extensionType,agent}", "templated" : true
} ],
"v1:itemTemplate" : [ {
"href" : "/api/v1/subscriptions/ws/300f5121-17e0-477e-915a-830121cdc5d7/ subscriptionsets/5817dfce-61a8-4c37-ab6d-d72ec78219e8/calleventaccounts/{accountId}",
"templated" : true
} ]
},
"_embedded" : { "eventAccount" : [ {
"_links" : {
"self" : {
"href" : "/api/v1/subscriptions/ws/300f5121-17e0-477e-915a-830121cdc5d7/ subscriptionsets/5817dfce-61a8-4c37-ab6d-d72ec78219e8/calleventaccounts/[email protected]"
}
},
"accountId" : "[email protected]"
} ]
}
}
This list does not directly support adding an element. A new element can be created in the list by using a PUT request to create a Call Event Account resource.
Table of Contents
Sample PUT Response Description
This resource identifies an Account for subscribing to Call Events. Issue a PUT request to this resource, specifying the Account in the URI, in order to start subscribing to call events for the account, or DELETE it to stop receiving call events.
Any account being subscribed to must belong to the same tenant that was used to create the subscription set. Permission to subscribe to events for a specific account depend upon the Authority of the requesting user: non-admin users may subscribe to call events only for their own extension, while other users may subscribe to call events for any extension within the tenant. Those with permission can subscribe to
multiple users at once using the format "[email protected]<tenantId>". Similarly, multiple accounts can be subscribed to using the terms: ALL_CALL_GROUP_EXTENSIONS, ALL_AA_EXTENSIONS, and ALL_ACD_EXTENSIONS. For for all users and locations, all broadcast/hunt/rollover groups, all AAs and all ACD queues within a tenant, register for ALL.
PUT
Add or replace an existing Account in the Subscription set DELETE
Remove an Account from the Subscription set
Permitted Authorities (as defined in API Guide)
Telco Call Control User with Tenant Scope
PUT, DELETE
TenantAdmin Call Control User
PUT, DELETE
Non-admin Call Control User
PUT, DELETE
Path
Type
Description
Visibility
accountId
String
The accountId identifies an account which is registered for Call Events within this Subscription Set.
TenantAdmin, User
The PUT request to this resource causes a new subscription to be added if there was no existing subscription for that account.
The PUT request does not require a payload.
PUT /api/v1/subscriptions/ws/300f5121-17e0-477e-915a-830121cdc5d7/ subscriptionsets/5817dfce-61a8-4c37-ab6d-d72ec78219e8/calleventaccounts/[email protected] HTTP/1.1 Content-Type: application/json; charset=UTF-8
Host: localhost:34921
HTTP/1.1 200 OK
Content-Type: application/hal+json Content-Length: 235
{
"_links" : {
"self" : {
"href" : "/api/v1/subscriptions/ws/300f5121-17e0-477e-915a-830121cdc5d7/
subscriptionsets/5817dfce-61a8-4c37-ab6d-d72ec78219e8/calleventaccounts/[email protected]"
}
},
"accountId" : "[email protected]"
}
Emergency Call Alert Events Subscriptions
Table of Contents
Sample PUT Response Description
This relation returns the subscription status of Emergency Call Alert Event Subscription on this Subscription Set.
GET
View Emergency Call Alert Event Subscription HEAD
Get just the header response PUT
Update the status on the server with the provided value in the request.
Permitted Authorities (as defined in API Guide)
Telco Call Control User with Tenant Scope
GET, PUT
TenantAdmin Call Control User
GET, PUT
The Emergency Call Alert Events Subscription returns the status of subscription.
HTTP/1.1 200 OK
Content-Type: application/hal+json Content-Length: 223
{
"_links" : {
"self" : {
"href" : "/api/v1/subscriptions/ws/300f5121-17e0-477e-915a-830121cdc5d7/
subscriptionsets/5817dfce-61a8-4c37-ab6d-d72ec78219e8/alertevent/emergencycall"
}
},
"allSites" : false
}
Use a PUT request to specify the status of subscription for Emergency Call Alert Event subscription.
The following properties are processed as part of the PUT request. Any other content in the payload is ignored. This includes other properties that may be part of the GET response: if they are not documented here, they are ignored by the server if they are included as part of this request.
Path
Type
Description
Permission
Constraints
allSites
Boolean
This will enable/
TenantAdmin
Required. The value
disable Emergency
must be true or false.
Call Alert Event
subscription for all
sites of tenant within
this Subscription Set.
PUT /api/v1/subscriptions/ws/300f5121-17e0-477e-915a-830121cdc5d7/ subscriptionsets/5817dfce-61a8-4c37-ab6d-d72ec78219e8/alertevent/emergencycall HTTP/1.1 Content-Type: application/json; charset=UTF-8
Host: localhost:37181 Content-Length: 23
{
"allSites" : true
}
HTTP/1.1 200 OK
Content-Type: application/hal+json Content-Length: 222
{
"_links" : {
"self" : {
"href" : "/api/v1/subscriptions/ws/300f5121-17e0-477e-915a-830121cdc5d7/
subscriptionsets/5817dfce-61a8-4c37-ab6d-d72ec78219e8/alertevent/emergencycall"
}
},
"allSites" : true
}
Presence Events Subscriptions List
Table of Contents
Add Element Request Description
This relation returns a list of the Accounts for which there are Presence Event Subscriptions on this Subscription Set.
GET
View Presence Event Subscriptions HEAD
Get just the header response PUT
Replace the list of subscribed accounts on the server with the list provided in the request.
Permitted Authorities (as defined in API Guide)
Telco Call Control User with Tenant Scope | GET, PUT |
TenantAdmin Call Control User | GET, PUT |
Non-admin Call Control User | GET, PUT |
The Presence Events Subscriptions list returns a list of Presence Event Account resources.
Relation | Description | Visibility |
v1:itemTemplate | A URL template indicating how to retrieve a specific element of the list. Clients that know the unique identifier of the item they are seeking can use this URL to retrieve it, instead of iterating over the list. | same as item resource permission |
v1:extensions | List of valid extensions for the tenant which can be used for presence status subscription. | Telco(TenantBasicOrAdvance Management), TenantAdmin, User |
Name | Description | Visibility | Expandable |
Each element in the event Account array reflects an account for which presence events are generated. | TenantAdmin, User | n |
HTTP/1.1 200 OK
Content-Type: application/hal+json Content-Length: 1139
{
"_links" : {
"curies" : [ {
"href" : "/api/v1/rels/{rel}", "name" : "v1",
"templated" : true
} ],
"self" : {
"href" : "/api/v1/subscriptions/ws/300f5121-17e0-477e-915a-830121cdc5d7/
subscriptionsets/5817dfce-61a8-4c37-ab6d-d72ec78219e8/presenceeventaccounts"
},
"v1:extensions" : [ {
"href" : "/api/v1/tenants/{tenantId}/extensions{?expand,filter,extensionType,agent}", "templated" : true
} ],
"v1:itemTemplate" : [ {
"href" : "/api/v1/subscriptions/ws/300f5121-17e0-477e-915a-830121cdc5d7/ subscriptionsets/5817dfce-61a8-4c37-ab6d-d72ec78219e8/presenceeventaccounts/{accountId}",
"templated" : true
} ]
},
"_embedded" : { "eventAccount" : [ {
"_links" : {
"self" : {
"href" : "/api/v1/subscriptions/ws/300f5121-17e0-477e-915a-830121cdc5d7/ subscriptionsets/5817dfce-61a8-4c37-ab6d-d72ec78219e8/presenceeventaccounts/[email protected]"
},
"v1:presenceStatusByExtension" : [ {
"href" : "/api/v1/presencestatus/tenants/21375/extensions/3235"
} ]
},
"accountId" : "[email protected]"
} ]
}
}
Use a PUT request specifying an array of AccountIds to initialize or fully replace the current set of presence event subscriptions. Providing an empty list will have the effect of the deleting all presence event subscriptions on this list.
The following properties are processed as part of each element in the PUT request. Any other content in the payload is ignored. This includes other properties that may be part of the GET response: if they are not documented here, they are ignored by the server if they are included as part of this request.
Path | Type | Description | Permission | Constraints |
eventAccounts | Array | An array of Account Ids | TenantAdmin, User | Required. The value must be an array of valid Account Ids in format <ext>@ <tenantId>. Empty array can be used to remove all current subscribed account. |
scope | Null | used for Park Location events | TenantAdmin, User | Not Required for call events |
PUT /api/v1/subscriptions/ws/300f5121-17e0-477e-915a-830121cdc5d7/ subscriptionsets/5817dfce-61a8-4c37-ab6d-d72ec78219e8/presenceeventaccounts HTTP/1.1 Content-Type: application/json; charset=UTF-8
Host: localhost:38547 Content-Length: 58
{
"scope" : null,
"eventAccounts" : [ "[email protected]" ]
}
HTTP/1.1 200 OK
Content-Type: application/hal+json Content-Length: 1139
{
"_links" : {
"curies" : [ {
"href" : "/api/v1/rels/{rel}", "name" : "v1",
"templated" : true
} ],
"self" : {
"href" : "/api/v1/subscriptions/ws/300f5121-17e0-477e-915a-830121cdc5d7/ subscriptionsets/5817dfce-61a8-4c37-ab6d-d72ec78219e8/presenceeventaccounts"
},
"v1:extensions" : [ {
"href" : "/api/v1/tenants/{tenantId}/extensions{?expand,filter,extensionType,agent}", "templated" : true
} ],
"v1:itemTemplate" : [ {
"href" : "/api/v1/subscriptions/ws/300f5121-17e0-477e-915a-830121cdc5d7/ subscriptionsets/5817dfce-61a8-4c37-ab6d-d72ec78219e8/presenceeventaccounts/{accountId}",
"templated" : true
} ]
},
"_embedded" : { "eventAccount" : [ {
"_links" : {
"self" : {
"href" : "/api/v1/subscriptions/ws/300f5121-17e0-477e-915a-830121cdc5d7/ subscriptionsets/5817dfce-61a8-4c37-ab6d-d72ec78219e8/presenceeventaccounts/[email protected]"
},
"v1:presenceStatusByExtension" : [ {
"href" : "/api/v1/presencestatus/tenants/21375/extensions/3235"
} ]
},
"accountId" : "[email protected]"
} ]
}
}
This list does not directly support adding an element. A new element can be created in the list by using a PUT request to create a Presence Event Account resource.
Presence Event Account Resource
Table of Contents