Rainbow Voice Communication Platform Provisioning portal (1.236.13)

Download OpenAPI specification:Download

Rainbow Voice Communication Platform Provisioning portal API guide

Preamble

Download Postman collection

Introduction

This guide describes list of API services that are provided by Rainbow Voice Communication Platform provisioning portal system. Services are used to manage Rainbow Voice Communication Platform.

Protocol

REST interface is used for sending/receiving Rainbow API messages.
HTTP request GET, POST, PUT and DELETE are used. Standard HTTP responses are used to provide requested information or error status. There is no session notion in Rainbow system, so requests could be issued according stateless model, without transport conservation between them.
JSON is used as a main format for data encoding in message body part. Each request is started with the following pattern /{module}/{version}/ where {module} is a portal module name to address and {version} is a version of used API, par example, “v1.0”.

Security considerations

Each request should contain some credential information to authenticate itself. Standard HTTP authentication with basic/bearer modes is used. JSON Web Token mechanism is used to provide authentication information. JWT has a expire timeout that is controlled by OT Rainbow portal to prevent very long token usage. Also authentication with application token is used. The token must be provided in the request HTTP header, using a custom header: APIKey. At server side, token is verified, and if it doesn’t match, 403 Not Allowed response is sent. TLS is used as a transport protocol to support message exchanges between OT Rainbow portal and an application.

Authentication

Bearer

For accessing the API a valid JWT token or a valid OAuth has to be provided access token must be passed in all the queries in the 'Authorization' header.

  • JWT
    • A valid JWT token is generated by the API and returned as answer of a call to the route GET /api/rainbow/authentication/v1.0/login giving a valid user & password.
    • The following syntax must be used in the 'Authorization' header:
      Bearer xxxxxx.yyyyyyy.zzzzzz
  • OAuth access token
    • A valid OAuth access token is generated and returned as answer of the OAuth 2.0 workflow with authorization code grant. This is done by calling the route GET /api/rainbow/authentication/v1.0/oauth/authorize to get an authorization code and then POST /api/rainbow/authentication/v1.0/oauth/token to exchange it agains an access token and a refresh token.
    • The following syntax must be used in the 'Authorization' header:
      Bearer xxxxxx.yyyyyyy.zzzzzz
Security Scheme Type API Key
Header parameter name: Authorization

Bearer-x-rainbow-api-key

For accessing the API a valid API_KEY can be provided instead of Authorization Bearer JWT header

Security Scheme Type API Key
Header parameter name: x-rainbow-api-key

Cloudpbx

Delete a CloudPBX

This API allows to delete a CloudPBX


superadmin and support can delete all CloudPBXs existing in Rainbow
bp_admin can only delete CloudPBXs linked to sites of End Customer companies for which their bp_admin's company is the BP company
organization_admin can only delete CloudPBXs linked to sites of companies under their organisation
company_admin can only delete CloudPBXs linked to sites of their company

Example: DELETE https://sandbox.openrainbow.com/api/rainbow/rvcpprovisioning/v1.0/cloudpbxs/569d0ef3ef7816921f7e94fa

path Parameters
systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

query Parameters
forceDelete
boolean
Default: false

Force deletion of all associated objects

header Parameters
accept
required
string

application/json

Responses

Response samples

Content type
application/json
{
  • "status": "Cloud PBX with Id=56c5c19f94141765119f896c successfully deleted",
  • "data": [ ]
}

Get a CloudPBX data

This API allows administrator to retrieve a CloudPBX using its identifier

superadmin and support can get all CloudPBXs existing in Rainbow
bp_admin can only get CloudPBXs linked to sites of End Customer companies for which their bp_admin's company is the BP company
organization_admin can only get CloudPBXs linked to sites of companies under their organisation
company_admin can only get CloudPBXs linked to sites of their company
site_admin can only get the CloudPBXs linked to the site they administrate

Example: GET https://sandbox.openrainbow.com/api/rainbow/rvcpprovisioning/v1.0/cloudpbxs/569d0ef3ef7816921f7e94fa

path Parameters
systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

header Parameters
accept
required
string

application/json

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Update a CloudPBX

This API updates a CloudPBX for a given company

superadmin can update CloudPBX for all companies
bp_admin can only update CloudPBX for their End Customer companies
organization_admin can only update CloudPBX for companies under their organisation
company_admin can only update CloudPBX of their company


Note that externalTrunkId parameter can only be updated by a superadmin or a bp_admin
bp_admin can link only his own external trunks to end customer CloudPBX
To link an external trunk to a CloudPBX, an outgoing prefix should have been managed on this CloudPBX, either in a previous request (POST or PUT) or during the same request as externalTrunkId

path Parameters
systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

Request Body schema: application/json
object
callForkingToPstnNumber
string
Enum: "not_available" "not_activated" "activated"

indicates if call forking must be done towards PSTN device ("not_activated" or "activated" values can be set only when associated external trunk has feature "callForkingToPstnNumber")

object
customSipHeader_1
string

Value to put as Custom SIP Header 1 into SIP data for an external outgoing call

customSipHeader_2
string

Value to put as Custom SIP Header 2 into SIP data for an external outgoing call

object
externalTrunkId
string

External trunk that should be linked to this CloudPBX

language
string
Enum: "ro" "es" "it" "de" "fr" "en" "ar" "he" "nl" "pt_br"

New language for this CloudPBX

monolineIncomingMode
boolean

Indicates new value for mono line mode (for incoming calls)
Take care this parameter is deprecated. Use "telephonyLinePolicy" instead of "monolineIncomingMode" deprecated parameter

name
string

New CloudPBX name

numberingDigits
number

Number of digits for CloudPBX numbering plan. If numberingPrefixes is provided and not empty, this parameter is mandatory. If numberingDigitsLength change to "fixed" numberingDigits is mandatory if not configured before.
For example, if numberingPrefixes is ["5", "7"] and numberingDigits is 4, allowed numbers for this CloudPBX will be from 5000 to 5999 and from 7000 to 7999

numberingDigitsLength
string
Enum: "fixed" "variable"

Is the numbering digits of each numbering prefix the same (numberingDigits with fixed value) or could be different (digits in numberingPlan for variable value).

Array of objects (putCloudPbxNumberingPlan)

Replace numberingPrefixes for default numberingDigitsLength value fixed. Array of Prefixes, digits (when cloudPBX numberingDigitsLength is not "fixed") and description for CloudPBX numbering plan ([{prefix:"1", digits: 3, description: ""} , {prefix:"999", digits: 5, description: ""}] )

numberingPrefix
number

deprecated parameter Prefix for CloudPBX numbering plan

numberingPrefixes
Array of strings

deprecated parameter Array of Prefixes for CloudPBX numbering plan ( only digits => ["1" , "999"] ) only for fixed numberingDigitsLength value (default one). Use numberingPlan.

outgoingPrefix
number

Company outgoing prefix

pbxLdapId
string

custom "pbxId" declared in an external DB (ldap), used to correlate to Rainbow pbxId.

routeInternalCallsToPeer
boolean

Indicates if internal calls must be routed to peer (Only available if 'routeInternalCallsToPeerAllowed' is set to 'true' on external trunk)

object
shortCodeDigits
number [ 2 .. 6 ]
Default: 4

Number of digits a short code can have, including the prefix length

shortCodePrefix
string [ 1 .. 3 ] characters
Default: "*"

Prefix to be used for cloudPBX short codes

sipDeviceTransferMode
string
Enum: "new_call" "attended_transfer" "blind_transfer" "optional"

Default Myriad SIP devices transfer softkey behavior

telephonyLinePolicy
string
Enum: "mono_line" "multi_lines" "multi_lines_plus"

Indicates multi lines policy

Responses

Request samples

Content type
application/json
{
  • "barringOptions": {
    },
  • "callForkingToPstnNumber": "not_available",
  • "callForwardOptions": {
    },
  • "customSipHeader_1": "string",
  • "customSipHeader_2": "string",
  • "emergencyOptions": {
    },
  • "externalTrunkId": "string",
  • "language": "ro",
  • "monolineIncomingMode": true,
  • "name": "string",
  • "numberingDigits": 0,
  • "numberingDigitsLength": "fixed",
  • "numberingPlan": [
    ],
  • "numberingPrefix": 0,
  • "numberingPrefixes": [
    ],
  • "outgoingPrefix": 0,
  • "pbxLdapId": "string",
  • "routeInternalCallsToPeer": true,
  • "serviceCodesDialPlan": {
    },
  • "shortCodeDigits": 4,
  • "shortCodePrefix": "*",
  • "sipDeviceTransferMode": "new_call",
  • "telephonyLinePolicy": "mono_line"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Get customized set of prohibited numbers applicable on the CloudPBX

This API allows administrator to retrieve customized set of prohibited numbers applicable on the CloudPBX

superadmin and support can get customized set of prohibited numbers for all CloudPBXs existing in Rainbow
bp_admin can only get customized set of prohibited numbers for CloudPBXs linked to sites of End Customer companies for which their bp_admin's company is the BP company
organization_admin can only get customized set of prohibited numbers for CloudPBXs linked to sites of companies under their organisation
company_admin can only get customized set of prohibited numbers for CloudPBXs linked to sites of their company
site_admin can only get customized set of prohibited numbers for CloudPBXs linked to the site they administrate

Example: GET https://sandbox.openrainbow.com/api/rainbow/rvcpprovisioning/v1.0/cloudpbxs/5cd1a4f426fa4a77f8c04150/barring-options/custom-numbers-restriction

path Parameters
systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

header Parameters
accept
required
string

application/json

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Update customized set of prohibited numbers applicable on the CloudPBX

This API updates customized set of prohibited numbers applicable on the CloudPBX

superadmin can update CloudPBXs for all companies
bp_admin can only update CloudPBXs for their End Customer companies
organization_admin can only update CloudPBXs for companies under their organisation
company_admin can only update CloudPBX of their company

path Parameters
systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

Request Body schema: application/json
required
Array of objects (putBarringCustomRestrictionsPatterns)

Array of patterns with complete new values

Responses

Request samples

Content type
application/json
{
  • "patterns": [
    ]
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "status": "CloudPBX set of prohibited numbers successfully updated (Id=5de6a632c21aa17bab337347)"
}

Get list of traffic barring options available for a CloudPBX

This API allows administrator to retrieve a list of traffic barring options supported by a CloudPBX

superadmin and support can get traffic barring options for all CloudPBXs existing in Rainbow
bp_admin can only get traffic barring options for CloudPBXs linked to sites of End Customer companies for which their bp_admin's company is the BP company
organization_admin can only get traffic barring options for CloudPBXs linked to sites of companies under their organisation
company_admin can only get traffic barring options for CloudPBXs linked to sites of their company
site_admin can only get traffic barring options for CloudPBXs linked to the site they administrate

Example: GET https://sandbox.openrainbow.com/api/rainbow/rvcpprovisioning/v1.0/cloudpbxs/5cd1a4f426fa4a77f8c04150/barring-options

path Parameters
systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

header Parameters
accept
required
string

application/json

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Get CloudPBX CLI policy for outbound calls

This API allows administrator to retrieve the CloudPBX CLI options for outbound calls

superadmin and support can get cli options for all CloudPBXs existing in Rainbow
bp_admin can only get cli options for CloudPBXs linked to sites of End Customer companies for which their bp_admin's company is the BP company
organization_admin can only get cli options for CloudPBXs linked to sites of companies under their organisation
company_admin can only get cli options for CloudPBXs linked to sites of their company
site_admin can only get cli options for CloudPBXs linked to the site they administrate

Example: GET https://sandbox.openrainbow.com/api/rainbow/rvcpprovisioning/v1.0/cloudpbxs/5cd1a4f426fa4a77f8c04150/cli-options

path Parameters
systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

header Parameters
accept
required
string

application/json

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Update a CloudPBX cli options configuration

This API updates a CloudPBX cli options configuration for a given company

superadmin can update CloudPBX for all companies
bp_admin can only update CloudPBX for their End Customer companies
organization_admin can only update CloudPBX for companies under their organisation
company_admin can only update CloudPBX of their company

path Parameters
systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

Request Body schema: application/json
companyNumberCanBeSelectedByUserAsCli
boolean

Indicates if CloudPBX users are authorized to set Cloud PBX Installation Number into their own CLI value

policy
string
Enum: "installation_ddi_number" "user_ddi_number"

CLI policy to apply

userCanManageItsCli
boolean

Indicates if CloudPBX users are authorized to set their own CLI value

Responses

Request samples

Content type
application/json
{
  • "companyNumberCanBeSelectedByUserAsCli": true,
  • "policy": "installation_ddi_number",
  • "userCanManageItsCli": true
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Get list of CloudPBXs

This API allows administrator to retrieve a list of CloudPBXs

superadmin, support, sales_analytics and customer_success_admin can get all CloudPBXs existing in Rainbow
bp_admin, bp_analytics can only get CloudPBXs linked to sites of End Customer companies for which their bp_admin's company is the BP company
organization_admin can only get CloudPBXs linked to sites of companies under their organisation
company_admin can only get CloudPBXs linked to sites of their company
site_admin can only get the CloudPBXs linked to the site they administrate

Example: GET https://sandbox.openrainbow.com/api/rainbow/rvcpprovisioning/v1.0/cloudpbxs

query Parameters
limit
number
Default: 100

Allow to specify the number of CloudPBXs to retrieve

offset
number

Allow to specify the position of first cloudPBX to retrieve (first site if not specified) Warning: if offset > total, no results are returned

sortField
string
Default: "companyId"

Sort CloudPBXs list based on the given field

sortOrder
number
Default: 1
Enum: -1 1

Specify order when sorting CloudPBXs list

companyId
string

Allows to filter CloudPBXs list on the siteIds linked to companyIds provided in this option

siteId
string

Allows to filter CloudPBXs list on the siteIds provided in this option

bpId
string

Allows to filter CloudPBXs list on the bpIds provided in this option
Only superadmin, support, customer_success_admin, sales_analytics and bp_admin users can use bpId filter
bp_admin users can only use bpId filter with bpId they manage (their own BP company or companies being in their BP organisation)

header Parameters
accept
required
string

application/json

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "limit": 100,
  • "offset": 0,
  • "total": 1
}

Create a CloudPBX

This API creates a CloudPBX for a given company
RVCP Instance where the new CloudPBX will be created is selected according company's country
Note that this new CloudPBX will be in fact a new "system" with type equal to "cloud_pbx" ; and then it will be accessible thru admin requests done on systems as all other system type

superadmin can create CloudPBX for all companies
bp_admin can only create CloudPBX for their End Customer companies
organization_admin can only create CloudPBX for companies under their organisation
company_admin can only create CloudPBX for their company

Only one CloudPBX is allowed for a company

Request Body schema: application/json
bpId
string

Identifier of the BP to which CloudPBX should be linked with

callForkingToPstnNumber
string
Enum: "not_available" "not_activated" "activated"

indicates if call forking must be done towards PSTN device ("not_activated" or "activated" values can be set only when associated external trunk has feature "callForkingToPstnNumber")

companyId
required
string

Identifier of the company for which CloudPBX should be created

country
string 3 characters

CloudPBX country (ISO 3166-1 alpha3 format). In case this value is not provided, it will be equal to company's country

customSipHeader_1
string

Value to put as CustomSipHeader_1 into SIP data for an external outgoing call

customSipHeader_2
string

Value to put as CustomSipHeader_2 into SIP data for an external outgoing call

externalTrunkId
string

External trunk identifier that should be linked to this CloudPBX

language
string
Default: "en"
Enum: "ro" "es" "it" "de" "fr" "en" "ar" "he" "nl" "pt_br"

Associated language for this CloudPBX

name
string

CloudPBX name. If not provided, will be something like 'cloud_pbx_companyName'

noReplyDelay
number [ 10 .. 60 ]
Default: 20

In case of overflow no reply forward on subscribers, timeout in seconds after which the call will be forwarded

numberingDigits
number

Number of digits for CloudPBX numbering plan. If numberingPrefixes is provided, this parameter is mandatory.If numberingDigitsLength is not configured or "fixed" numberingDigits is mandatory.
For example, if numberingPrefixes is ["7","9"] and numberingDigits is 4, allowed numbers for this CloudPBX will be from 7000 to 7999 and from 9000 to 9999

numberingDigitsLength
string
Default: "fixed"
Enum: "fixed" "variable"

Is the numbering digits of each numbering prefix the same (numberingDigits) or could be different (digits in numberingPlan).

Array of objects (postCloudPbxNumberingPlan)

Replace numberingPrefixes for default numberingDigitsLength value fixed. Array of Prefixes, digits (when cloudPBX numberingDigitsLength is not "fixed") and description for CloudPBX numbering plan ([{prefix:"1", digits: 3, description: ""} , {prefix:"999", digits: 5, description: ""}] )

numberingPrefix
number

deprecated parameter Prefix for CloudPBX numbering plan

numberingPrefixes
Array of strings

deprecated parameter Array of Prefixes for CloudPBX numbering plan ( only digits => ["1" , "999"] ) only for fixed numberingDigitsLength value (default one). Use numberingPlan.

optimizedDialing
string
Enum: "not_available" "not_activated" "activated"

indicates if optimized dialing option is activated or not (it could be 'not_available' if the option is not available on CloudPBX's country)

outgoingPrefix
number

Company outgoing prefix

pbxLdapId
string

custom "pbxId" declared in an external DB (ldap), used to correlate to Rainbow pbxId.

routeInternalCallsToPeer
boolean

Indicates if internal calls must be routed to peer (Only available if 'routeInternalCallsToPeerAllowed' is set to 'true' on external trunk)

object
sipDeviceTransferMode
string
Enum: "new_call" "attended_transfer" "blind_transfer" "optional"

Default Myriad SIP devices transfer softkey behavior

siteId
string

Identifier of the site on which CloudPBX should be created

Responses

Request samples

Content type
application/json
{
  • "bpId": "string",
  • "callForkingToPstnNumber": "not_available",
  • "companyId": "string",
  • "country": "str",
  • "customSipHeader_1": "string",
  • "customSipHeader_2": "string",
  • "externalTrunkId": "string",
  • "language": "en",
  • "name": "string",
  • "noReplyDelay": 20,
  • "numberingDigits": 0,
  • "numberingDigitsLength": "fixed",
  • "numberingPlan": [
    ],
  • "numberingPrefix": 0,
  • "numberingPrefixes": [
    ],
  • "optimizedDialing": "not_available",
  • "outgoingPrefix": 0,
  • "pbxLdapId": "string",
  • "routeInternalCallsToPeer": true,
  • "serviceCodesDialPlan": {
    },
  • "sipDeviceTransferMode": "new_call",
  • "siteId": "string"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Get details about a device model

Allows administrator to retrieve the details of a device model
Can be invoked in two different ways:

  • By requesting with 'Accept: application/json' HTTP header: The returned resource will be the device model info in JSON format
  • By requesting with 'Accept: image/*' HTTP header: The returned resource will be the device model image


Example: GET https://sandbox.openrainbow.com/api/rainbow/rvcpprovisioning/v1.0/cloudpbxs/5cd1a4f426fa4a77f8c04150/devicemodels/12
path Parameters
deviceModelId
required
string

Unique identifier of the device model

systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

header Parameters
accept
required
string

application/json

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Get list of device models available for a CloudPBX

Allows administrator to retrieve the list of device models supported by a CloudPBX

superadmin and support can get device models for all CloudPBXs existing in Rainbow
bp_admin can only get device models for CloudPBXs linked to sites of End Customer companies for which their bp_admin's company is the BP company
organization_admin can only get device models for CloudPBXs linked to sites of companies under their organisation
company_admin can only get device models for CloudPBXs linked to sites of their company
site_admin can only get device models for CloudPBXs linked to the site they administrate

Example: GET https://sandbox.openrainbow.com/api/rainbow/rvcpprovisioning/v1.0/cloudpbxs/5cd1a4f426fa4a77f8c04150/devicemodels

path Parameters
systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

query Parameters
category
string
Default: "deskphone,uncategorized"

Filter models on category. Default filter includes 'deskphone' and 'uncategorized' for backward compatibility

range
string

Filter models on range.

header Parameters
accept
required
string

application/json

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Get Emergency numbers and emergency options available for a CloudPBX

This API allows administrator to retrieve Emergency Numbers and Emergency Options supported by a CloudPBX

superadmin and support can get Emergency Numbers and Emergency Options for all CloudPBXs existing in Rainbow
bp_admin can only get Emergency Numbers and Emergency Options for CloudPBXs linked to sites of End Customer companies for which their bp_admin's company is the BP company
organization_admin can only get Emergency Numbers and Emergency Options for CloudPBXs linked to sites of companies under their organisation
company_admin can only get Emergency Numbers and Emergency Options for CloudPBXs linked to sites of their company
site_admin can only get Emergency Numbers and Emergency Options for CloudPBXs linked to the site they administrate

Example: GET https://sandbox.openrainbow.com/api/rainbow/rvcpprovisioning/v1.0/cloudpbxs/5cd1a4f426fa4a77f8c04150/emergency-numbers

path Parameters
systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

header Parameters
accept
required
string

application/json

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Get CloudPBX numbering plan detailed information

This API allows administrator to retrieve the CloudPBX numbering Plan detailed information

superadmin and support can get numbering Plan detailed information for all CloudPBXs existing in Rainbow
bp_admin can only get numbering Plan detailed information for CloudPBXs linked to sites of End Customer companies for which their bp_admin's company is the BP company
organization_admin can only get numbering Plan detailed information for CloudPBXs linked to sites of companies under their organisation
company_admin can only get numbering Plan detailed information for CloudPBXs linked to sites of their company
site_admin can only get numbering Plan detailed information for CloudPBXs linked to the site they administrate

Example: GET https://sandbox.openrainbow.com/api/rainbow/rvcpprovisioning/v1.0/cloudpbxs/5cd1a4f426fa4a77f8c04150/numbering-plan

path Parameters
systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

header Parameters
accept
required
string

application/json

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Get list of languages available for a CloudPBX

This API allows administrator to retrieve a list of languages supported by a CloudPBX

superadmin and support can get languages for all CloudPBXs existing in Rainbow
bp_admin can only get languages for CloudPBXs linked to sites of End Customer companies for which their bp_admin's company is the BP company
organization_admin can only get languages for CloudPBXs linked to sites of companies under their organisation
company_admin can only get languages for CloudPBXs linked to sites of their company
site_admin can only get languages for CloudPBXs linked to the site they administrate

Example: GET https://sandbox.openrainbow.com/api/rainbow/rvcpprovisioning/v1.0/cloudpbxs/5cd1a4f426fa4a77f8c04150/languages

path Parameters
systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

header Parameters
accept
required
string

application/json

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Get CloudPBX peer authentication options

This API allows administrator to retrieve the CloudPBX peer authentication options

superadmin and support can get peer authentication options for all CloudPBXs existing in Rainbow
bp_admin can only get peer authentication options for CloudPBXs linked to sites of End Customer companies for which their bp_admin's company is the BP company
organization_admin can only get peer authentication options for CloudPBXs linked to sites of companies under their organisation
company_admin can only get peer authentication options for CloudPBXs linked to sites of their company
site_admin can only get peer authentication options for CloudPBXs linked to the site they administrate

Example: GET https://sandbox.openrainbow.com/api/rainbow/rvcpprovisioning/v1.0/cloudpbxs/5cd1a4f426fa4a77f8c04150/peer-authentication-options

path Parameters
systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

header Parameters
accept
required
string

application/json

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Update peer authentication options for a given CloudPBX

This API updates peer authentication options for a given CloudPBX

superadmin can update CloudPBXs for all companies
bp_admin can only update CloudPBXs for their End Customer companies
organization_admin can only update CloudPBXs for companies under their organisation
company_admin can only update CloudPBX of their company

path Parameters
systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

Request Body schema: application/json
password
required
string

Password to use for peer authentication

username
required
string

Username to use for peer authentication

Responses

Request samples

Content type
application/json
{
  • "password": "string",
  • "username": "string"
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "status": "Cloud PBX peer authentication options successfully updated (Id=60f9bf93d7cc516481734f1f)"
}

Update a CloudPBX overflow configuration

This API updates a CloudPBX overflow configuration for a given company

superadmin can update CloudPBX for all companies
bp_admin can only update CloudPBX for their End Customer companies
organization_admin can only update CloudPBX for companies under their organisation
company_admin can only update CloudPBX of their company

path Parameters
systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

Request Body schema: application/json
activate
boolean

Activate or deactivate the busy/noReply overflow on all subscribers (only for the subscribers with the default overflow of the company, not a custom one, or disabled by an admin)

activateUnavailableOverflow
boolean

Activate or deactivate the unavailable overflow on all subscribers (only for the subscribers with the default overflow of the company, not a custom one, or disabled by an admin)

noReplyDelay
number [ 10 .. 60 ]

Delay after the no reply overflow call forward will be effective, could be overwriten with a manager assistant delegation

Responses

Request samples

Content type
application/json
{
  • "activate": true,
  • "activateUnavailableOverflow": true,
  • "noReplyDelay": 10
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Cloudpbx Phone Numbers

Associate a DDI number to a Rainbow user

path Parameters
systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

phoneNumberId
required
string

DDI phone number unique identifier (e.g. 569ce8c8f9336c471b98eda1)

userId
required
string

Rainbow user unique identifier (e.g. 569ce8c8f9336c471b98eda1)

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Disassociate a DDI number from a Rainbow user

path Parameters
systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

phoneNumberId
required
string

DDI phone number unique identifier (e.g. 569ce8c8f9336c471b98eda1)

userId
required
string

Rainbow user unique identifier (e.g. 569ce8c8f9336c471b98eda1)

header Parameters
accept
required
string

application/json

content-type
required
string

application/json

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Delete a DDI number for a given CloudPBX

This API allows to delete a DDI number for a CloudPBX.
> Note : Default DDI can be deleted only if it is the last DDI of the CloudPBX
Example: DELETE https://sandbox.openrainbow.com/api/rainbow/rvcpprovisioning/v1.0/cloudpbxs/5c9e2be00d9ebd10f0dad5e6/phone-numbers/ddi/5c9e2be00d9ebd10f0dad5e7


Note: bp_admin of IR company won't be able to delete a DDI if VAD has set ddiReadOnly flag to true on IR company.

path Parameters
systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

phoneNumberId
required
string

DDI phone number unique identifier (e.g. 569ce8c8f9336c471b98eda1)

header Parameters
accept
required
string

application/json

Responses

Response samples

Content type
application/json
{
  • "status": "DDI number 5c9e2be00d9ebd10f0dad5e7 successfully deleted"
}

List DDI numbers associated to a CloudPBX

path Parameters
systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

query Parameters
limit
number
Default: 100

Allow to specify the number of DDI numbers to retrieve

offset
number

Allow to specify the position of first DDI number to retrieve (first site if not specified) Warning: if offset > total, no results are returned

sortField
string
Default: "number"

Sort DDI numbers list based on the given field

sortOrder
number
Default: 1
Enum: -1 1

Specify order when sorting DDI numbers list

isAssignedToUser
boolean

Allows to filter DDI numbers list if they are assigned to a user or not

isAssignedToGroup
boolean

Allows to filter DDI numbers list if they are assigned to a group or not (e.g. hunting group)

isAssignedToIVR
boolean

Allows to filter DDI numbers list if they are assigned to a IVR or not

isAssignedToAutoAttendant
boolean

Allows to filter DDI numbers list if they are assigned to a Auto attendant or not

isAssigned
boolean

Allows to filter DDI numbers list if they are assigned (to a user or to a group or to a IVR) or not assigned

numberE164StartWith
string

Get DDI numbers for which E164 Number starts with "numberE164StartWith" value

header Parameters
accept
required
string

application/json

content-type
required
string

application/json

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "limit": 100,
  • "offset": 0,
  • "total": 2
}

Create a DDI number

This API allows to create a DDI number for a CloudPBX.
Example: POST https://sandbox.openrainbow.com/api/rainbow/rvcpprovisioning/v1.0/cloudpbxs/5c9e2be00d9ebd10f0dad5e6/phone-numbers/ddi


Note: bp_admin of IR company won't be able to create DDI if VAD has set ddiReadOnly flag to true on IR company.

path Parameters
systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

Request Body schema: application/json
number
required
string

DDI number

Responses

Request samples

Content type
application/json
{
  • "number": "string"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Get unassigned CloudPBX internal phone numbers

This API allows to list all unassigned internal phone numbers for a given CloudPBX system.

path Parameters
systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

query Parameters
startingWith
number

Return by default 100 free numbers that start with, for example, 10

limit
number
Default: 100

Number of free numbers you want to retrieve

header Parameters
accept
required
string

application/json

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Set DDI as default CloudPBX DDI

path Parameters
systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

phoneNumberId
required
string

DDI phone number unique identifier (e.g. 569ce8c8f9336c471b98eda1)

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Cloudpbx Subscribers

Assign a SIP Device to a CloudPBX subscriber

This API allows to assign a SIP device to a CloudPBX Subscriber.
The device must have been previously created.
Assigning a device to a subscriber can de done by specifying the device Id (preferred) in the request, or the device mac address.
Assigning a device to a subscriber can de done by specifying the device Id in the request, or the device mac address and deviceType Id.
Example: POST https://sandbox.openrainbow.com/api/rainbow/rvcpprovisioning/v1.0/cloudpbxs/5c6aeb5b7817b9050c517e20/subscribers/5c790e7b722ee82fe89f2532/devices

path Parameters
phoneNumberId
required
string

PhoneNumber unique identifier of the CloudPBX Subscriber on which the SIP device must be assigned

systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

Request Body schema: application/json
deviceId
string

Unique identifier of the device to assign

macAddress
string

Device mac address

Responses

Request samples

Content type
application/json
{
  • "deviceId": "string",
  • "macAddress": "string"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Get all SIP devices assigned to a subscriber

This API allows administrator to retrieve all SIP devices assigned to a subscriber

superadmin and support can get all devices existing in Rainbow.
bp_admin can only get devices linked to sites of End Customer companies for which their bp_admin's company is the BP company.
organization_admin can only get devices linked to sites of companies under their organisation.
company_admin can only get devices linked to sites of their company.
site_admin can only get the devices linked to the site they administrate.

Example: GET https://sandbox.openrainbow.com/api/rainbow/rvcpprovisioning/v1.0/cloudpbxs/5c6aeb5b7817b9050c517e20/subscribers/5c790e7b722ee82fe89f2532/devices

path Parameters
phoneNumberId
required
string

PhoneNumber unique identifier of the CloudPBX Subscriber for which all SIP devices must be retrieved

systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

query Parameters
limit
number
Default: 100

Allow to specify the number of SIP Devices to retrieve.

offset
number

Allow to specify the position of first SIP Device to retrieve (first one if not specified). Warning: if offset > total, no results are returned.

sortField
string
Default: "shortNumber"

Sort SIP Devices list based on the given field.

sortOrder
number
Default: 1
Enum: -1 1

Specify order when sorting SIP Deviceslist.

header Parameters
accept
required
string

application/json

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "limit": 100,
  • "offset": 0,
  • "total": 1
}

Create a CloudPBX Subscriber for a Rainbow User.

This API allows to create a new CloudPBX Subscriber for a Rainbow User.
This new subscriber will appear as a new entry into "phoneNumbers" list of the targeted Rainbow User.
As a result, this CloudPBX subscriber will be accessible through the admin API using following path : admin/v1.0/systems/:systemId/phone-numbers/:phoneNumberId
Example: POST https://sandbox.openrainbow.com/api/rainbow/rvcpprovisioning/v1.0/cloudpbxs/5c6aeb5b7817b9050c517e20/subscribers

path Parameters
systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

Request Body schema: application/json
login
string

SIP username (if not provided ; shortNumber is used as SIP username)

password
string

SIP password for all associated SIP devices (if not provided ; it will be automatically generated).
Only lowercases, digits, * and # are authorized characters. Minimum length is 8, maximum is 12

shortNumber
required
string

Internal Number of the new CloudPBX Subscriber

userId
required
string

Unique identifier of the associated Rainbow User

Responses

Request samples

Content type
application/json
{
  • "login": "string",
  • "password": "string",
  • "shortNumber": "string",
  • "userId": "string"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Delete a CloudPBX Subscriber (identified by its phone Number identifier)

This API allows to delete a CloudPBX Subscriber. All its associated SIP devices become free for other subscribers.
Example: DELETE https://sandbox.openrainbow.com/api/rainbow/rvcpprovisioning/v1.0/cloudpbxs/5c6aeb5b7817b9050c517e20/subscribers/5c790e7b722ee82fe89f2532

path Parameters
phoneNumberId
required
string

PhoneNumber unique identifier of the CloudPBX Subscriber to delete

systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

header Parameters
accept
required
string

application/json

Responses

Response samples

Content type
application/json
{
  • "status": "Cloud PBX Subscriber 56c5c19f94141765119f896c successfully deleted",
  • "data": [ ]
}

Get a CloudPBX subscriber

path Parameters
phoneNumberId
required
string

PhoneNumber unique identifier of the CloudPBX Subscriber to get (it is also its subscriber Id)

systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

header Parameters
accept
required
string

application/json

content-type
required
string

application/json

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Remove association between subscriber and SIP device

This API allows to remove association between subscriber and the Sip Device (SIP device becomes available for another subscriber)
Example: DELETE https://sandbox.openrainbow.com/api/rainbow/rvcpprovisioning/v1.0/cloudpbxs/5c6aeb5b7817b9050c517e20/subscribers/5c790e7b722ee82fe89f2532/devices/5cd3de0126fa4a77f8c0415b

path Parameters
phoneNumberId
required
string

PhoneNumber unique identifier of the CloudPBX Subscriber on which the Sip device association must be deleted

deviceId
required
string

Unique identifier of the SIP device to free

systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

header Parameters
accept
required
string

application/json

Responses

Response samples

Content type
application/json
{
  • "status": "SIP device association for 5cd3de0126fa4a77f8c0415b successfully deleted",
  • "data": [ ]
}

Get a specific SIP device assigned to a subscriber

This API allows administrator to retrieve a given SIP device assigned to a subscriber

superadmin and support can get all devices existing in Rainbow.
bp_admin can only get devices linked to sites of End Customer companies for which their bp_admin's company is the BP company.
organization_admin can only get devices linked to sites of companies under their organisation.
company_admin can only get devices linked to sites of their company.
site_admin can only get the devices linked to the site they administrate.

Example: GET https://sandbox.openrainbow.com/api/rainbow/rvcpprovisioning/v1.0/cloudpbxs/5c6aeb5b7817b9050c517e20/subscribers/5c790e7b722ee82fe89f2532/devices/5cd3de0126fa4a77f8c0415b

path Parameters
phoneNumberId
required
string

PhoneNumber unique identifier of the CloudPBX Subscriber associated to the SIP device to retrieve

deviceId
required
string

Unique identifier of the SIP device to retrieve

systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

header Parameters
accept
required
string

application/json

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Get info on all registered SIP devices for a subscriber

This API allows administrator to retrieve registrations info on all devices registered for a subscriber

superadmin and support can get all registrations info existing in Rainbow.
bp_admin can only get registrations info linked to sites of End Customer companies for which their bp_admin's company is the BP company.
organization_admin can only get registrations info linked to sites of companies under their organisation.
company_admin can only get registrations info linked to sites of their company.
site_admin can only get the registrations info linked to the site they administrate.

Example: GET https://sandbox.openrainbow.com/api/rainbow/rvcpprovisioning/v1.0/cloudpbxs/5c6aeb5b7817b9050c517e20/subscribers/5c790e7b722ee82fe89f2532/registrations

path Parameters
phoneNumberId
required
string

PhoneNumber unique identifier of the CloudPBX Subscriber for which all SIP registrations must be retrieved

systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

header Parameters
accept
required
string

application/json

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Get subscriber CLI options

path Parameters
phoneNumberId
required
string

PhoneNumber unique identifier of the CloudPBX Subscriber to get (it is also its subscriber Id)

systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

header Parameters
accept
required
string

application/json

content-type
required
string

application/json

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Get subscriber PSTN device options

path Parameters
phoneNumberId
required
string

PhoneNumber unique identifier of the CloudPBX Subscriber to get (it is also its subscriber Id)

systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

header Parameters
accept
required
string

application/json

content-type
required
string

application/json

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Update subscriber PSTN device options

This API allows to update PSTN Device options of a CloudPBX Subscriber

path Parameters
phoneNumberId
required
string

PhoneNumber unique identifier of the CloudPBX Subscriber to update (it is also its subscriber Id)

systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

Request Body schema: application/json
numberE164
string

PSTN number we want to apply for policy "custom_ddi_number"

policy
required
string
Enum: "company_policy" "none" "subscriber_ddi" "custom_ddi_number"

policy to apply

  • none PSTN device feature is not activated for the subscriber ; even if it is activated at CloudPBX level
  • subscriber_ddi PSTN device feature is activated (whatever the activation status at CloudPBX level) ; and subscriber DDI Number is the PSTN device
  • custom_ddi_number PSTN device feature is activated (whatever the activation status at CloudPBX level) ; and PSTN device number must be provided (into data "numberE164")
  • company_policy PSTN device feature activation is defined at CloudPBX level. In that case, if feature is activated at CloudPBX level, PSTN device is the subscriber DDI Number

Responses

Request samples

Content type
application/json
{
  • "numberE164": "string",
  • "policy": "company_policy"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Get subscriber custom SIP headers

path Parameters
phoneNumberId
required
string

PhoneNumber unique identifier of the CloudPBX Subscriber to get (it is also its subscriber Id)

systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

header Parameters
accept
required
string

application/json

content-type
required
string

application/json

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Update subscriber custom SIP headers

This API allows to update custom SIP headers of a CloudPBX Subscriber

path Parameters
phoneNumberId
required
string

PhoneNumber unique identifier of the CloudPBX Subscriber to get (it is also its subscriber Id)

systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

Request Body schema: application/json
customSipHeader_1
string

new value to apply for custom SIP Header 1

customSipHeader_2
string

new value to apply for custom SIP Header 2

Responses

Request samples

Content type
application/json
{
  • "customSipHeader_1": "string",
  • "customSipHeader_2": "string"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Update subscriber traffic barring options

This API allows to update traffic barring options of a CloudPBX Subscriber

path Parameters
phoneNumberId
required
string

PhoneNumber unique identifier of the CloudPBX Subscriber to get (it is also its subscriber Id)

systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

Request Body schema: application/json
permissions
string

id of the traffic barring permission to apply
Identifiers of available traffic barring permissions can be obtained using this dedicated API : GET /api/rainbow/rvcpprovisioning/v1.0/cloudpbxs/:systemId/barring-options

Use this value "default" as barring permission identifier in order to apply barring permissions defined at CloudPBX level

restrictions
string

id of the traffic barring restriction to apply
Identifiers of available traffic barring restrictions can be obtained using this dedicated API : GET /api/rainbow/rvcpprovisioning/v1.0/cloudpbxs/:systemId/barring-options

Use this value "default" as barring restriction identifier in order to apply barring restrictions defined at CloudPBX level

Responses

Request samples

Content type
application/json
{
  • "permissions": "string",
  • "restrictions": "string"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Configure the external call forward options

This API allows configure the authorization on external call forward of a CloudPBX Subscriber

path Parameters
phoneNumberId
required
string

PhoneNumber unique identifier of the CloudPBX Subscriber to get (it is also its subscriber Id)

systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

Request Body schema: application/json
externalCallForward
required
string
Enum: "company_policy" "authorized" "not_authorized"

Chose to authorize or not the external call forward or to be related to system configuration

Responses

Request samples

Content type
application/json
{
  • "externalCallForward": "company_policy"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Update overflow configuration of a subscriber

This API allows to update overflow data of a CloudPBX Subscriber

path Parameters
phoneNumberId
required
string

PhoneNumber unique identifier of the CloudPBX Subscriber to get

systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

Request Body schema: application/json
noReplyDelay
number [ 10 .. 60 ]

Delay after the no reply overflow call forward will be effective, could be overwriten with a manager assistant delegation

unavailableOverflow
required
string

Value of the overflow on unavailable : default (company), custom (overwrite by admin, so it's active), disabled (not at least on that subscriber)

value
required
string

Value of the overflow on busy and no reply : default (company), custom (overwrite by admin), disabled (not at least on that subscriber)

Responses

Request samples

Content type
application/json
{
  • "noReplyDelay": 10,
  • "unavailableOverflow": "string",
  • "value": "string"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Get the overflow status of a subscriber

This API allows to get overflow data of a CloudPBX Subscriber

path Parameters
phoneNumberId
required
string

PhoneNumber unique identifier of the CloudPBX Subscriber to get

systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

header Parameters
accept
required
string

application/json

content-type
required
string

application/json

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Cloudpbx Devices

Add a device module

Add an expansion module to the device.
Some models of the Myriad deskphone serie (M3, M5, M7 and M8) support expansion modules referenced EM_20 and EM_200. Please refer to marketing datasheets to check which modules are supported, and the condition of use.
Once added to a device, programmable keys of the module can then be configured.

path Parameters
deviceId
required
string

Unique identifier of the SIP device on which the module is added.

systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

Request Body schema: application/json
moduleId
required
number
Enum: 1 2 3

Id (Position) of the module

name
string

Fiendly name of the expansion module

type
required
string
Enum: "EM_20" "EM_200"

expansion module type

Responses

Request samples

Content type
application/json
{
  • "moduleId": 1,
  • "name": "string",
  • "type": "EM_20"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Create a new SIP Device into the CloudPBX

This API allows to create a new SIP device into a CloudPBX. This SIP device can then be assigned to an existing subscriber

path Parameters
systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

Request Body schema: application/json
data
object
ipei
string

IPEI of the device for DECT mobile

description
required
string

Description for identifying the device

deviceTypeId
required
number

Device type Identifier - see API GET /cloudpbxs/:id/devicemodels to get the list of supported models for the CloudPBX.

macAddress
string

Device mac address - mandatory for SIP deskphone device (optional for Generic SIP device - deviceTypeId=999999)

mediaTransportProtocol
string
Default: "rtp_savp"
Enum: "rtp_avp" "rtp_savp"

Media Transport Protocol (rtp_savp for encrypted mode ; rtp_avp for no encryption). Only available for SIP Generic Device

password
string

SIP password (ONLY taken into account for GENERIC SIP Device - deviceTypeId=999999)
Only lowercases, digits, * and # are authorized characters. Minimum length is 8, maximum is 12

transferMode
string
Enum: "same_as_company" "new_call" "attended_transfer" "blind_transfer" "optional"

Myriad SIP devices transfer softkey behavior

Responses

Request samples

Content type
application/json
{
  • "data": { },
  • "ipei": "string",
  • "description": "string",
  • "deviceTypeId": 0,
  • "macAddress": "string",
  • "mediaTransportProtocol": "rtp_savp",
  • "password": "string",
  • "transferMode": "same_as_company"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Get all SIP devices of a CloudPBX

This API allows administrator to retrieve all SIP devices assigned into a CloudPBX

superadmin and support can get all devices existing in Rainbow.
bp_admin can only get devices linked to sites of End Customer companies for which their bp_admin's company is the BP company.
organization_admin can only get devices linked to sites of companies under their organisation.
company_admin can only get devices linked to sites of their company.
site_admin can only get the devices linked to the site they administrate.

Example: GET https://sandbox.openrainbow.com/api/rainbow/rvcpprovisioning/v1.0/cloudpbxs/5c6aeb5b7817b9050c517e20/devices

path Parameters
systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

query Parameters
limit
number
Default: 100

Allow to specify the number of SIP Devices to retrieve.

offset
number

Allow to specify the position of first SIP Device to retrieve (first one if not specified). Warning: if offset > total, no results are returned.

sortField
string
Default: "macAddress"
Enum: "macAddress" "shortNumber" "description" "deviceTypeId" "deviceTypeModel" "userDisplayName"

Sort SIP Devices list based on the given field.

sortOrder
number
Default: 1
Enum: -1 1

Specify order when sorting SIP Devices list.

assigned
boolean

Allows to filter devices according their assignment to a subscriber
false, allows to obtain all devices not yet assigned to a subscriber.
true, allows to obtain all devices already assigned to a subscriber.
if undefined ; all devices whatever their assignment status are returned

banned
boolean

Allows to filter devices according to their banned status
false, allows to obtain all devices not banned.
true, allows to obtain all devices banned.
if undefined ; all devices whatever their banned status are returned

phoneNumberId
string

Allows to filter devices according their phoneNumberId (i.e. subscriber id)
This parameter can be a list of phoneNumberId separated by a space (space has to be encoded)
Example : /api/rainbow/rvcpprovisioning/v1.0/cloudpbxs/5cd1a4f426fa4a77f8c04150/devices?phoneNumberId=5d2df541dea16fad7df1a975%205d249d9cd81448aef161b38c
Important note: This parameter is ignored in case other parameter"banned" is set to true

primaryDectBaseId
string

Allows to filter devices belonging to the DECT base identified by primaryDectBaseId

category
string
Default: "deskphone,uncategorized"
Enum: "deskphone" "dectmobile"

Filter models on category. Default filter includes 'deskphone' and 'uncategorized' for backward compatibility

macAddress
string

Allows to filter devices with macAdress (or ipei) starting with the provided value (2 characters minimum)

description
string

Allows to filter devices on which a word into description matches the provided value (Case-Insensitive mode and 3 characters minimum)

userId
string

Allows to filter devices according their associated user (identified by its Unique Identifier)
This parameter can be a list of userId separated by a space (space has to be encoded)
Example : /api/rainbow/rvcpprovisioning/v1.0/cloudpbxs/5cd1a4f426fa4a77f8c04150/devices?userId=5d2df541dea16fad7df1a976%205d249d9cd81448aef161b38d
Important note: This parameter is ignored in case other parameter"assigned" is set

shortNumber
string

Allows to filter devices with shortNumber starting with the provided value

deviceTypeId
number

Allows to filter devices according their type (type possible values are provided by GET method on PATH=/api/rainbow/rvcpprovisioning/v1.0/cloudpbxs/:systemId/devicemodels)
Important note: This parameter is ignored in case other parameter"category" is set

userDisplayName
string

Allows to filter devices according its user displayName (Case-Insensitive mode and 2 characters minimum)

sipGenericPasswordRequested
boolean

Allows to indicate that SIP Passwords for SIP Generic Devices are requested

header Parameters
accept
required
string

application/json

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "limit": 100,
  • "offset": 0,
  • "total": 2
}

Request factory reset of the SIP device

This API allows to reset a SIP deskphone device to its factory settings.
Be aware that the device will no longer be operational, and should, after the factory reset, need to be manually configured (e.g. at least auto provisioning Url will need to be set).

path Parameters
deviceId
required
string

Unique identifier of the SIP device to be reset

systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

Responses

Response samples

Content type
application/json
{
  • "status": "Resetting device xxxx",
  • "data": [ ]
}

Get a SIP Device

Retrieve a SIP device using the given deviceId

path Parameters
deviceId
required
string

Unique identifier of the SIP device to get

systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

header Parameters
accept
required
string

application/json

content-type
required
string

application/json

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Remove a SIP Device from a CloudPBX

This API allows to remove a SIP Device from a CloudPBX. To do so, the SIP device must no longer be associated to a subscriber.
Example: DELETE https://sandbox.openrainbow.com/api/rainbow/rvcpprovisioning/v1.0/cloudpbxs/5c6aeb5b7817b9050c517e20/devices/5cd3de0126fa4a77f8c0415b

path Parameters
deviceId
required
string

Unique identifier of the SIP device to remove

systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

header Parameters
accept
required
string

application/json

Responses

Response samples

Content type
application/json
{
  • "status": "SIP device 5cd3de0126fa4a77f8c0415b successfully deleted",
  • "data": [ ]
}

Update a SIP Device

This API allows to update a SIP device

path Parameters
deviceId
required
string

Unique identifier of the SIP device to update

systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

Request Body schema: application/json
description
string

new description

deskphoneFailoverMode
string
Enum: "same_as_company" "disabled"

Deskphone Failover Mode (same_as_company for site/system configuration ; disabled for no failover). Only available for SIP Halo and Myriad Devices

macAddress
string

new device mac address

mediaTransportProtocol
string
Enum: "rtp_avp" "rtp_savp"

Media Transport Protocol (rtp_savp for encrypted mode ; rtp_avp for no encryption). Only available for SIP Generic Device

password
string

SIP password (ONLY taken into account for GENERIC SIP Device - deviceTypeId=999999)
Only lowercases, digits, * and # are authorized characters. Minimum length is 8, maximum is 12

transferMode
string
Enum: "same_as_company" "new_call" "attended_transfer" "blind_transfer" "optional"

Myriad SIP devices transfer softkey behavior

Responses

Request samples

Content type
application/json
{
  • "description": "string",
  • "deskphoneFailoverMode": "same_as_company",
  • "macAddress": "string",
  • "mediaTransportProtocol": "rtp_avp",
  • "password": "string",
  • "transferMode": "same_as_company"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Get SIP registrations information of a device

This API allows to retrieve SIP registrations information relative to a device.

path Parameters
deviceId
required
string

Unique identifier of the SIP device for which SIP registrations information should be retrieved

systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

header Parameters
accept
required
string

application/json

content-type
required
string

application/json

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Grant access to debug session

This API allows to grant access to debug session on the given device.
When debug session is granted on the device, admins can retrieve the admin password of the device, url to access the device admin page and also initiate ssh session with the device.
A debug session can be terminated by:

  • Calling the device revoke API
  • After debug session has timed out, a periodic check is performed by the portal to revoke expired debug sessions (periodicity defined by configuration parameter).

During debug session, adminUrl and adminPassword of the device can be retrieved by getting device information. Please note that `adminUrl` could be unreachable depending on network configuration.
When a debug session is closed, ssh access to the device is deactivated, and the admin password of the device is modified.
path Parameters
deviceId
required
string

Unique identifier of the SIP device for which the debug session access will be granted

systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

Request Body schema: application/json
duration
string

Duration, in seconds, of the debug session - Only superadmin can set a debug duration different from the default one (configuration parameter: e.g. 30 minutes)

Responses

Request samples

Content type
application/json
{
  • "duration": "string"
}

Response samples

Content type
application/json
{
  • "status": "Debug session successfully granted",
  • "data": [ ]
}

Revoke access from debug session

This API allows to revoke access to debug session on the given device.
When revoked, the debug session can no longer be used.
The admin password is no longer visible (changed).

path Parameters
deviceId
required
string

Unique identifier of the SIP device for which the debug session access will be revoked

systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

header Parameters
accept
required
string

application/json

content-type
required
string

application/json

Responses

Response samples

Content type
application/json
{
  • "status": "Debug session successfully revoked",
  • "data": [ ]
}

Request the SIP device to reboot

This API allows to reboot a SIP deskphone device.

path Parameters
deviceId
required
string

Unique identifier of the SIP device to be rebooted

systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

Responses

Response samples

Content type
application/json
{
  • "status": "Rebooting device xxxx",
  • "data": [ ]
}

Remove a device module

Remove an expansion module from a device.
Note that all programmable keys hosted by the module will be deleted

path Parameters
deviceId
required
string

Unique identifier of the SIP device on which the module is added.

moduleId
required
string

Unique identifier of the module to be removed.

systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

header Parameters
accept
required
string

application/json

content-type
required
string

application/json

Responses

Response samples

Content type
application/json
{
  • "errorCode": 401,
  • "errorMsg": "Unauthorized",
  • "errorDetails": {
    },
  • "errorDetailsCode": 401523
}

Cloudpbx Device Keys

Delete a programmable key from a SIP Device

Delete a programmable keys from a SIP deskphone device, or an expansion module
Only keys created by this API can be deleted, not the ones created by a service (i.e. Manager-assistant).

If moduleId is not specified, it is assumed to be the deskphone itself (moduleId = 0)

path Parameters
deviceId
required
string

Unique identifier of the SIP device

keyNum
required
string

Key number to delete

systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

query Parameters
moduleId
number
Default: 0

Identifier of the module hosting the key to delete

header Parameters
accept
required
string

application/json

content-type
required
string

application/json

Responses

Response samples

Content type
application/json
{
  • "status": "SIP Device key 2 successfully deleted on device 5fd20084f2650878b92994d1",
  • "data": {
    }
}

Get a SIP Device programmable keys

Retrieve all programmable keys of a SIP deskphone device

path Parameters
deviceId
required
string

Unique identifier of the SIP device

systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

query Parameters
moduleId
number

Filter by module hosting the programmable keys. Module 0 is the deskphone itself

header Parameters
accept
required
string

application/json

content-type
required
string

application/json

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Create a programmable key on a SIP Device

Creation of a programmable key on a SIP deskphone device or one of its expansion module
Programmable key type can be:

  • forward: Activate / deactivate immediate forward to external or internal number
  • headset: Activate / deactivate audio on headset (connected via USB to the deskphone)
  • huntgroup: Login / Logout of a group from deskphone
  • audio_hub: Activate / deactivate the use of the deskphone as an audio hub (deskphone connected via USB to a computer)
  • speeddial: allow to assign a Cloud PBX user or group to a dedicated key for speed dialing, or an external number
  • monitor: allow advanced feature for the concerned key (only for user):
    -speed dialing if destination subscriber in on hook.
    -call pickup if destination subscriber is ringing.
    -state indication if destination subscriber is in conversation.

Device model gives the key types supported by the device (i.e. capabilities of the device and of its expansion modules), as well as the maximum number of keys.
Key owner indicates which entity has created the key:
  • service: Key has been implicitly created by a service activation (e.g. manager-assistant feature)
  • admin: Key has been explicitly created by an API call (this API) by an admin

Service key owner has the highest priority, and can't be altered from this API. Only the service itself can modify or delete the concerned key.
Service key will be set up at the first available key place on the concerned device. If no free place can be found, then the service key will replace the first 'non service' key found.

It is the responsibility of the administrator, using this API, to manage the programmable keys on the device. Thus, duplicated keys (same destination and / or same key type) are possible if not correctly managed. Server won't check for these duplicated keys.
path Parameters
deviceId
required
string

Unique identifier of the SIP device

systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

Request Body schema: application/json
displayName
string

Key display name (mandatory in case of external speed dial key)

groupId
string

Destination group identifier for huntgroup key

keyNum
required
number

Programmable key number (from 1 to max key number supported by the device)

keyType
required
string
Enum: "speeddial" "monitor" "forward" "headset" "huntgroup" "audio_hub"

Programmable key type, monitor only for users.

moduleId
number
Default: 0

Expansion module identifier hosting the programmable key. If not set, key is located on the deskphone itself

number
string

Destination number (mandatory in case of external speed dial key)

phoneNumberId
string

Destination user's or group's phone Number identifier

Responses

Request samples

Content type
application/json
{
  • "displayName": "string",
  • "groupId": "string",
  • "keyNum": 0,
  • "keyType": "speeddial",
  • "moduleId": 0,
  • "number": "string",
  • "phoneNumberId": "string"
}

Response samples

Content type
application/json
{
  • "status": "SIP Device key 4 to external successfully created on device 622a0d1ae5b8ee362900bcbb",
  • "data": {
    }
}

Update programmable keys on a SIP Device module

Update programmable keys for a given module of a SIP deskphone device
See programmable key creation for supported types
NOTE1: All programmable keys of the device's module will be replaced by the provided data
NOTE2: Operation will be rejected if one key data has at least an invalid field

path Parameters
deviceId
required
string

Unique identifier of the SIP device

systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

Request Body schema: application/json
required
Array of objects (putCloudPbxDeviceKeysKeys)

List of module's keys

Responses

Request samples

Content type
application/json
{
  • "keys": [
    ]
}

Response samples

Content type
application/json
{
  • "errorCode": 400,
  • "errorMsg": "Bad Request",
  • "errorDetails": "Key type forward not supported by device 622a061fe5b8ee362900b9b7 (vendor: ALE/model: 8068S) ",
  • "errorDetailsCode": 400581
}

Cloudpbx Group Forwards

Get forwards of a group (or a call queue)

This API allows to get a group's forwards of a CloudPBX.
Example: GET https://sandbox.openrainbow.com/api/rainbow/rvcpprovisioning/v1.0/cloudpbxs/5c6aeb5b7817b9050c517e20/groups/5c6aeb5b7817b9050c517e21/forwards On return data "name" or concerned "id" with value null if the user/rvcpGroup/rvcpAutoAttendant is deleted, please remove the forward.

path Parameters
groupId
required
string

Unique identifier of the group (or call queue)

systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

header Parameters
content-type
required
string

application/json

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Update forwards of a group

This API allows to update forwards of a group (or call queue) of a CloudPBX.
Example: PUT https://sandbox.openrainbow.com/api/rainbow/rvcpprovisioning/v1.0/cloudpbxs/5c6aeb5b7817b9050c517e20/groups/5c6aeb5b7817b9050c517e21/forwards


Setting a forward on a group has different implications depending on the type of group.
For a hunting group, it implies setting a forward on the dedicated subscriber of the cloud PBX associated with the group. The supported forward types in this case are: 'immediate', 'overflow'. Overflow is:

  • for parallel: 'busy', 'noreply' and 'unavailable'
  • for others: 'busy', unavailable'
Forward destinations are limited to externalNumber, autoAttendant, internalNumber, voicemail, welcomeService for hunting group. If forward is not activated, it will go to a voice prompt after
  • for parallel the amount of seconds in noReplyDelay value (60 by default)
  • for others after everyone rang and no one answered


For a call queue, supported forward types in this case are: 'immediate' and 'overflow'. But consider that only 'overflow' type is available, don't try to manage 'immediate' forward type for the moment.
Forward destinations are limited to externalNumber, autoAttendant, internalNumber, voicemail, welcomeService.
For overflow forward type on call queue, behavior depends on enable attribute and activate attribute :
Following logic is applied:

  • In case enable=true ; overflow is On for the call queue ; whatever the value of activate attribute :
    • If activate=false ; then call queue overflow is done towards adapted Voice Prompt (see "cq_unvailable" greeting type into Greetings section)
    • If activate=true ; the call queue overflow is done according destinationType
  • In case enable=false ; overflow is Off for the call queue ; whatever the value of active attribute. There is no overflow at all.
This logic is applied whatever call queue distribution policy (parallel and others)
path Parameters
groupId
required
string

Unique identifier of the CloudPBX group (or call queue)

callForwardType
required
string

The forward type to update.

systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

Request Body schema: application/json
activate
required
boolean

Activate or cancel a forward.

destinationType
string
Enum: "internalnumber" "externalnumber" "autoattendant" "voicemail" "welcomeservice"

The destination type. Mandatory for activation.

enable
boolean

Only for call queue overflow forward type (and mandatory for call queue overflow forward type)
In addiction to activate attribute, enable attribute defines the behavior of Overflow in case of a call queue , following this logic :

  • In case enable=true ; overflow is On for the call queue ; whatever the value of activate attribute :
    • If activate=false ; then call queue overflow is done towards adapted Voice Prompt (see "cq_unvailable" greeting type into Greetings section)
    • If activate=true ; the call queue overflow is done according destinationType
  • In case enable=false ; overflow is Off for the call queue ; whatever the value of active attribute. There is no overflow at all.
immediateOverflowWhenEmpty
boolean

Only for call queue overflow forward type
In case there is no agent for the call queue, this attribute indicates if overflow is immediate or not (whatever the noReplyDelay value)

noReplyDelay
number [ 5 .. 180 ]
Default: 60

in case of 'overflow' forward type on parallel hunting group, timeout in seconds after which the call will be forwarded. In case of call Queue, this timeout value is used in all cases of distribution policy

number
string

The number to forward. Mandatory for destinationType = internalnumber or externalnumber.

rvcpAutoAttendantId
string

Unique identifier of the auto attendant, only for hunting_group or call_queue group type

welcomeServiceId
string

Unique identifier of the welcome service, only for hunting_group or call_queue group type

Responses

Request samples

Content type
application/json
{
  • "activate": true,
  • "destinationType": "internalnumber",
  • "enable": true,
  • "immediateOverflowWhenEmpty": true,
  • "noReplyDelay": 60,
  • "number": "string",
  • "rvcpAutoAttendantId": "string",
  • "welcomeServiceId": "string"
}

Response samples

Content type
application/json
{
  • "status": "Call Forward successfully updated",
  • "data": {
    }
}

Cloudpbx Group Voicemail Greetings

Create a voicemail greeting for a group

This API can be used to create a voicemail greeting for a cloudpbx's group.
Request body must contain audio file content.

path Parameters
systemId
required
string

Unique identifier of the Cloud PBX

groupId
required
string

Unique identifier of the group

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Retrieve voicemail greetings for a group

This API can be used to retrieve customized voicemail greetings for a cloudpbx's group.

path Parameters
systemId
required
string

Unique identifier of the Cloud PBX

groupId
required
string

Unique identifier of the group

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Delete a voicemail greeting for a group

This API can be used to delete a voicemail greeting for a cloudpbx's group.

path Parameters
systemId
required
string

Unique identifier of the Cloud PBX

groupId
required
string

Unique identifier of the group

greetingId
required
string

Unique identifier of the greeting

Responses

Response samples

Content type
application/json
{
  • "status": "Voicemail greeting has been deleted"
}

Retrieve a voicemail greeting (audio file) for a group

This API can be used to retrieve a voicemail greeting (audio file) for a cloudpbx's group.

path Parameters
systemId
required
string

Unique identifier of the Cloud PBX

groupId
required
string

Unique identifier of the group

greetingId
required
string

Unique identifier of the greeting

Responses

Response samples

Content type
application/json
{
  • "null": "string"
}

Update audio file associated to a voicemail greeting

This API can be used to update the audio file associated to a voicemail greeting.
Request body must contain audio file content.

path Parameters
systemId
required
string

Unique identifier of the Cloud PBX

groupId
required
string

Unique identifier of the group

greetingId
required
string

Unique identifier of the greeting

Responses

Response samples

Content type
application/json
{
  • "status": "Voicemail greeting has been updated"
}

Cloudpbx Greetings

Delete the requested greeting

API used to delete the requested greeting.
Note: only non active and non default greetings can be deleted from the file storage.


Example:
DELETE https://sandbox.openrainbow.com/api/rainbow/rvcpprovisioning/v1.0/cloudpbxs/5cab078455d4811fdd87b0c1/greetings/4b3f58bdc9fe47d69e0ebd878944d12e

path Parameters
fileId
required
string

Identifier of the greeting file storage (e.g. 569ce8c8f9336c471b98eda1)

systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

Responses

Response samples

Content type
application/json
{
  • "status": "Greeting 'music_on_hold' with fileId 5fd101e10394b640112fe9e8 successfully deleted"
}

Get the requested greeting

Used to retrieve the requested greeting, identified by its fileId.
Can be invoked in two different ways:

  • By requesting with 'Accept: application/json' HTTP header: The returned resource will be the greeting descriptor in JSON format.
  • By requesting with 'Accept: audio/x-wav' HTTP header: The returned resource will be the greeting wav file.

Please note that the returned greeting file will always be a wav file, whatever the format of the uploaded greeting file is.


Example:
GET https://sandbox.openrainbow.com/api/rainbow/rvcpprovisioning/v1.0/cloudpbxs/:systemId/greetings/5fd0fbf1bf81ed5c01fe9cdc

path Parameters
fileId
required
string

File Identifier of the greeting (e.g. 569ce8c8f9336c471b98eda1)

systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

Responses

Response samples

Content type
{
  • "data": {
    }
}

Delete all greetings

Delete all the greetings associated to the cloudpbx.
First of all, greetings will be restored to their default values (or cleared if default value is empty).
Then, all stored greetings will be deleted.
The scope of this request is limited to the provided context (i.e. autoAttendantMenuId, ivrId, ...)


Example1 (company announcement greetings):
DELETE https://sandbox.openrainbow.com/api/rainbow/rvcpprovisioning/v1.0/cloudpbxs/:systemId/greetings

Example2 (auto attendant greetings):
DELETE https://sandbox.openrainbow.com/api/rainbow/rvcpprovisioning/v1.0/cloudpbxs/:systemId/greetings?autoAttendantMenuId=5fd0fbf1bf81ed5c01fe9cdd

path Parameters
systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

query Parameters
autoAttendantMenuId
string

auto-attendant menu identifier

ivrId
string

IVR (i.e. welcome service) identifier

groupId
string

Hunting group identifier

attendant
boolean

Scope is console attendant when set to true

callQueueId
string

Call Queue identifier

userId
string

User identifier

Responses

Response samples

Content type
application/json
{
  • "status": "Greetings successfully cleaned"
}

Get the available greetings

API used to retrieve cloudpbx's greetings that can be set for various announcement purpose.
Configurable greetings are contextualized. That means some predefined scopes can be used to handle these greetings.
A scope is selected by passing an extra information to the API.
The list of supported greetings can be split depending on the scope:

  • The 'announcement' greetings, under the company ownership -- no extra information needed to select this scope, this is the default.
  • The 'attendant' greetings, attached to users with console 'attendant' role -- need to add query parameter 'attendant=true' to select this scope.
  • The 'welcome' service greetings, attached to an IVR -- need to add query parameter 'ivrId=xxx' to select this scope.
  • The 'auto-attendant' greetings, attached to an auto-attendant menu -- need to add query parameter 'autoAttendantMenuId=xxx' to select this scope.
  • The 'hunting-group' greetings, attached to a hunting group -- need to add query parameter 'groupId=xxx' to select this scope.
  • The 'call-queue' greetings, attached to a call queue -- need to add query parameter 'callQueueId=xxx' to select this scope.
  • The 'user' greetings, attached to a user -- need to add query parameter 'userId=xxx' to select this scope.

The list of supported 'announcement' greeting messages are the following:
  • 'officehours': Voice prompt played during as a company pre-announcement. When set at company level, the ones of company's IVR will be overridden
  • 'afterhours': Voice prompt played outside office hours, before the call is released. When set at company level, the ones of company's IVR will be overridden
  • 'music_on_hold': Voice prompt or music played when call is held
  • 'recording_prompt': Voice prompt played to announce the call will be recorded
  • 'callee_busy': Voice prompt played when the destination is busy
  • 'callee_unavailable': Voice prompt played when the destination is unavailable

The list of supported 'attendant' greeting messages are the following:
  • 'attendant_on_hold': Voice prompt or music played when call is held by users with 'attendant' role

The list of supported 'welcome' greeting messages are the following:
  • 'officehours': Voice prompt played during as a company pre-announcement. Set at the given IVR level
  • 'afterhours': Voice prompt played outside office hours, before the call is released. Set at the given IVR level
  • 'custom_announcement_welcome': Voice prompt played for following cases: Custom hours. Set at the given IVR level

The list of supported full 'auto-attendant' greeting messages are the following:
  • 'menu_welcome': Voice prompt played when entering auto attendant menu
  • 'menu_enter_ext': Voice prompt played when entering extension number
  • 'menu_invalid_ext': Voice prompt played when entered extension is invalid
  • 'menu_key_press_0': Voice prompt played for key 0
  • 'menu_key_action_0': Voice prompt played for key 0 destination
  • 'menu_key_press_1': Voice prompt played for key 1
  • 'menu_key_action_1': Voice prompt played for key 1 destination
  • ...
  • 'menu_key_press_9': Voice prompt played for key 9
  • 'menu_key_action_9': Voice prompt played for key 9 destination
  • 'menu_key_press_star': Voice prompt played for star key
  • 'menu_key_action_star': Voice prompt played for star key destination
  • 'menu_timeout': Voice prompt played before exiting auto attendant menu

The list of supported simple 'auto-attendant' greeting messages are the following:
  • 'menu_s_welcome': Voice prompt played when entering auto attendant menu
  • 'menu_s_timeout': Voice prompt played before exiting auto attendant menu

The list of supported 'hunting-group' greeting messages are the following:
  • 'hg_unavailable': Voice prompt played when hunting group members can't be joined

The list of supported 'call-queue' greeting messages are the following:
  • 'waiting_music': Voice prompt played as waiting music for call queue
  • 'cq_unavailable': Voice prompt played when the call queue is unavailable

The list of supported 'user' greeting messages are the following:
  • 'user_busy': Voice prompt played when the destination is busy
  • 'user_unavailable': Voice prompt played when the destination is unavailable


These greetings messages can be customised by uploading an audio file (that then be played by, e.g.: welcome service, auto-attendant menu). See greeting upload.


Example1 (company announcement):
GET https://sandbox.openrainbow.com/api/rainbow/rvcpprovisioning/v1.0/cloudpbxs/:systemId/greetings

Example2 (auto-attendant menu prompts):
GET https://sandbox.openrainbow.com/api/rainbow/rvcpprovisioning/v1.0/cloudpbxs/:systemId/greetings?autoAttendantMenuId=5fd0fbf1bf81ed5c01fe9cdc

Example3 (welcome service):
GET https://sandbox.openrainbow.com/api/rainbow/rvcpprovisioning/v1.0/cloudpbxs/:systemId/greetings?ivrId=5fd0fbf1bf81ed5c01f123aba

Example4 (console attendant announcement):
GET https://sandbox.openrainbow.com/api/rainbow/rvcpprovisioning/v1.0/cloudpbxs/:systemId/greetings?attendant=true

Example5 (hunting group):
GET https://sandbox.openrainbow.com/api/rainbow/rvcpprovisioning/v1.0/cloudpbxs/:systemId/greetings?groupId=5fd0fbf1bf81ed5c01f456cbc

Example5 (call queue):
GET https://sandbox.openrainbow.com/api/rainbow/rvcpprovisioning/v1.0/cloudpbxs/:systemId/greetings?callQueueId=5fd0fbf1bf81ed5c01f456cbb

Example6 (user):
GET https://sandbox.openrainbow.com/api/rainbow/rvcpprovisioning/v1.0/cloudpbxs/:systemId/greetings?userId=5fd0fbf1bf81ed5c01f456cbb

path Parameters
systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

query Parameters
autoAttendantMenuId
string

auto-attendant menu identifier

ivrId
string

IVR (i.e. welcome service) identifier

groupId
string

Hunting group identifier

callQueueId
string

Call Queue identifier

attendant
boolean

Scope is console attendant when set to true

userId
string

User identifier

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Activate the greeting

path Parameters
fileId
required
string

file identifier

systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

Responses

Response samples

Content type
application/json
{
  • "status": "Greeting 5fae91d4a1d2a014af8b2261 / afterhours successfully activated",
  • "data": {
    }
}

restore the default greeting

path Parameters
greetingId
required
string

greeting identifier

systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

Responses

Response samples

Content type
application/json
{
  • "status": "Greeting music_on_hold successfully restored",
  • "data": {
    }
}

Upload a new greeting file

Used to set a new greeting file by uploading an audio file, to be played by, e.g., the welcome service, before recording, or as auto attendant menu selection.
Some remarks about the greeting upload operation:

  • File size is limited to 4 MBytes and duration is limited to 120 seconds
  • The number of files is limited to 5 (per greeting type and per scope)
  • The number of files is limited to 10 for "custom_announcement_welcome"
  • Supported formats are the common audio file formats (wav, mp3, ogg). The list of supported formats can evolve and is linked to installed audio codecs
  • File name extension should reflect the format
  • The uploaded File becomes the active greeting. The previous greeting becomes non active, and can later be reactivated

If the greeting is pushed on NGCP side, the only supported format is the wav format, thus a transcoding operation could be necessary.
This involves the following consequences:
  • The final file will always be the transcoded file. The original file is not kept and can't be retrieved
  • The duration of the file is computed on the transcoded file.
  • The original file name will be suffixed with its new format (.wav)

When the file is successfully uploaded on the Voice platform, an XMPP notification will be sent to the admin who has uploaded the file.


Example1 (company 'music_on_hold' announcement):
PUT https://sandbox.openrainbow.com/api/rainbow/rvcpprovisioning/v1.0/cloudpbxs/:systemId/greetings/music_on_hold?fileName=land_of_my_father.wav
Example2 (auto-attendant menu key '0' action ):
PUT https://sandbox.openrainbow.com/api/rainbow/rvcpprovisioning/v1.0/cloudpbxs/:systemId/greetings/menu_key_action_0?autoAttendantMenuId=5fd0ef79527a3d186149610e&fileName=support_service.wav
Example3 (welcome 'afterhours' announcement):
PUT https://sandbox.openrainbow.com/api/rainbow/rvcpprovisioning/v1.0/cloudpbxs/:systemId/greetings/afterhours?ivrId=5fd0ef79527a3d186149610e&fileName=service_closed.wav
Example4 (console attendant 'music_on_hold' announcement):
PUT https://sandbox.openrainbow.com/api/rainbow/rvcpprovisioning/v1.0/cloudpbxs/:systemId/greetings/attendant_on_hold?fileName=seaside.wav
Example5 (hunting group 'hg_unavailable' announcement):
PUT https://sandbox.openrainbow.com/api/rainbow/rvcpprovisioning/v1.0/cloudpbxs/:systemId/greetings/hg_unavailable?fileName=group_not_opened.wav
Example6 (call queue):
PUT https://sandbox.openrainbow.com/api/rainbow/rvcpprovisioning/v1.0/cloudpbxs/:systemId/greetings/waiting_music?fileName=cqueue_waiting.wav
Example7 (call queue 'cq_unavailable' announcement):
PUT https://sandbox.openrainbow.com/api/rainbow/rvcpprovisioning/v1.0/cloudpbxs/:systemId/greetings/cq_unavailable?fileName=no_answer_agent.wav&description=CQunavailable&callQueueId=640f2bbcfff370c9bc68a496
Example5 (user 'user_unavailable' announcement):
PUT https://sandbox.openrainbow.com/api/rainbow/rvcpprovisioning/v1.0/cloudpbxs/:systemId/greetings/user_unavailable?userId=5fd0ef79527a3d186149610e&fileName=i_am_not_avail.wav

path Parameters
greetingId
required
string

greeting id

systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

Responses

Response samples

Content type
application/json
{
  • "status": "Greeting music_on_hold successfully uploaded",
  • "data": {
    }
}

Update fields of greeting

Modify the greeting settings identified by the given fileId

path Parameters
fileId
required
string

file identifier

systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

Request Body schema: application/json
loopPlay
boolean

Indicates if the greeting should be played in loop, or just once. Only some greetings can be modified: afterhours, callee_busy, user_busy, callee_unavailable, user_unavailable, hg_unavailable, cq_unavailable, custom_announcement_welcome

Responses

Request samples

Content type
application/json
{
  • "loopPlay": true
}

Response samples

Content type
application/json
{
  • "status": "Settings of greeting 5fae91d4a1d2a014af8b2261 / afterhours successfully modified",
  • "data": {
    }
}

Cloudpbx Recordings

Delete the requested recording

path Parameters
recordId
required
string

Identifier of the record (e.g. 569ce8c8f9336c471b98eda1)

systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

Responses

Response samples

Content type
application/json
{
  • "status": "Record id 569ce8c8f9336c471b98eda1 successfully deleted"
}

Get the requested recording

Retrieve the requested recording
It can invoked in two ways:

  • By requesting with 'Accept: application/json' HTTP header: The returned resource will be the record descriptor in JSON format.
  • By requesting with an audio accept mime type. E.g.: 'Accept: audio/x-wav' or 'Accept: audio/mpeg' or 'Accept: audio/*' The returned resource will be the record audio file.

Note that the requested format (wav or mp3) depends on a configuration parameter on the Rainbow voice backend side.
Only company admin can retrieve the recording content. Superadmin can only get the descriptor, not the audio content.


Example: GET https://sandbox.openrainbow.com/api/rainbow/rvcpprovisioning/v1.0/cloudpbxs/5fc2a9c2c6bda124728ae60b/recordings/5fae91d4a1d2a014af8b22611d4a1d2a014af8b2261

path Parameters
recordId
required
string

Identifier of the record (e.g. 569ce8c8f9336c471b98eda1)

systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

Responses

Response samples

Content type
{
  • "data": {
    }
}

Delete a list of recording

path Parameters
systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

query Parameters
recordIds
required
string

List of recording identifier, separated by a comma

Responses

Response samples

Content type
application/json
{
  • "status": "Records successfully deleted"
}

Get the available recordings

Retrieve the cloudpbx's recordings
Please refer to local regulations to check if recording conversations is permitted by law.
Recording can be activated on cloud PBX users by a company admin, but only end customer admin can consult these recordings.
When activating, a recording profile is selected:

  • all: all calls of the given user are recorded
  • external_only: only calls to or from external users of the cloud PBX are recorded
  • internal_only: only calls to or from internal users of the cloud PBX are recorded
  • none: Feature deactivated

The recording profile can also be combined with the announcement profile, set at cloud PBX level. This will controlled when the recording pre announcement will be played.
Note that some combinations of recording profile and announcement profile can bypass the announcement set at cloud PBX level (e.g. 'internal recording only' vs 'external announcement only').



Some additional remarks on recordings:
Fully processed recordings are checked at a maximum time period of one hour.
Recordings are kept in the system for a duration of two months, and then get automatically deleted.
Recording must has a minimum duration of 3 seconds. If smaller, the recording will be automatically deleted.


To retrieve the recordings of a cloud BPX, several filters can be set :

  • by phoneNumberId (of a user or a group)
  • by date interval (fromDate - toDate)
  • by part of the recorded name (group name or part of the user's display name)

Example: GET https://sandbox.openrainbow.com/api/rainbow/rvcpprovisioning/v1.0/cloudpbxs/5fc2a9c2c6bda124728ae60b/recordings?phoneNumberId=5fae91d4a1d2a014af8b2261&fromDate=2020-12-04T09:50:47.000Z
path Parameters
systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

query Parameters
limit
number
Default: 100

Allow to specify the number of recordings to retrieve

offset
number
Default: 0

Allow to specify the position of first recording to retrieve

sortField
string
Default: "date"

Sort recordings list based on the given field

sortOrder
number
Default: -1
Enum: -1 1

Specify order when sorting recordings. Default is descending

phoneNumberId
string

Allows to filter recordings only on the given phoneNumberId

fromDate
string <date-time>

List recordings created after the given date

toDate
string <date-time>

List recordings created before the given date

recordedName
string

List recordings with recorded party name containing the given value

recordedNumber
string

List recordings with recorded party number containing the given value

otherNumber
string

List recordings with other party number containing the given value

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "limit": 2,
  • "offset": 0,
  • "total": 9
}

Get the cloudpbx recording settings

Retrieve cloudpbx's recording settings

path Parameters
systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Set the cloudpbx recording settings

Set the cloudpbx's recording settings

path Parameters
systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

Request Body schema: application/json
announcementProfile
required
string
Enum: "all" "external_only" "internal_only" "none"

Recording announcement profile

Responses

Request samples

Content type
application/json
{
  • "announcementProfile": "all"
}

Response samples

Content type
application/json
{
  • "status": "Recording announcement profile successfully updated"
}

Get recordings (scope can be an entire organization)

Retrieve recordings according filters (Scope is the entire list of companies manageable by LoggedIn user)

Note that this API can be used only by SuperAdmin or Organization Admin

In case of SuperAdmin ; it is needed to set at least one parameter filter, in order to limit scope of the request and don't create a too large query
In case of Organization Admin ; default scope is its whole organization.
For both kind of users (Super or Orga Admin) ; scope can be limited using systemIds, siteIds and companyIds parameters.
These 3 scope parameters are combined using an Union logic. Indeed recording results will be:

  • all recordings inside the "systemIds" list
  • + all recordings of all CloudPBXs defined into the "siteIds" list
  • + all recordings of all CloudPBXs defined into the "companyIds" list

Once scope is defined (using systemIds, siteIds and companyIds parameters) ; other filters can be applied as usual.

Please refer to local regulations to check if recording conversations is permitted by law.
Recording can be activated on cloud PBX users by a company admin, but only end customer admin can consult these recordings.
When activating, a recording profile is selected:
  • all: all calls of the given user are recorded
  • external_only: only calls to or from external users of the cloud PBX are recorded
  • internal_only: only calls to or from internal users of the cloud PBX are recorded
  • none: Feature deactivated

The recording profile can also be combined with the announcement profile, set at cloud PBX level. This will controlled when the recording pre announcement will be played.
Note that some combinations of recording profile and announcement profile can bypass the announcement set at cloud PBX level (e.g. 'internal recording only' vs 'external announcement only').



Some additional remarks on recordings:
Fully processed recordings are checked at a maximum time period of one hour.
Recordings are kept in the system for a duration of two months, and then get automatically deleted.
Recording must has a minimum duration of 3 seconds. If smaller, the recording will be automatically deleted.


To retrieve the recordings, several filters can be set :

  • by systemIds
  • by siteIds
  • by companyIds
  • by phoneNumberId (of a user or a group)
  • by date interval (fromDate - toDate)
  • by part of the recorded name (group name or part of the user's display name)

Example: GET https://sandbox.openrainbow.com/api/rainbow/rvcpprovisioning/v1.0/recordings?systemIds=5e5fa7b5ece5355c97b24734 5e845f07df4794577dfb0e5d&fromDate=2022-12-04T09:50:47.000Z
query Parameters
limit
number
Default: 100

Allow to specify the number of recordings to retrieve

offset
number
Default: 0

Allow to specify the position of first recording to retrieve

sortField
string
Default: "date"

Sort recordings list based on the given field

sortOrder
number
Default: -1
Enum: -1 1

Specify order when sorting recordings. Default is descending

systemIds
string

Allows to define Scope of the request : It is an union with siteIds and companyIds parameters.
For a organization admin, without any of these 3 parameters, scope is its whole organization
systemIds parameter can be a unique system identifier or a list of system identifiers

siteIds
string

Allows to define Scope of the request : It is an union with systemIds and companyIds parameters.
For a organization admin, without any of these 3 parameters, scope is its whole organization
siteIds parameter can be a unique site identifier or a list of site identifiers

companyIds
string

Allows to define Scope of the request : It is an union with systemIds and siteIds parameters.
For a organization admin, without any of these 3 parameters, scope is its whole organization
companyIds parameter can be a unique company identifier or a list of company identifiers

phoneNumberId
string

Allows to filter recordings only on the given phoneNumberId

fromDate
string <date-time>

List recordings created after the given date

toDate
string <date-time>

List recordings created before the given date

recordedName
string

List recordings with recorded party name containing the given value

recordedNumber
string

List recordings with recorded party number containing the given value

otherNumber
string

List recordings with other party number containing the given value

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "limit": 2,
  • "offset": 0,
  • "total": 9
}

Activate or deactivate the recording for the subscriber

Activate or deactivate subscriber's recordings

path Parameters
phoneNumberId
required
string

PhoneNumber unique identifier of the Cloud PBX Subscriber to update recording configuration

systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

Request Body schema: application/json
recordingProfile
required
string
Enum: "internal_only" "external_only" "all" "none"

Selection of the recording profile

Responses

Request samples

Content type
application/json
{
  • "recordingProfile": "internal_only"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Cloudpbx Welcome

Delete a welcome or welcome service

This API allows to delete a Cloud PBX Welcome (DEPRECATED) or Welcome Service.
Example: DELETE https://sandbox.openrainbow.com/api/rainbow/rvcpprovisioning/v1.0/cloudpbxs/5c6aeb5b7817b9050c517e20/ivrs/604

path Parameters
ivrId
required
string

Unique identifier of the ivr (welcome or welcome service) to delete

systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

header Parameters
accept
required
string

application/json

Responses

Response samples

Content type
application/json
{
  • "status": "Cloud PBX Welcome or Welcome Service successfully deleted",
  • "data": [ ]
}

Update a Welcome or Welcome Service

This API allows to update a Cloud PBX Welcome (DEPRECATED) or Welcome Service.
Example: POST https://sandbox.openrainbow.com/api/rainbow/rvcpprovisioning/v1.0/cloudpbxs/5c6aeb5b7817b9050c517e20/ivrs/5c6aeb5b7817b9050c517e21

path Parameters
ivrId
required
string

Unique identifier of the CloudPBX ivr (Welcome or welcome service) to update

systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

Request Body schema: application/json
object
externalNumberId
string

phone number id of the ddi you want to link to the welcome service, value to null to desassociate

name
string

Name of the welcome or welcome service. This value will appear on the deskphone or Rainbow clients of the user/group behind the welcome service to know where the call came from.

welcomeId
string

Change of welcome for a welcome service

Responses

Request samples

Content type
application/json
{
  • "closedHoursOverflow": {
    },
  • "externalNumberId": "string",
  • "name": "string",
  • "welcomeId": "string"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Get a Welcome of a specific system Deprecated

Will be replace by {get} /api/rainbow/admin/v1.0/companies/:companyId/calendars/:calendarId Get a company calendar with backend 203

path Parameters
ivrId
required
string

Unique identifier of the Cloud PBX welcome to get

systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

header Parameters
accept
required
string

application/json

content-type
required
string

application/json

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Get a Welcome office hours Deprecated

Will be replace by {get} /api/rainbow/admin/v1.0/companies/:companyId/calendars/:calendarId Get a company calendar with backend 203

path Parameters
ivrId
required
string

Unique identifier of a CloudPBX Welcome

systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

header Parameters
accept
required
string

application/json

content-type
required
string

application/json

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Update Welcome office hours Deprecated

Will be replace by {put} /api/rainbow/admin/v1.0/companies/:companyId/calendars/:calendarId Update a company calendar with backend 203

path Parameters
ivrId
required
string

Unique identifier of the CloudPBX Welcome to update

systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

Responses

Response samples

Content type
{
  • "data": {
    }
}

Get all Welcome services for a specific system

This API allows to get data of a all Welcome services of a specific system

path Parameters
systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

query Parameters
name
string

Filter welcome services whose name contain the given filter

externalNumber
string

Filter welcome services whose external number contain the given filter

limit
string

Allow to specify the number of Welcome Services to retrieve (in that case, offset url query parameter must be also set). Result will be paginated

offset
string

Allow to specify the position of first Welcome Service to retrieve (in that case, limit url query parameter must be also set). Result will be paginated

header Parameters
accept
required
string

application/json

content-type
required
string

application/json

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Create a Welcome Service

path Parameters
systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

Request Body schema: application/json
object
companyCalendarId
string

Company Calendar unique identifier, the office hours will follow on that welcome service

externalNumberId
string

DDI phone number unique identifier to associate with the CloudPBX Welcome service

name
required
string

Name of your welcome service. This value will appear on the deskphone or Rainbow clients of the user/group behind the welcome service to know from where the call came from.

required
object
welcomeId
string

DEPRECATED Welcome unique identifier, the office hours and prompts will follow on that welcome service, will be replace by companyCalendarId

Responses

Request samples

Content type
application/json
{
  • "closedHoursOverflow": {
    },
  • "companyCalendarId": "string",
  • "externalNumberId": "string",
  • "name": "string",
  • "openHoursOverflow": {
    },
  • "welcomeId": "string"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Get all Welcomes of a specific system Deprecated

Will be replace by {get} /api/rainbow/admin/v1.0/companies/:companyId/calendars/:calendarId Get all company calendars with backend 203

path Parameters
systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

query Parameters
name
string

Filter welcome whose name contain the given filter

limit
string

Allow to specify the number of Welcomes to retrieve (in that case, offset url query parameter must be also set). Result will be paginated

offset
string

Allow to specify the position of first Welcome to retrieve (in that case, limit url query parameter must be also set). Result will be paginated

header Parameters
accept
required
string

application/json

content-type
required
string

application/json

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Create a Welcome Deprecated

Will be replace by {post} /api/rainbow/admin/v1.0/companies/:companyId/calendars Create a company calendar with backend 203

path Parameters
systemId
required
string

CloudPBX unique identifier (e.g. 569ce8c8f9336c471b98eda1)

Request Body schema: application/json
name
required
string

Name of your welcome.

Responses

Request samples

Content type
application/json
{
  • "name": "string"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

External Sip Trunks

Retrieve an external SIP trunk using its unique identifier (available also for Hybrid Trunk)

This API allows to retrieve an external SIP trunk using its identifier (available also for Hybrid Trunk)

path Parameters
externalTrunkId
required
string

External trunk unique identifier (e.g. 56c5c19f94141765119f896c)

header Parameters
accept
required
string

application/json

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Retrieve a list of external SIP trunks (including Hybrid Trunks)


This API allows superadmin, bp_admin, company_admin or organisation_admin to retrieve a list of external SIP trunks (including Hybrid Trunks)
bp_admin and organisation_admin can list only external SIP trunks they are allowed to use.
company_admin obtains only a sum up of the Trunk he is using on its own CloudPBX
Result is paginated (with optional parameters like limit and offset in order to manage this pagination). No choice on the order of the results, the order is based on the external SIP trunk name exclusively
Example: GET https://sandbox.openrainbow.com/api/rainbow/rvcpprovisioning/v1.0/external-trunks?limit=10&offset=0&bpId=5d7f7f46b4521d9a924c714c

query Parameters
limit
string

Allow to specify the number of external SIP trunks to retrieve

offset
string

Allow to specify the position of first external SIP trunk to retrieve

rvcpInstanceId
string

Allows to filter external SIP trunks by RVCP instance identifier
This filter allows to load all external SIP trunks in relation with an RVCP Instance.
This filter is only usable by superadmin.

status
string
Enum: "new" "active"

Allows to filter external SIP trunks by status
This filter allows to load all external SIP trunks according to their status

trunkType
string
Default: "bp_trunk"
Enum: "bp_trunk" "rb_trunk" "hybrid_trunk"

Allows to filter external SIP trunks by their type
This filter is only usable by superadmin or bp_admin.
Note that rb_trunk type is Not used for the moment.
Note that if Not provided, filter value bp_trunk will be applied.
Note that if SuperAdmin request hybrid_trunk ; then Query parameter bpId is mandatory

bpId
string

Allows to request only external SIP trunks available for a given BP
This filter allows to load all external SIP trunks in relation with a given BP.
This filter is only useful for superadmin, VAD bp_admin or Organisation BP Admin (otherwise, request is automatically limited to BP scope)

targetedCompanyId
string

Allows to request all external trunks available for the company defined by targetedCompanyId
Using this parameters ; it allows to obtain all "bp_trunks" (Carrier connect) and "hybrid_trunks" (if created) available for a company

header Parameters
accept
required
string

application/json

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "limit": 10,
  • "offset": 0,
  • "total": 2
}