Skip to main content Skip to docs navigation
Check

Get started with Voice API

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.


Typographical Conventions

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


Architecture

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.




Application Requirements

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.



    Accessing the API

    The silhouette API entry point is https://<WebAdmin>/api. Accessing the silhouette API includes

  • API Access

  • Security

  • Load Control

  • SSL Certification


    API Access

    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.


    Security

    silhouette API security comprises


  • Authentication

  • Authorization


    Authentication

    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

    for example, [email protected]

  • <ext>@<tenant DID>.DID

    Public API Guide


    for example, [email protected]

  • <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

    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

    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.


      SSL Certification

      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

    Using the API includes the following topics:


  • Hyperlinking API Fundamentals

  • Using HTTP Verbs

  • API Documentation—The HAL Browser

  • WebSockets

  • WSTool

  • Subscription Sets

  • Using API Features

  • Third Party Call Control


    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.


    Using HTTP Verbs

    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 menu at the top of The HAL Browser has a link to the API Resource Graph. The client developer can expand resource nodes and follow documentation links to explore the Resource Model. The graph documents the full model; however, visibility of resource data in the application is subject to authorization, licensing, and permission controls. See Resource Model.


    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.


    WebSockets

    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.


    Example


    ===>

    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

    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.


    Subscription Sets

    Once it has established a WebSocket, the client can subscribe to events. To receive events, follow these steps:

    1. Establish a WebSocket with the silhouette API.

    2. Receive a WebSocket ID over the newly-established WebSocket.

    3. Use the WebSocket ID to create a Subscription Set for each set of subscriptions.

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


    Using API Features

    The silhouette API includes the following features:


  • Expand Support

  • Filter Support

  • enum lookup


    Expand Support

    Table of Contents

  • Description

  • Expand Keys

  • Performance

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


    Expand Keys


    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.


    Performance


    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


    Filter Support

    Table of Contents

  • Description

  • Filter condition

  • Performance

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

    Filter condition


    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)


    non-value condition


    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.


Filter Parameter Examples


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)


enum lookup

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.


Third Party Call Control

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

makeCall

Yes

getCalls

Yes

getCall

Yes

parkCall

Yes

answerCall

No

hangupCall

Yes

deflectCall

Yes

holdCall

No

resumeCall

No

transferCall

Yes

retrieveCall

Yes


Yes


Yes

For more information, see API Resources and Subscription Sets.


makeCall


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


    getCalls


    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


    getCall


    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


    parkCall


    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


    answerCall


    Description Answers a call.

    Details

    https://{ip}/api/v1/calls/{callObserverId}

    {"callRequest":"answerCall", ”myPartyId”:"[email protected]"}


    hangupCall


    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


    deflectCall


    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


holdCall


Description


Holds a specific call based on the callId.

Details

https://{ip}/api/v1/calls/{callId}

{"callRequest":"holdCall", "myPartyId":[email protected] }


resumeCall


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


transferCall


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


    retrieveCall


    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



Events

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

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


General Format


===>

https://{webadminIP}/api/v1/calls


dial


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

}


ringback


Description


Dialed call is ringing.


Details


{

“subscriptionSetId”:”12345”, “event”:”ringback”, “callId”:1,

“observedParty”:”[email protected]”, “timestamp”:”2015-05-11T14:06:52-04”,

“version”:”v1”

}


offer


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”

}


ringing


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

}


answer


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

}


forward


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]

}


hold


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]

}


held


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]

}


resume


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]

}


resumed


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]

}


transfer


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]

}


callError


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”

}


end


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”

}


park


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”,

}


parked


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”,

}


retrieve


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”,

}


retrieved


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

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.


idle


Account is not involved in any calls. Details

{

“subscriptionSetId”:”12345”, “event”:”idle”, “observedParty”:”[email protected]”, “timestamp”:”2015-05-11T14:06:52+04”,

“version”:”v1”

}


busy


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”

}


available


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”

}


unavailable


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”

}


joinedGroup


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]

}


leftGroup


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]

}


signedInAcd


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”

}


signedOutAcd


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”

}


dndOff


Account has turned DND off. Details

{

“subscriptionSetId”:”12345”, “event”:”dndOff”, “observedParty”:”[email protected]”, “timestamp”:”2015-05-11T14:06:52+04”,

“version”:”v1”

}


dndOn


Account has turned DND on. Details

{

“subscriptionSetId”:”12345”, “event”:”dndOn”, “observedParty”:”[email protected]”, “timestamp”:”2015-05-11T14:06:52+04”,

“version”:”v1”

}


ParkLocation Events

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.


idle


ParkLocation is not involved in any calls. Details

{

“subscriptionSetId”:”12345”, “event”:”idle”, “observedParty”:”[email protected]”, “timestamp”:”2015-05-11T14:06:52+04”,

“version”:”v1”

}


busy


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”

}



API Resources

This section includes


  • Resource Model

  • Navigation Resources

  • Event Management Resources

  • Call Management Resources

  • Presence Status Resources

  • ParkLocation Status Resources

  • Provisioning Resources


    The detailed documentation in this chapter includes references to information that

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


    Resource Model

    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

    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.


    API Root Resource

    Table of Contents

  • Description

  • Resource Details

    • Properties

    • Link Relations

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


      Supported Operations


      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


      Resource Details

      Properties


      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

      Link Relations


      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

      Sample GET Response

      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"

      }


      V1 Resource

      Table of Contents

  • Description

  • Resource Details

    • Link Relations

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



Supported Operations


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


Resource Details

Link Relations


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


Sample GET Response

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

}

}

}


URI Template Dictionary

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.


Supported Operations


GET


View URI Template Dictionary resources HEAD

Get just the header response


Permitted Authorities (as defined in API Guide)


Telco User


View

TenantAdmin


View


Resource Details

Properties


This resource has no configurable properties.


Link Relations


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.



Expandable Relations


This resource contains no expandable elements.


Sample GET Response

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

}

}

}


Enums List Resource

Table of Contents

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.


Supported Operations


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


List Details


The Enum list resource provides a list of Enum resources.


Link Relations


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

Embedded Representations


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


Sample GET Response

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"

}

}

} ]

}

}

Modify List Request


This is a server-managed list and does not support element creation.


Enum Resource

Table of Contents

  • Description

  • Resource Details

    • Properties

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


      Supported Operations


      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


      Resource Details

      Properties


      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

      Sample GET Response

      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

      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

  • Description

  • List Details

  • Modify List Request

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.


Supported Operations


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


List Details


The Event Subscription Sets list returns a list of SubscriptionSets resources.


Link Relations


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

Embedded Representations


Name

Description

Visibility

Expandable


subscriptionSets


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

Sample GET Response

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

} ]

}

}

Modify List Request


Use a POST request to create a new SubscriptionSet.


POST Request Properties


No properties are required in the payload of the POST request.


Sample 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

Sample POST Response

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

}


SubscriptionSets Resource

Table of Contents

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.


Supported Operations


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


Resource Details

Properties


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

Link Relations


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


Sample GET Response

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

This relation returns a list of the Accounts for which there are Call Event Subscriptions on this Subscription Set.


Supported Operations


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


List Details


The Call Events Subscriptions list returns a list of Call Event Account resources.


Link Relations


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

Embedded Representations


Name

Description

Visibility

Expandable


eventAccount


Each Account representation in the event Account array reflects an extension for which events are generated.


TenantAdmin, User


n

Sample GET Response

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

} ]

}

}

Modify Request


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.


PUT Request Properties


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

Sample PUT Request

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

}

Sample PUT Response

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

} ]

}

}

Add Element Request


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.


Call Event Account Resource

Table of Contents

This relation returns a list of the Accounts for which there are Presence Event Subscriptions on this Subscription Set.


Supported Operations


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


List Details


The Presence Events Subscriptions list returns a list of Presence Event Account resources.


Link Relations


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

Embedded Representations


Name

Description

Visibility

Expandable


eventAccount


Each element in the event Account array reflects an account for which presence events are generated.


TenantAdmin, User


n

Sample GET Response

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

} ]

}

}

Modify Request


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.


PUT Request Properties


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

Sample PUT Request

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

}

Sample PUT Response

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

} ]

}

}

Add Element Request


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