QoD for enhanced communication

The Quality on Demand (QoD) API enables specifying a profile to be applied to the network connection of a network-connected device.

The QoD profile defines characteristics of the network connectivity, such as latency and data-transfer rates.

Download OpenAPI Specification

Creates a new session

Creates a new QoS session on demand

posthttps://api-eu.vonage.com/camara/qod/v0/sessions

Authentication

OAuth 2.0 (oAuth2ClientCredentials)

This API uses OAuth 2 with the client credentials grant flow.

Read more

Token URL{tokenUrl}

Request Body
Content Type
application/json

duration
integer(int32)
Min1
Max86400
Default86400
example86400

Session duration in seconds. Maximal value of 24 hours is used if not set. After session has expired the client will receive SESSION_TERMINATED event. See notification callback.

ueId
object
Required

User equipment identifier

externalId
string
example123456789@domain.com
msisdn
string
example123456789

Subscriber number in E.164 format (starting with country code). Optionally prefixed with '+'.

ipv4addr
string(ipv4)
example192.168.0.1/24

IPv4 address may be specified in form <address/mask> as:

  • address - an IPv4 number in dotted-quad form 1.2.3.4. Only this exact IP number will match the flow control rule.
  • address/mask - an IP number as above with a mask width of the form 1.2.3.4/24. In this case, all IP numbers from 1.2.3.0 to 1.2.3.255 will match. The bit width MUST be valid for the IP version.
ipv6addr
string(ipv6)
example2001:db8:85a3:8d3:1319:8a2e:370:7344

IPv6 address, following IETF 5952 format, may be specified in form <address/mask> as:

  • address - The /128 subnet is optional for single addresses:
    • 2001:db8:85a3:8d3:1319:8a2e:370:7344
    • 2001:db8:85a3:8d3:1319:8a2e:370:7344/128
  • address/mask - an IP v6 number with a mask:
    • 2001:db8:85a3:8d3::0/64
    • 2001:db8:85a3:8d3::/64
asId
object
Required

Application server identifier

ipv4addr
string(ipv4)
example192.168.0.1/24

IPv4 address may be specified in form <address/mask> as:

  • address - an IPv4 number in dotted-quad form 1.2.3.4. Only this exact IP number will match the flow control rule.
  • address/mask - an IP number as above with a mask width of the form 1.2.3.4/24. In this case, all IP numbers from 1.2.3.0 to 1.2.3.255 will match. The bit width MUST be valid for the IP version.
ipv6addr
string(ipv6)
example2001:db8:85a3:8d3:1319:8a2e:370:7344

IPv6 address, following IETF 5952 format, may be specified in form <address/mask> as:

  • address - The /128 subnet is optional for single addresses:
    • 2001:db8:85a3:8d3:1319:8a2e:370:7344
    • 2001:db8:85a3:8d3:1319:8a2e:370:7344/128
  • address/mask - an IP v6 number with a mask:
    • 2001:db8:85a3:8d3::0/64
    • 2001:db8:85a3:8d3::/64
uePorts
object

Ports may be specified as a list of ranges or single ports.

ranges
array
from
integer
Required
Max65535
to
integer
Required
Max65535
ports
array
asPorts
object

Ports may be specified as a list of ranges or single ports.

ranges
array
from
integer
Required
Max65535
to
integer
Required
Max65535
ports
array
qos
string
Required
  • QOS_E - Qualifier for enhanced communication profile
  • QOS_S - Qualifier for the requested QoS profile S
  • QOS_M - Qualifier for the requested QoS profile M
  • QOS_L - Qualifier for the requested QoS profile L
Must be one of:QOS_EQOS_SQOS_MQOS_L
notificationUri
string(uri)
examplehttps://application-server.com/notifications

Allows asynchronous delivery of session related events

notificationAuthToken
string
examplec8974e592c2fa383d4a3960714

Authentification token for callback API

Example Request

{
   "duration": 86400,
   "ueId": {
      "externalId": "123456789@domain.com",
      "msisdn": "123456789",
      "ipv4addr": "192.168.0.1/24",
      "ipv6addr": "2001:db8:85a3:8d3:1319:8a2e:370:7344"
   },
   "asId": {
      "ipv4addr": "192.168.0.1/24",
      "ipv6addr": "2001:db8:85a3:8d3:1319:8a2e:370:7344"
   },
   "uePorts": {
      "ranges": [
         {
            "from": 5010,
            "to": 5020
         }
      ],
      "ports": [
         5060,
         5070
      ]
   },
   "asPorts": {
      "ranges": [
         {
            "from": 5010,
            "to": 5020
         }
      ],
      "ports": [
         5060,
         5070
      ]
   },
   "qos": "QOS_E",
   "notificationUri": "https://application-server.com/notifications",
   "notificationAuthToken": "c8974e592c2fa383d4a3960714"
}

Responses
Content Type
application/json

Session created

duration
integer(int32)
Required
Min1
Max86400
Default86400
example86400

Session duration in seconds. Maximal value of 24 hours is used if not set. After session has expired the client will receive SESSION_TERMINATED event. See notification callback.

ueId
object
Required

User equipment identifier

externalId
string
example123456789@domain.com
msisdn
string
example123456789

Subscriber number in E.164 format (starting with country code). Optionally prefixed with '+'.

ipv4addr
string(ipv4)
example192.168.0.1/24

IPv4 address may be specified in form <address/mask> as:

  • address - an IPv4 number in dotted-quad form 1.2.3.4. Only this exact IP number will match the flow control rule.
  • address/mask - an IP number as above with a mask width of the form 1.2.3.4/24. In this case, all IP numbers from 1.2.3.0 to 1.2.3.255 will match. The bit width MUST be valid for the IP version.
ipv6addr
string(ipv6)
example2001:db8:85a3:8d3:1319:8a2e:370:7344

IPv6 address, following IETF 5952 format, may be specified in form <address/mask> as:

  • address - The /128 subnet is optional for single addresses:
    • 2001:db8:85a3:8d3:1319:8a2e:370:7344
    • 2001:db8:85a3:8d3:1319:8a2e:370:7344/128
  • address/mask - an IP v6 number with a mask:
    • 2001:db8:85a3:8d3::0/64
    • 2001:db8:85a3:8d3::/64
asId
object
Required

Application server identifier

ipv4addr
string(ipv4)
example192.168.0.1/24

IPv4 address may be specified in form <address/mask> as:

  • address - an IPv4 number in dotted-quad form 1.2.3.4. Only this exact IP number will match the flow control rule.
  • address/mask - an IP number as above with a mask width of the form 1.2.3.4/24. In this case, all IP numbers from 1.2.3.0 to 1.2.3.255 will match. The bit width MUST be valid for the IP version.
ipv6addr
string(ipv6)
example2001:db8:85a3:8d3:1319:8a2e:370:7344

IPv6 address, following IETF 5952 format, may be specified in form <address/mask> as:

  • address - The /128 subnet is optional for single addresses:
    • 2001:db8:85a3:8d3:1319:8a2e:370:7344
    • 2001:db8:85a3:8d3:1319:8a2e:370:7344/128
  • address/mask - an IP v6 number with a mask:
    • 2001:db8:85a3:8d3::0/64
    • 2001:db8:85a3:8d3::/64
uePorts
object

Ports may be specified as a list of ranges or single ports.

ranges
array
from
integer
Required
Max65535
to
integer
Required
Max65535
ports
array
asPorts
object

Ports may be specified as a list of ranges or single ports.

ranges
array
from
integer
Required
Max65535
to
integer
Required
Max65535
ports
array
qos
string
Required
  • QOS_E - Qualifier for enhanced communication profile
  • QOS_S - Qualifier for the requested QoS profile S
  • QOS_M - Qualifier for the requested QoS profile M
  • QOS_L - Qualifier for the requested QoS profile L
Must be one of:QOS_EQOS_SQOS_MQOS_L
notificationUri
string(uri)
examplehttps://application-server.com/notifications

Allows asynchronous delivery of session related events

notificationAuthToken
string
examplec8974e592c2fa383d4a3960714

Authentification token for callback API

id
string(uuid)
Required

Session ID in UUID format

startedAt
integer(int64)
Required
example1639479600

Timestamp of session start in seconds since unix epoch

expiresAt
integer(int64)
Required
example1639566000

Timestamp of session expiration if the session was not deleted, in seconds since unix epoch

messages
array
severity
string
Required

Message severity

Must be one of:INFOWARNING
description
string
Required

Detailed message text

Example Response

{
   "duration": 86400,
   "ueId": {
      "externalId": "123456789@domain.com",
      "msisdn": "123456789",
      "ipv4addr": "192.168.0.1/24",
      "ipv6addr": "2001:db8:85a3:8d3:1319:8a2e:370:7344"
   },
   "asId": {
      "ipv4addr": "192.168.0.1/24",
      "ipv6addr": "2001:db8:85a3:8d3:1319:8a2e:370:7344"
   },
   "uePorts": {
      "ranges": [
         {
            "from": 5010,
            "to": 5020
         }
      ],
      "ports": [
         5060,
         5070
      ]
   },
   "asPorts": {
      "ranges": [
         {
            "from": 5010,
            "to": 5020
         }
      ],
      "ports": [
         5060,
         5070
      ]
   },
   "qos": "QOS_E",
   "notificationUri": "https://application-server.com/notifications",
   "notificationAuthToken": "c8974e592c2fa383d4a3960714",
   "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
   "startedAt": 1639479600,
   "expiresAt": 1639566000,
   "messages": [
      {
         "severity": "INFO",
         "description": "string"
      }
   ]
}

Session notifications callback callback

Important: this endpoint is to be implemented by the API consumer. The QoD server will call this endpoint whenever any network related event occurs. Currently only SESSION_TERMINATED event is implemented. Any other network events are ignored.

posthttps://example.com/webhooks/event

Request Body
Content Type
application/json

sessionId
string(uuid)
Required

Session ID in UUID format

event
string
Required
Must be one of:SESSION_TERMINATED

Example Payload

{
   "sessionId": "f6567dd8-e069-418e-8893-7d22fcf12459",
   "event": "SESSION_TERMINATED"
}

Responses

Successful notification

Get session information

gethttps://api-eu.vonage.com/camara/qod/v0/sessions/:sessionId

Authentication

OAuth 2.0 (oAuth2ClientCredentials)

This API uses OAuth 2 with the client credentials grant flow.

Read more

Token URL{tokenUrl}

Path Parameters

sessionId
string(uuid)
Required

Session ID that was obtained from the createSession operation

Responses
Content Type
application/json

Contains information about active session

duration
integer(int32)
Required
Min1
Max86400
Default86400
example86400

Session duration in seconds. Maximal value of 24 hours is used if not set. After session has expired the client will receive SESSION_TERMINATED event. See notification callback.

ueId
object
Required

User equipment identifier

externalId
string
example123456789@domain.com
msisdn
string
example123456789

Subscriber number in E.164 format (starting with country code). Optionally prefixed with '+'.

ipv4addr
string(ipv4)
example192.168.0.1/24

IPv4 address may be specified in form <address/mask> as:

  • address - an IPv4 number in dotted-quad form 1.2.3.4. Only this exact IP number will match the flow control rule.
  • address/mask - an IP number as above with a mask width of the form 1.2.3.4/24. In this case, all IP numbers from 1.2.3.0 to 1.2.3.255 will match. The bit width MUST be valid for the IP version.
ipv6addr
string(ipv6)
example2001:db8:85a3:8d3:1319:8a2e:370:7344

IPv6 address, following IETF 5952 format, may be specified in form <address/mask> as:

  • address - The /128 subnet is optional for single addresses:
    • 2001:db8:85a3:8d3:1319:8a2e:370:7344
    • 2001:db8:85a3:8d3:1319:8a2e:370:7344/128
  • address/mask - an IP v6 number with a mask:
    • 2001:db8:85a3:8d3::0/64
    • 2001:db8:85a3:8d3::/64
asId
object
Required

Application server identifier

ipv4addr
string(ipv4)
example192.168.0.1/24

IPv4 address may be specified in form <address/mask> as:

  • address - an IPv4 number in dotted-quad form 1.2.3.4. Only this exact IP number will match the flow control rule.
  • address/mask - an IP number as above with a mask width of the form 1.2.3.4/24. In this case, all IP numbers from 1.2.3.0 to 1.2.3.255 will match. The bit width MUST be valid for the IP version.
ipv6addr
string(ipv6)
example2001:db8:85a3:8d3:1319:8a2e:370:7344

IPv6 address, following IETF 5952 format, may be specified in form <address/mask> as:

  • address - The /128 subnet is optional for single addresses:
    • 2001:db8:85a3:8d3:1319:8a2e:370:7344
    • 2001:db8:85a3:8d3:1319:8a2e:370:7344/128
  • address/mask - an IP v6 number with a mask:
    • 2001:db8:85a3:8d3::0/64
    • 2001:db8:85a3:8d3::/64
uePorts
object

Ports may be specified as a list of ranges or single ports.

ranges
array
from
integer
Required
Max65535
to
integer
Required
Max65535
ports
array
asPorts
object

Ports may be specified as a list of ranges or single ports.

ranges
array
from
integer
Required
Max65535
to
integer
Required
Max65535
ports
array
qos
string
Required
  • QOS_E - Qualifier for enhanced communication profile
  • QOS_S - Qualifier for the requested QoS profile S
  • QOS_M - Qualifier for the requested QoS profile M
  • QOS_L - Qualifier for the requested QoS profile L
Must be one of:QOS_EQOS_SQOS_MQOS_L
notificationUri
string(uri)
examplehttps://application-server.com/notifications

Allows asynchronous delivery of session related events

notificationAuthToken
string
examplec8974e592c2fa383d4a3960714

Authentification token for callback API

id
string(uuid)
Required

Session ID in UUID format

startedAt
integer(int64)
Required
example1639479600

Timestamp of session start in seconds since unix epoch

expiresAt
integer(int64)
Required
example1639566000

Timestamp of session expiration if the session was not deleted, in seconds since unix epoch

messages
array
severity
string
Required

Message severity

Must be one of:INFOWARNING
description
string
Required

Detailed message text

Example Response

{
   "duration": 86400,
   "ueId": {
      "externalId": "123456789@domain.com",
      "msisdn": "123456789",
      "ipv4addr": "192.168.0.1/24",
      "ipv6addr": "2001:db8:85a3:8d3:1319:8a2e:370:7344"
   },
   "asId": {
      "ipv4addr": "192.168.0.1/24",
      "ipv6addr": "2001:db8:85a3:8d3:1319:8a2e:370:7344"
   },
   "uePorts": {
      "ranges": [
         {
            "from": 5010,
            "to": 5020
         }
      ],
      "ports": [
         5060,
         5070
      ]
   },
   "asPorts": {
      "ranges": [
         {
            "from": 5010,
            "to": 5020
         }
      ],
      "ports": [
         5060,
         5070
      ]
   },
   "qos": "QOS_E",
   "notificationUri": "https://application-server.com/notifications",
   "notificationAuthToken": "c8974e592c2fa383d4a3960714",
   "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
   "startedAt": 1639479600,
   "expiresAt": 1639566000,
   "messages": [
      {
         "severity": "INFO",
         "description": "string"
      }
   ]
}

Free resources related to QoS session

deletehttps://api-eu.vonage.com/camara/qod/v0/sessions/:sessionId

Authentication

OAuth 2.0 (oAuth2ClientCredentials)

This API uses OAuth 2 with the client credentials grant flow.

Read more

Token URL{tokenUrl}

Path Parameters

sessionId
string(uuid)
Required

Session ID that was obtained from the createSession operation

Responses

Session deleted

Session notifications callback

Important: this endpoint is to be implemented by the API consumer. The QoD server will call this endpoint whenever any network related event occurs. Currently only SESSION_TERMINATED event is implemented. Any other network events are ignored.

posthttps://api-eu.vonage.com/camara/qod/v0/notifications

Authentication

OAuth 2.0 (oAuth2ClientCredentials)

This API uses OAuth 2 with the client credentials grant flow.

Read more

Token URL{tokenUrl}
KeyDescriptionWhereExample
apikey

API key to authorize requests

query

?apikey=<apikey>

Request Body
Content Type
application/json

sessionId
string(uuid)
Required

Session ID in UUID format

event
string
Required
Must be one of:SESSION_TERMINATED

Example Request

{
   "sessionId": "f6567dd8-e069-418e-8893-7d22fcf12459",
   "event": "SESSION_TERMINATED"
}

Responses

Successful notification