Set up product type or entitlements

put

/rest/{version}/system/features

This API assigns a product type to this instance of software and hardware combination. This API is also used to set up entitlements for Provisioned Entitlements and Keyed (Licensed) Entitlements. This is used to self configure entitlements for the product which was set up. You can enable entitlements or provision capacity based entitlements. The client making the POST request must already possess the configuration lock or the request fails.

Request

Path Parameters
  • REST API version string.
    Available values: v1.2
Header Parameters
  • The value in the Authorization header must be the string "Bearer {access token}", where {access token} is a valid, unexpired token received in response to a prior /rest/{version}/auth/token request.
Back to Top

Response

200 Response

OK - Request successful

400 Response

The request is malformed in some way or is missing required information and therefore cannot be processed.

401 Response

Unauthorized - Request lacks valid authentication credentials.

403 Response

This request requires the client credentials to have administrator privileges.

404 Response

Resource not found

423 Response

The request requires the configuration lock and failed because the client does not currently own the lock. If another client or user currently owns the configuration lock, the error message is "Resource locked by another user". If no client or user owns the configuration lock, the error message is "User does not have the lock".
Back to Top

Examples

Example of Accessing the API with cURL

The following example shows how to set up product type or entitlements by submitting a PUT request on the REST resource using cURL. For more information about cURL, see Use cURL.

curl -X PUT \
    --header "Accept: application/xml" \
    --header "Authorization: Bearer $TOKEN" \
    "https://${SBCIP}/rest/v1.1/system/features"

The following shows an example of the contents of the request.xml file sent as the request body.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<sysFeatures>
  <productName>Enterprise Session Border Controller</productName>
  <entitlements>
    <entitlement>
      <name>Transcode Codec AMR</name>
      <value>disabled</value>
    </entitlement>
    <entitlement>
      <name>Transcode Codec SILK Capacity</name>
      <value>5</value>
    </entitlement>
  </entitlements>
</sysFeatures>

Note:

This update changes the 'Transcode Codec AMR' from 'enabled' to 'disabled', and changes the 'Transcode Codec SILK Capacity' from 0 to 5.

Example of Accessing the API with Python

The following example shows how to set up product type or entitlements by submitting a PUT request on the REST resource using Python. This example assumes you have a valid token stored in the token variable. For an example of authenticating with Python, see Authenticate.

import requests
from lxml import etree
headers = { "Accept":"application/xml", "Authorization":"Bearer " + token }
data = etree.tostring(etree.parse("request.xml"), xml_declaration=True, encoding="UTF-8")
data = data.decode('utf8')
url  = "https://" + sbcip + "/rest/v1.1/system/features"
resp = requests.put(url, headers=headers, data=data)

Example of the Response Headers

The following shows an example of the response headers.

HTTP/1.1 200
Server: nginx/1.14.1
Date: Thu, 02 Apr 2020 15:26:58 GMT
Content-Type: application/xml
Transfer-Encoding: chunked
Connection: keep-alive

Example of the Response Body

The following example shows the contents of the response body in XML format.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<response>
  <data>
    <sysFeatures>
      <productName>Enterprise Session Border Controller</productName>
      <entitlements>
        <entitlement>
          <name>Advanced</name>
          <value>enabled</value>
        </entitlement>
        <entitlement>
          <name>Admin Security</name>
          <value>disabled</value>
        </entitlement>
        <entitlement>
          <name>Data Integrity (FIPS 140-2)</name>
          <value>disabled</value>
        </entitlement>
        <entitlement>
          <name>Transcode Codec AMR</name>
          <value>disabled</value>
        </entitlement>
        <entitlement>
          <name>Transcode Codec AMRWB</name>
          <value>enabled</value>
        </entitlement>
        <entitlement>
          <name>Transcode Codec EVS</name>
          <value>disabled</value>
        </entitlement>
        <entitlement>
          <name>Session Capacity</name>
          <value>512000</value>
        </entitlement>
        <entitlement>
          <name>Transcode Codec AMR Capacity</name>
          <value>102375</value>
        </entitlement>
        <entitlement>
          <name>Transcode Codec AMRWB Capacity</name>
          <value>102375</value>
        </entitlement>
        <entitlement>
          <name>Transcode Codec EVS Capacity</name>
          <value>0</value>
        </entitlement>
        <entitlement>
          <name>Transcode Codec OPUS Capacity</name>
          <value>0</value>
        </entitlement>
        <entitlement>
          <name>Transcode Codec SILK Capacity</name>
          <value>5</value>
        </entitlement>
      </entitlements>
    </sysFeatures>
  </data>
  <messages/>
  <links/>
</response>
Back to Top