Download OpenAPI specification:Download
This guide describes list of API services that are provided by OT Rainbow management portal system. Services are used to manage OT Rainbow system entities
REST interface is used for sending/receiving OT rainbow API messages. HTTP requests GET, DELETE, POST, UPDATE are used. Standard HTTP responses are used to provide requested information or error status. There is no session notion in OT Rainbow system, so requests could be issued according stateless model, without transport conservation between them. Additional data could be provided in message body. 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”.
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.
For accessing the API a valid JWT token or a valid OAuth access token must be passed in all the queries in the 'Authorization' header.
Security Scheme Type | API Key |
---|---|
Header parameter name: | Authorization |
This API can be used to delete avatar image for a given companyId.
Only a superadmin is allowed to handle avatars for 'Default' and 'Terminated' companies.
companyId required | string Company for which list of administrators is requested |
accept required | string application/json |
{- "status": "Avatar successfully deleted for company 56c5c19f94141765119f896c",
- "data": [ ]
}
This API can be used to upload avatar image for a given companyId
Rules:
lastAvatarUpdateDate
of the company is updated to the current date. companyId required | string Company for which list of administrators is requested |
{- "status": "Avatar successfully set for company 56c5c19f94141765119f896c",
- "data": [ ]
}
This API can be used to retrieve company's avatar (logo).
Example: GET https://openrainbow.com/api/avatar/56c5c19f94141765119f896c?size=128
Clients can request avatars in a given size by specifying size query string parameter.
Avatar file can be resized from 1px to its original resolution, with a maximum of 2048px:
companyId required | string Company for which list of administrators is requested |
size required | number Default: 80 Specify avatar size in pixels (square size x size) |
{- "Content-Type": "image/jpeg",
- "Date": "2019-08-24T14:15:22Z",
- "Dims-cached": "string",
- "Last-Modified": "2019-08-24T14:15:22Z",
- "Content": "string"
}
This API can be used to delete avatar image for a given companyId.
Only a superadmin is allowed to handle avatars for 'Default' and 'Terminated' companies.
companyId required | string Company for which list of administrators is requested |
accept required | string application/json |
{- "status": "Banner successfully deleted for company 56c5c19f94141765119f896c",
- "data": [ ]
}
This API can be used to upload banner image for a given companyId
Rules:
lastBannerUpdateDate
of the company is updated to the current date. companyId required | string Company for which list of administrators is requested |
{- "status": "Banner successfully set for company 56c5c19f94141765119f896c",
- "data": [ ]
}
This API can be used to retrieve company's banner in addition to the logo retrieved via /api/avatar/{companyId}.
Example: GET https://openrainbow.com/api/banner/56c5c19f94141765119f896c?size=128
Clients can request banners in a given size by specifying size query string parameter.
Banner file can be resized from 1px to its original resolution:
companyId required | string Company for which list of administrators is requested |
size required | number Default: 80 Specify avatar size in pixels (square size x size) |
{- "Content-Type": "image/jpeg",
- "Date": "2019-08-24T14:15:22Z",
- "Dims-cached": "string",
- "Last-Modified": "2019-08-24T14:15:22Z",
- "Content": "string"
}
This API is still working, but customData management can now be done directly at company creation (using API POST /api/rainbow/admin/v1.0/companies or with a company update (using API PUT /api/rainbow/admin/v1.0/companies/:companyId.
customData
can only be updated:
superadmin
(all companies),bp_admin
or bp_finance
for the companies he manages (except his company if its adminCanSetCustomData
setting is not set to true),organization_admin
for the companies he manages,company_admin
for his own company if its adminCanSetCustomData
setting is set to true (setting that can only be set by a superadmin, his bp_admin, bp_finance or organization_admin).companyId required | string Company unique identifier (like 569ce8c8f9336c471b98eda1) |
customData required | object |
{- "customData": { }
}
{- "data": {
- "id": "569ce8c8f9336c471b98eda1",
- "customData": {
- "key1ANumber": 123,
- "key2AString": "a string",
- "key3ABoolean": true,
- "key4AnObject": {
- "myKey": "My value"
}
}
}
}
This API allows administrator to retrieve sites linked to a given company
superadmin
and support
get sites linked to all companies existing in Rainbow.
bp_admin
or bp_finance
only get sites linked to End Customer companies for which
their bp_admin's company is the BP company.
organization_admin
only get sites linked to companies under their organization.
company_admin
only get sites linked to their company.
site_admin
is not allowed to use this API.
Example: GET https://openrainbow.com/api/rainbow/admin/v1.0/companies/5749aa51245015fe0d36e968/sites?format=full
companyId required | string Company unique identifier (like 569ce8c8f9336c471b98eda1) |
format | string Default: "small" Enum: "small" "medium" "full" Allows to retrieve more or less site details in response.
|
limit | number Default: 100 Allow to specify the number of companies to retrieve. |
offset | number Allow to specify the position of first site to retrieve (first site if not specified). Warning: if offset > total, no results are returned. |
sortField | string Default: "name" Sort site list based on the given field. |
sortOrder | number Default: 1 Enum: -1 1 Specify order when sorting site list. |
accept required | string application/json |
{- "data": [
- {
- "name": "ALE1",
- "id": "569ce8c8f9336c471b98eda1"
}, - {
- "name": "ALE2",
- "id": "569ce938f9336c471b98eda2"
}
], - "total": 2,
- "limit": 100,
- "offset": 0
}
This API allows administrators to delete a company.
Users with superadmin
role can delete any company (except default and terminated companies).
Users with bp_admin
or bp_finance
role can only delete companies of their End Customers
(i.e. all the companies having bpId equal to their companyId).
Users with admin
role can delete companies they can manage. That is to say:
organization_admin
can delete companies he manages (i.e. companies having
organisationId equal to his organisationId)company_admin
can only delete his companyA company can be deleted only if :
If company has default subscriptions and/or subscriptions with status equal terminated, company won't be deleted but only disabled (status and name of company changed to terminated) Note that following data linked to the company will be deleted too:
companyId required | string Company unique identifier (like 569ce8c8f9336c471b98eda1) |
accept required | string application/json |
{- "status": "Company 5901d451faae4928ef13bb78 successfully disabled",
- "data": {
- "latin_name": "ter_1495051516804_test - acme central team",
- "name": "ter_1495051516804_test - ACME central team",
- "bpHasRightToConnect": false,
- "lastBannerUpdateDate": null,
- "lastAvatarUpdateDate": null,
- "creationDate": "2017-04-27T11:21:53.003Z",
- "statusUpdatedDate": "2017-05-17T20:05:16.947Z",
- "subscriptions": [
- {
- "profileName": "Essential",
- "profileId": "58ede0fd48ea010fe51810b8",
- "offerName": "Essential",
- "offerId": "58ede0fd48ea010fe51810b9",
- "_id": "5901d451faae4928ef13bb79",
- "creationDate": "2017-04-27T11:21:53.566Z",
- "status": "active",
- "isDefault": true
}, - {
- "profileName": "Business",
- "profileId": "58fdb1c322315ea8d106fb2d",
- "offerName": "Business",
- "maxNumberUsers": 50,
- "offerId": "58fdb1c622315ea8d106fb31",
- "_id": "591581c4f018ee587daaa898",
- "creationDate": "2017-05-12T09:35:00.926Z",
- "status": "terminated",
- "isDefault": false
}
], - "settings": {
- "iceServers": [ ]
}, - "visiblityRequests": [ ],
- "userSelfRegisterAllowedDomains": [ ],
- "userSelfRegisterEnabled": true,
- "forceHandshake": false,
- "visibleBy": [ ],
- "visibility": "private",
- "status": "terminated",
- "bpId": null,
- "isBP": false,
- "organisationId": "590892c922315ea8d106fb39",
- "offerType": "freemium",
- "id": "5901d451faae4928ef13bb78"
}
}
Users with 'superadmin', 'support' or 'business_admin' role can retrieve any company.
Users with admin role (and not having superadmin nor support role) can only retrieve their own company
and companies they manage (case of organization_admin). They also have right to retrieve their BP company if they have one.
Users with bp_admin of bp_finance role (and not having superadmin nor support role) can only retrieve their own company
and companies they manage (their EC companies). They also have right to retrieve their BP company if they have one.
In the case of bp_admin or bp_finance of BP VAD companies, they can also retrieve EC companies being linked to their BP IR companies.
If user request his own company or a company he manages (superadmin, support, organisation admin),
numberUsers
field is returned with the number of Rainbow users being in this company.
Example: GET https://openrainbow.com/api/rainbow/admin/v1.0/companies/569d0ef3ef7816921f7e94fa
companyId required | string Company unique identifier (like 569ce8c8f9336c471b98eda1) |
format | string Default: "small" Enum: "small" "medium" "full" Allows to retrieve more or less company details in response.
|
selectedThemeObj | boolean Allows to return selectedTheme attribute as an object:
|
accept required | string application/json |
{- "data": {
- "id": "569ce8c8f9336c471b98eda1",
- "creationDate": "2016-01-18T13:29:44.498Z",
- "statusUpdatedDate": "2016-01-18T13:29:44.497Z",
- "name": "AL-ENTERPRISE",
- "country": "FRA",
- "status": "active",
- "visibility": "private",
- "visibleBy": [
- "56fabb217d8d3ffa3d0223f8",
- "56d6f00441255dd54b5b61ae"
], - "adminEmail": "admin@company.com",
- "supportEmail": "support@company.com",
- "userSelfRegisterEnabled": true,
- "userSelfRegisterAllowedDomains": [
- "@alcatel-lucent.com",
- "@al-enterprise.com",
- "@al-enterprise.fr",
- "@al-enterprise.de"
], - "slogan": "The slogan of my company",
- "description": "A free string that describes my company",
- "size": "1001-5000 employees",
- "organisationId": "57cd58edd341df5812bbcb71",
- "customData": {
- "key1ANumber": 123,
- "key2AString": "a string",
- "key3ABoolean": true,
- "key4AnObject": {
- "myKey": "My value"
}
}, - "bpId": null,
- "offerType": "premium",
- "numberUsers": 3256,
- "isBP": true,
- "bpHasRightToSell": true,
- "bpHasRightToConnect": true,
- "dataLocation": {
- "name": "Europe",
- "location": "France",
- "country": "FRA"
}, - "alertNotificationReception": "enabled",
- "alertNotificationSending": "enabled",
- "fileSharingCustomisation": "enabled",
- "userTitleNameCustomisation": "enabled",
- "softphoneOnlyCustomisation": "disabled",
- "useRoomCustomisation": "enabled",
- "phoneMeetingCustomisation": "enabled",
- "useChannelCustomisation": "enabled",
- "useWebRTCVideoCustomisation": "enabled",
- "useWebRTCAudioCustomisation": "enabled",
- "instantMessagesCustomisation": "enabled",
- "userProfileCustomisation": "enabled",
- "fileStorageCustomisation": "enabled",
- "overridePresenceCustomisation": "enabled",
- "changeTelephonyCustomisation": "enabled",
- "changeSettingsCustomisation": "enabled",
- "recordingConversationCustomisation": "enabled",
- "useGifCustomisation": "enabled",
- "useDialOutCustomisation": "enabled",
- "fileCopyCustomisation": "enabled",
- "fileTransferCustomisation": "enabled",
- "forbidFileOwnerChangeCustomisation": "enabled",
- "defaultLicenseGroup": "Enterprise",
- "defaultOptionsGroups": [
- "Alert",
- "Dial-in per use"
], - "selectedTheme": {
- "light": null,
- "dark": "5ea304e4359c0e6815fc8b57",
- "isLockedByBp": true
}, - "selectedThemeCustomers": {
- "light": "60104754c8fada2ad4be3e48",
- "dark": "5ea304e4359c0e6815fc8b57",
- "locked": true
}
}
}
Users with superadmin role can update any company.
Users with admin role (and not having superadmin role) can only update their own company.
Default and Terminated companies can't be renamed, and their name can't be use to rename another company
Sooner or later it will be unnecessary to manage each customization parameter individually. It will be necessary to create and/or apply customization templates.</br>
<a href="admin/#api-customisation_template">See /admin/v1.0/customisations/templates</a>).
companyId required | string Company unique identifier (like 569ce8c8f9336c471b98eda1) |
adminAllowedUpdateSubscriptionsOps | string Enum: "all" "increase_only" In the case the company is linked to a Business Partner company and
|
adminCanSetCustomData | boolean Whether or not administrators can set
|
adminEmail | string [ 3 .. 255 ] characters /^[a-zA-Z0-9_\+-]+(\.[a-zA-Z0-9_\+-]+)*@[a-zA... Company contact person email
|
adminHasRightToUpdateSubscriptions | boolean In the case the company is linked to a Business Partner company, indicates if the
|
alertNotificationReception | string Default: "disabled" Enum: "enabled" "disabled" Activate/Deactivate the capability for a user to receive alert notification.
|
alertNotificationSending | string Default: "disabled" Enum: "enabled" "disabled" Activate/Deactivate the capability for a user to send alert notification.
|
allowCloudPbxRecording | boolean Default: "false"
|
allowDeviceFirmwareSelection | boolean Default: "false" Superadmin allows admins of the company to select a given firmware for its cloudpbx devices. |
allowPhoneNumbersVisibility | boolean Default: "false" Indicates if Phone numbers should be visible or not when generating Voice CDR files. Applies only on BP companies. |
allowUsersSelectPublicTheme | boolean Default: "true" Allow users of this company to select a public theme. |
allowUsersSelectTheme | boolean Default: "true" Allow users of this company to select a theme among the ones available (owned or visible by the company). |
avatarShape | string Enum: "square" "circle" Company's avatar customization |
billingModel | string Enum: "monthly" "prepaid_1y" "prepaid_3y" "prepaid_5y" Billing model that can be subscribed for this company. |
bpApplicantNumber | string [ 0 .. 255 ] characters Reference of the Business Partner in ALE Finance tools (SAP)
|
bpBusinessModel | string Enum: "referral" "resell" Indicates BP business model
|
bpBusinessType | Array of strings Items Enum: "voice_by_partner" "voice_by_ale" "conference" "default" Business type(s) that can be sold by a BP. |
bpCRDid | string [ 0 .. 255 ] characters Reference of the Business Partner in CDR
|
bpHasRightToConnect | boolean When True [Default], the BP can connect CPE equipment of managed companies. So when False, the "equipment" tab should be removed from the admin GUI
|
bpHasRightToSell | boolean Indicates if the Business has the right to sell
|
bpId | string Link the company to the corresponding Business partner company.
|
bpIsContractAccepted | boolean Default: "false" Indicates if the Business has accepted the contract and can sell Rainbow offers
|
bpType | string Enum: "IR" "VAD" "DR" Indicates BP Company type
|
catalogId | string Id of the catalog of Rainbow offers to which the company is linked. The catalog corresponds to the list of offers the company can subscribe.
|
city | string [ 0 .. 255 ] characters Company street |
cloudPbxRecordingInboundOnly | boolean Default: "true" When CloudPbx recording is set, both inbound and outbound calls will be recorded for the selected users. If cloudPbxRecordingInboundOnly is set to true, only inbound calls will be recorded |
companyCallNumber | string If isCentrex = true, this is the company access number [multi-company call + company Area, ex: 8 210, 8 211] |
companyContactId | string User Id of a Rainbow user which is the contact for this company |
country | string 3 characters Default: "FRA" Company country (ISO 3166-1 alpha3 format) The list of allowed countries can be obtained using the API GET /api/rainbow/enduser/v1.0/countries The ⚠ Warning: the location of the company's data can't be changed after the company creation. The Once the company is created, the location where the data are stored is indicated in the field If no |
currency | string 3 characters Enum: "USD" "EUR" "CNY" Company currency, for payment of premium offers (ISO 4217 format)
|
customData | object |
ddiReadOnly | boolean Indicates if admin of IR company is allowed to create or delete a DDI. Used only on IR companies.
|
defaultLicenseGroup | string Group of license to assign to user when finalizing his account. Should be one of offers' groupName (e.g. Enterprise, Business ...) |
defaultOptionsGroups | Array of strings List of options to assign to user when finalizing his account. Should be one of offers' groupName (e.g. Alert ...) |
description | string [ 0 .. 2000 ] characters A free string that describes the company (2000 char length) |
disableCCareAdminAccess | boolean When True, disables the access to the customer care logs for admins of this company.
|
disableCCareAdminAccessCustomers | boolean When True, disables the access to the customer care logs for admins of all the customers company.
|
disableCCareAdminAccessResellers | boolean When True, disables the access to the customer care logs for admins of all the BP IRs companies linked to the BP VAD and their customers company.
|
economicActivityClassification | string Enum: "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N" "O" "P" "Q" "R" "S" "T" "U"
|
externalReference | string [ 0 .. 64 ] characters Free field that BP can use to link their Indirect Resellers / End Customers to their IS/IT tools
|
externalReference2 | string [ 0 .. 64 ] characters Free field that BP can use to link their Indirect Resellers / End Customers to their IS/IT tools
|
giphyEnabled | boolean Whether or not giphy feature is enabled for users belonging to this company (possibility to use animated gifs in conversations)
|
isBP | boolean Indicates if the company is a Business partner company
|
isCentrex | boolean Indicates if the company is one tenant of a multi-tenant call server (OXE - OTEC-S or third_party) (default: false) |
mobilePermanentConnectionMode | boolean Default: "false" deactivate push mode for mobile devices. When we can't rely on Internet and Google FCM services to wake-up the app or notify the app, we can fall back to a direct XMPP connection. For customers using Samsung devices with Google Play services, we must have an option on admin side to set this permanent connection mode, so that mobile apps can rely on this parameter. This option will be applied for the whole company. |
name required | string [ 1 .. 255 ] characters Company name |
offerType | string Default: "freemium" Enum: "freemium" "premium" Company offer type. |
postalCode | string [ 0 .. 64 ] characters Company postal code |
salesforceAccountId | string [ 0 .. 64 ] characters Curstomer's Salesforce reference.
|
selectedDeviceFirmware | string Default: "released" Enum: "released" "latest" Cloudpbx default device firmware
|
object | |
object | |
sendPrepaidSubscriptionsNotification | boolean Indicates if company_admin should receive email notification about prepaid subscriptions expiring soon. Used only on end customer companies |
size | string Default: "self-employed" Enum: "self-employed" "1-10 employees" "11-50 employees" "51-200 employees" "201-500 employees" "501-1000 employees" "1001-5000 employees" "5001-10,000 employees" "10,001+ employees" An overview of the number of employees |
slogan | string [ 0 .. 255 ] characters A free string corresponding to the slogan of the company |
state | string Enum: "null" "AA" "AE" "AP" "AK" "AL" "AR" "AZ" "CA" "CO" "CT" "DC" "DE" "FL" "GA" "GU" "HI" "IA" "ID" "IL" "IN" "KS" "KY" "LA" "MA" "MD" "ME" "MI" "MN" "MO" "MS" "MT" "NC" "ND" "NE" "NH" "NJ" "NM" "NV" "NY" "OH" "OK" "OR" "PA" "PR" "RI" "SC" "SD" "TN" "TX" "UT" "VA" "VI" "VT" "WA" "WI" "WV" "WY" "AB" "BC" "MB" "NB" "NL" "NS" "NT" "NU" "ON" "PE" "QC" "SK" "YT" When country is 'USA' or 'CAN', a state must be defined. Else it is not managed. The list of allowed states can be obtained using the API GET /api/rainbow/enduser/v1.0/countries for the associated countries.
|
status | string Enum: "initializing" "active" "alerting" "hold" "terminated" Company status.
|
street | string [ 0 .. 255 ] characters Company street |
superadminComment | string [ 0 .. 256 ] characters Free field that only |
supportEmail | string [ 3 .. 255 ] characters /^[a-zA-Z0-9_\+-]+(\.[a-zA-Z0-9_\+-]+)*@[a-zA... Company support email
|
supportUrlFAQ | string [ 0 .. 2000 ] characters Company support url |
timezone | string User timezone name
|
useDialOutCustomisation | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the capability for a user to use dial out in phone meetings.
|
userSelfRegisterAllowedDomains | Array of strings Allow users with email domain matching one of the values of this array to join the company by self-register process (if userSelfRegisterEnabled is true) |
userSelfRegisterEnabled | boolean Default: "true" Allow users with email domain matching 'userSelfRegisterAllowedDomains' to join the company by self-register process |
visibility | string Default: "private" Enum: "public" "private" "organization" "closed" "isolated" "hotspot" Company visibility (define if users being in this company can be searched by users being in other companies and if the user can search users being in other companies).
External users mean public user not being in user's company nor user's organisation nor a company visible by user's company. Note related to organisation visibility:
|
visibleBy | Array of strings If visibility is private or organisation, list of company |
website | string [ 0 .. 2000 ] characters Company website url |
{- "adminAllowedUpdateSubscriptionsOps": "all",
- "adminCanSetCustomData": true,
- "adminEmail": "string",
- "adminHasRightToUpdateSubscriptions": true,
- "alertNotificationReception": "disabled",
- "alertNotificationSending": "disabled",
- "allowCloudPbxRecording": "false",
- "allowDeviceFirmwareSelection": "false",
- "allowPhoneNumbersVisibility": "false",
- "allowUsersSelectPublicTheme": "true",
- "allowUsersSelectTheme": "true",
- "avatarShape": "square",
- "billingModel": "monthly",
- "bpApplicantNumber": "string",
- "bpBusinessModel": "referral",
- "bpBusinessType": [
- "voice_by_partner"
], - "bpCRDid": "string",
- "bpHasRightToConnect": true,
- "bpHasRightToSell": true,
- "bpId": "string",
- "bpIsContractAccepted": "false",
- "bpType": "IR",
- "catalogId": "string",
- "city": "string",
- "cloudPbxRecordingInboundOnly": "true",
- "companyCallNumber": "string",
- "companyContactId": "string",
- "country": "FRA",
- "currency": "USD",
- "customData": { },
- "ddiReadOnly": true,
- "defaultLicenseGroup": "string",
- "defaultOptionsGroups": [
- "string"
], - "description": "string",
- "disableCCareAdminAccess": true,
- "disableCCareAdminAccessCustomers": true,
- "disableCCareAdminAccessResellers": true,
- "economicActivityClassification": "A",
- "externalReference": "string",
- "externalReference2": "string",
- "giphyEnabled": true,
- "isBP": true,
- "isCentrex": true,
- "mobilePermanentConnectionMode": "false",
- "name": "string",
- "offerType": "freemium",
- "postalCode": "string",
- "salesforceAccountId": "string",
- "selectedDeviceFirmware": "released",
- "selectedTheme": {
- "dark": "string",
- "light": "string"
}, - "selectedThemeCustomers": {
- "dark": "string",
- "force": true,
- "light": "string",
- "locked": true
}, - "sendPrepaidSubscriptionsNotification": true,
- "size": "self-employed",
- "slogan": "string",
- "state": "null",
- "status": "initializing",
- "street": "string",
- "superadminComment": "string",
- "supportEmail": "string",
- "supportUrlFAQ": "string",
- "timezone": "string",
- "useDialOutCustomisation": "enabled",
- "userSelfRegisterAllowedDomains": [
- "string"
], - "userSelfRegisterEnabled": "true",
- "visibility": "private",
- "visibleBy": [
- "string"
], - "website": "string"
}
{- "data": {
- "id": "57f3b02f551928af263d6f0a",
- "creationDate": "2017-02-10T13:29:44.498Z",
- "statusUpdatedDate": "2017-02-10T13:29:44.497Z",
- "name": "A Business Partner",
- "country": "FRA",
- "status": "active",
- "visibility": "public",
- "visibleBy": [ ],
- "adminEmail": "admin@bp.fr",
- "supportEmail": "support@bp.fr",
- "companyContactId": "5899d3dfb567f2e8104bfbe5",
- "userSelfRegisterEnabled": false,
- "userSelfRegisterAllowedDomains": [ ],
- "description": "Description of the Business Partner",
- "size": "51-200 employees",
- "giphyEnabled": false,
- "organisationId": null,
- "catalogId": "5979f63bae6056aadd1a8f17",
- "bpId": null,
- "isBP": true,
- "bpType": "IR",
- "bpBusinessModel": "resell",
- "bpApplicantNumber": "The applicant number of my BP",
- "bpCRDid": "The CRD id of my BP",
- "bpHasRightToSell": true,
- "bpHasRightToConnect": true,
- "bpIsContractAccepted": true,
- "bpContractAcceptationInfo": {
- "acceptationDate": "2016-11-18T16:12:12.153Z",
- "bpAdminId": "5703c52929778f618d5a4058",
- "bpAdminLoginEmail": "admin@bp.fr"
}, - "bpBusinessType": [
- "default",
- "conference",
- "voice_by_partner"
], - "offerType": "premium",
- "avatarShape": "square",
- "office365ScopesGranted": [ ],
- "allowUsersSelectTheme": true,
- "allowUsersSelectPublicTheme": true,
- "mobilePermanentConnectionMode": false,
- "customData": {
- "key1ANumber": 123,
- "key2AString": "a string",
- "key3ABoolean": true,
- "key4AnObject": {
- "myKey": "My value"
}
}, - "selectedTheme": {
- "light": null,
- "dark": "5ea304e4359c0e6815fc8b57"
}, - "selectedThemeCustomers": {
- "light": "60104754c8fada2ad4be3e48",
- "dark": "5ea304e4359c0e6815fc8b57",
- "locked": true
}
}
}
This API allows administrator to retrieve companies they can administrate.
Users with 'superadmin', 'support' or 'business_admin' role can retrieve all companies.
Users with admin role (and not having superadmin nor support role) can only retrieve their own company and companies they can manage, i.e.:
format | string Default: "small" Enum: "small" "medium" "full" Allows to retrieve more or less company details in response.
|
sortField | string Default: "name" Sort items list based on the given field |
bpId | string Allows to filter companies list on bpId field.
|
catalogId | string Allows to filter companies list on catalogId field.
|
offerId | string Allows to filter companies list on companies having subscribed to the provided offerId. |
offerCanBeSold | boolean Allows to filter companies list on companies having subscribed to offers with canBeSold=true.
|
externalReference | string Allows to filter companies list on externalReference field.
|
externalReference2 | string Allows to filter companies list on externalReference2 field.
|
salesforceAccountId | string Allows to filter companies list on salesforceAccountId field.
|
selectedAppCustomisationTemplate | string Allows to filter companies list on application customisation template applied for the company.
|
selectedThemeObj | boolean Allows to return selectedTheme attribute as an object:
|
offerGroupName | string Allows to filter companies list on companies having subscribed to offers with provided groupName(s).
|
bpBusinessType | string Allows to filter companies list on bpBusinessType.
|
limit | number Default: 100 Value: 0 Allow to specify the number of items to retrieve. |
offset | number Default: 0 Allow to specify the position of first item to retrieve (first item if not specified). Warning: if offset > total, no results are returned. |
sortOrder | number Default: 1 Enum: -1 1 Specify order when sorting items list. |
name | string Allows to filter companies list on the given keyword(s) on field name.
|
status | string Enum: "initializing" "active" "alerting" "hold" "terminated" Allows to filter companies list on the provided status(es) |
visibility | string Enum: "public" "private" "organization" "closed" "isolated" Allows to filter companies list on the provided visibility(ies) |
organisationId | string Allows to filter companies list on the organisationIds provided in this option. This filter can only be used if user has role(s) |
isBP | boolean Allows to filter companies list on isBP field:
This filter can only be used if user has role(s) |
hasBP | boolean Allows to filter companies list on companies being linked or not to a BP:
This filter can only be used if user has role(s) Users with role |
bpType | string Allows to filter companies list on bpType field. This filter allow to get all the Business Partner companies from a given bpType. Only users with role |
accept required | string application/json |
{- "data": [
- {
- "name": "ALE1",
- "id": "569ce8c8f9336c471b98eda1"
}, - {
- "name": "ALE2",
- "id": "569ce938f9336c471b98eda2"
}
], - "total": 2,
- "limit": 100,
- "offset": 0
}
Only superadmin, BP admin, BP finance and organisation admin can create companies with this API.
Companies created by a bp_admin
or a bp_finance
(without organisation admin role) are automatically attached
to his BP company (bpId set to BP company). They are created with the status initializing
.
Companies created by a bp_admin
or a bp_finance
having also organisation admin role can be either be created
in their organisation (default) or under a BP they manage in their organization (if they provide a bpId).
to his BP company (bpId set to BP company). They are created with the status initializing
.
bpType
equal to VAD
, the field isBp
can be set to true or false:
In that case, the created company will be a BP with bpType Indirect Reseller:isBp
is set to true, the company is created with isBP = true, bpType = 'IR', bpBusinessModel = 'resell'
and bpHasRightToConnect = true (it will be a BP Indirect Reseller company linked to this BP VAD company, this BP IR company will be able to
have his own EC companies attached to it)isBp
is set to false (or not defined), the company is created with bpId = BP companyId
(it will be an End Customer company directly attached to this BP VAD company)active
once the first invited bp_admin / bp_finance (invited using join company
invitation with flag invitedToBeBpAdmin set to true) will join this company.bpType
equal to DR
or IR
, the created company will be an End Customer company:active
once the first invited company_admin (invited using join company
invitation with flag invitedToBeCompanyAdmin set to true) will join this company.Companies created by a Organisation admin
are automatically attached to his organisation.
Users
being in Default company can create their own company using API enduser/PostCompanies
POST /api/rainbow/enduser/v1.0/companies
When a company is created, a subscription to the Default offer is assigned to this company. All users of this company will be assigned to this default subscription when they are created or when they arrive in the company.
Specific feature: Sharing a system between several companies
Configuring companies sharing a multi-tenant system is possible.
An OXE can be multi-company.
A multi-tenant system, so called CENTREX, allows sharing a call-server between several entities.
For us an entity is a company with the flag isCentrex
=true.
A Company can't change the CENTREX status, when some sites are already created for it.
Rainbow application customisation Activate/Deactivate some locks per company, per user
It's possible to forbid a feature for all users of a company. Even if a feature is offered by a Rainbow profile, companies may want to prohibit it for all its employees unless there is an exception.
Following keys are manageable via customisation templates to apply either to a company or a user.
See POST /api/rainbow/admin/v1.0/customisations/templates/apply
fileSharingCustomisation - Activate/Deactivate file sharing capability per company, per user
userTitleNameCustomisation - Activate/Deactivate the capability for a user to modify a part of his profile (title, firstName, lastName)
softphoneOnlyCustomisation - Activate/Deactivate the capability for an UCaas application not to offer all Rainbow services but to focus to telephony services
useRoomCustomisation - Activate/Deactivate the capability for a user to use bubbles.
phoneMeetingCustomisation - Activate/Deactivate the capability for a user to use phone meetings (PSTN conference).
useChannelCustomisation - Activate/Deactivate the capability for a user to use a channel.
useScreenSharingCustomisation - Activate/Deactivate the capability for a user to share a screen.
useWebRTCVideoCustomisation - Activate/Deactivate the capability for a user to switch to a Web RTC video conversation.
useWebRTCAudioCustomisation - Activate/Deactivate the capability for a user to switch to a Web RTC audio conversation.
instantMessagesCustomisation - Activate/Deactivate the capability for a user to use and receive instant messages.
userProfileCustomisation - Activate/Deactivate the capability for a user to modify globally his profile and not only (title, firstName, lastName).
fileStorageCustomisation - Activate/Deactivate the capability for a user to access to the Rainbow file storage.
overridePresenceCustomisation - Activate/Deactivate the capability for a user to change manually his presence status.
changeTelephonyCustomisation - Activate/Deactivate the ability for a user to modify telephony settings like forward activation...
changeSettingsCustomisation - Activate/Deactivate the ability for a user to change all client general settings.
recordingConversationCustomisation - Activate/Deactivate the capability for a user to record a conversation.
useGifCustomisation - Activate/Deactivate the ability for a user to Use GIFs in conversations.
fileCopyCustomisation - Activate/Deactivate the capability for a user to copy any file he receives in his personal cloud space.
fileTransferCustomisation - Activate/Deactivate the capability for a user to copy a file from a conversation then share it inside another conversation.
forbidFileOwnerChangeCustomisation - Activate/Deactivate the ability for a user to loose the ownership on one file.
Following keys stay manageable by this API
alertNotificationReception - Activate/Deactivate the capability for a user to receive alert notification.
alertNotificationSending - Activate/Deactivate the capability for a user to send alert notification.
useDialOutCustomisation - Activate/Deactivate the capability for a user to use dial out in phone meetings.
Each featureKey are added to companies and users data.
Each featureKey may get the value 'enabled', 'disabled' in the company data structure.
Each featureKey may get the value 'same_than_company' 'enabled', 'disabled' in the user data structure.
adminAllowedUpdateSubscriptionsOps | string Enum: "all" "increase_only" In the case the company is linked to a Business Partner company and
|
adminCanSetCustomData | boolean Whether or not administrators can set
|
adminEmail | string [ 3 .. 255 ] characters /^[a-zA-Z0-9_\+-]+(\.[a-zA-Z0-9_\+-]+)*@[a-zA... Company contact person email
|
adminHasRightToUpdateSubscriptions | boolean In the case the company is linked to a Business Partner company, indicates if the
|
alertNotificationReception | string Default: "disabled" Enum: "enabled" "disabled" Activate/Deactivate the capability for a user to receive alert notification.
|
alertNotificationSending | string Default: "disabled" Enum: "enabled" "disabled" Activate/Deactivate the capability for a user to send alert notification.
|
allowDeviceFirmwareSelection | boolean Default: "false" Superadmin allows admins of the company to select a given firmware for its cloudpbx devices. |
allowUsersSelectPublicTheme | boolean Default: "true" Allow users of this company to select a public theme. |
allowUsersSelectTheme | boolean Default: "true" Allow users of this company to select a theme among the ones available (owned or visible by the company). |
avatarShape | string Enum: "square" "circle" Company's avatar customization |
billingModel | string Enum: "monthly" "prepaid_1y" "prepaid_3y" "prepaid_5y" Billing model that can be subscribed for this company. |
bpApplicantNumber | string [ 0 .. 255 ] characters Reference of the Business Partner in ALE Finance tools (SAP)
|
bpBusinessModel | string Enum: "referral" "resell" Indicates BP business model
|
bpBusinessType | Array of strings Items Enum: "voice_by_partner" "voice_by_ale" "conference" "default" Business type(s) that can be sold by a BP. |
bpCRDid | string [ 0 .. 255 ] characters Reference of the Business Partner in CDR
|
bpHasRightToConnect | boolean When True [Default], the BP can connect CPE equipment of managed companies. So when False, the "equipment" tab should be removed from the admin GUI
|
bpHasRightToSell | boolean Indicates if the Business has the right to sell
|
bpId | string Link the company to the corresponding Business partner company.
|
bpIsContractAccepted | boolean Default: "false" Indicates if the Business has accepted the contract and can sell Rainbow offers
|
bpType | string Enum: "IR" "VAD" "DR" Indicates BP Company type
|
catalogId | string Id of the catalog of Rainbow offers to which the company is linked. The catalog corresponds to the list of offers the company can subscribe.
|
city | string [ 0 .. 255 ] characters Company street |
companyCallNumber | string If isCentrex = true, this is the company access number [multi-company call + company Area, ex: 8 210, 8 211] |
companyContactId | string User Id of a Rainbow user which is the contact for this company |
country | string 3 characters Default: "FRA" Company country (ISO 3166-1 alpha3 format) The list of allowed countries can be obtained using the API GET /api/rainbow/enduser/v1.0/countries The ⚠ Warning: the location of the company's data can't be changed after the company creation. The Once the company is created, the location where the data are stored is indicated in the field If no |
currency | string 3 characters Enum: "USD" "EUR" "CNY" Company currency, for payment of premium offers (ISO 4217 format)
|
customData | object |
ddiReadOnly | boolean Indicates if admin of IR company is allowed to create or delete a DDI. Used only on IR companies.
|
defaultLicenseGroup | string Group of license to assign to user when finalizing his account. Should be one of offers' groupName (e.g. Enterprise, Business ...) |
defaultOptionsGroups | Array of strings List of options to assign to user when finalizing his account. Should be one of offers' groupName (e.g. Alert ...) |
description | string [ 0 .. 2000 ] characters A free string that describes the company (2000 char length) |
disableCCareAdminAccess | boolean When True, disables the access to the customer care logs for admins of this company.
|
disableCCareAdminAccessCustomers | boolean When True, disables the access to the customer care logs for admins of all the customers company.
|
disableCCareAdminAccessResellers | boolean When True, disables the access to the customer care logs for admins of all the BP IRs companies linked to the BP VAD and their customers company.
|
economicActivityClassification | string Enum: "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N" "O" "P" "Q" "R" "S" "T" "U"
|
externalReference | string [ 0 .. 64 ] characters Free field that BP can use to link their Indirect Resellers / End Customers to their IS/IT tools
|
externalReference2 | string [ 0 .. 64 ] characters Free field that BP can use to link their Indirect Resellers / End Customers to their IS/IT tools
|
giphyEnabled | boolean Whether or not giphy feature is enabled for users belonging to this company (possibility to use animated gifs in conversations)
|
isBP | boolean Indicates if the company is a Business partner company
|
isCentrex | boolean Indicates if the company is one tenant of a multi-tenant call server (OXE - OTEC-S or third_party) (default: false) |
mobilePermanentConnectionMode | boolean Default: "false" deactivate push mode for mobile devices. When we can't rely on Internet and Google FCM services to wake-up the app or notify the app, we can fall back to a direct XMPP connection. For customers using Samsung devices with Google Play services, we must have an option on admin side to set this permanent connection mode, so that mobile apps can rely on this parameter. This option will be applied for the whole company. |
name required | string [ 1 .. 255 ] characters Company name |
offerType | string Default: "freemium" Enum: "freemium" "premium" Company offer type.
|
postalCode | string [ 0 .. 64 ] characters Company postal code |
privateDC | string Tag allowing to specify if the company and related data will be created on a given private data center
|
salesforceAccountId | string [ 0 .. 64 ] characters Curstomer's Salesforce reference.
|
selectedDeviceFirmware | string Default: "released" Enum: "released" "latest" Cloudpbx default device firmware
|
object | |
object | |
sendPrepaidSubscriptionsNotification | boolean Indicates if company_admin should receive email notification about prepaid subscriptions expiring soon. Used only on end customer companies |
size | string Default: "self-employed" Enum: "self-employed" "1-10 employees" "11-50 employees" "51-200 employees" "201-500 employees" "501-1000 employees" "1001-5000 employees" "5001-10,000 employees" "10,001+ employees" An overview of the number of employees |
slogan | string [ 0 .. 255 ] characters A free string corresponding to the slogan of the company |
state | string Enum: "null" "AA" "AE" "AP" "AK" "AL" "AR" "AZ" "CA" "CO" "CT" "DC" "DE" "FL" "GA" "GU" "HI" "IA" "ID" "IL" "IN" "KS" "KY" "LA" "MA" "MD" "ME" "MI" "MN" "MO" "MS" "MT" "NC" "ND" "NE" "NH" "NJ" "NM" "NV" "NY" "OH" "OK" "OR" "PA" "PR" "RI" "SC" "SD" "TN" "TX" "UT" "VA" "VI" "VT" "WA" "WI" "WV" "WY" "AB" "BC" "MB" "NB" "NL" "NS" "NT" "NU" "ON" "PE" "QC" "SK" "YT" When country is 'USA' or 'CAN', a state must be defined. Else it is not managed. The list of allowed states can be obtained using the API GET /api/rainbow/enduser/v1.0/countries for the associated countries.
|
status | string Enum: "initializing" "active" "alerting" "hold" "terminated" Company status.
|
street | string [ 0 .. 255 ] characters Company street |
superadminComment | string [ 0 .. 256 ] characters Free field that only |
supportEmail | string [ 3 .. 255 ] characters /^[a-zA-Z0-9_\+-]+(\.[a-zA-Z0-9_\+-]+)*@[a-zA... Company support email
|
supportUrlFAQ | string [ 0 .. 2000 ] characters Company support url |
useDialOutCustomisation | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the capability for a user to use dial out in phone meetings.
|
userSelfRegisterAllowedDomains | Array of strings Allow users with email domain matching one of the values of this array to join the company by self-register process (if userSelfRegisterEnabled is true) |
userSelfRegisterEnabled | boolean Default: "true" Allow users with email domain matching 'userSelfRegisterAllowedDomains' to join the company by self-register process |
visibility | string Default: "private" Enum: "public" "private" "organization" "closed" "isolated" "hotspot" Company visibility (define if users being in this company can be searched by users being in other companies and if the user can search users being in other companies).
External users mean public user not being in user's company nor user's organisation nor a company visible by user's company. Note related to organisation visibility:
|
visibleBy | Array of strings If visibility is private or organisation, list of company |
website | string [ 0 .. 2000 ] characters Company website url |
{- "adminAllowedUpdateSubscriptionsOps": "all",
- "adminCanSetCustomData": true,
- "adminEmail": "string",
- "adminHasRightToUpdateSubscriptions": true,
- "alertNotificationReception": "disabled",
- "alertNotificationSending": "disabled",
- "allowDeviceFirmwareSelection": "false",
- "allowUsersSelectPublicTheme": "true",
- "allowUsersSelectTheme": "true",
- "avatarShape": "square",
- "billingModel": "monthly",
- "bpApplicantNumber": "string",
- "bpBusinessModel": "referral",
- "bpBusinessType": [
- "voice_by_partner"
], - "bpCRDid": "string",
- "bpHasRightToConnect": true,
- "bpHasRightToSell": true,
- "bpId": "string",
- "bpIsContractAccepted": "false",
- "bpType": "IR",
- "catalogId": "string",
- "city": "string",
- "companyCallNumber": "string",
- "companyContactId": "string",
- "country": "FRA",
- "currency": "USD",
- "customData": { },
- "ddiReadOnly": true,
- "defaultLicenseGroup": "string",
- "defaultOptionsGroups": [
- "string"
], - "description": "string",
- "disableCCareAdminAccess": true,
- "disableCCareAdminAccessCustomers": true,
- "disableCCareAdminAccessResellers": true,
- "economicActivityClassification": "A",
- "externalReference": "string",
- "externalReference2": "string",
- "giphyEnabled": true,
- "isBP": true,
- "isCentrex": true,
- "mobilePermanentConnectionMode": "false",
- "name": "string",
- "offerType": "freemium",
- "postalCode": "string",
- "privateDC": "string",
- "salesforceAccountId": "string",
- "selectedDeviceFirmware": "released",
- "selectedTheme": {
- "dark": "string",
- "light": "string"
}, - "selectedThemeCustomers": {
- "dark": "string",
- "force": true,
- "light": "string",
- "locked": true
}, - "sendPrepaidSubscriptionsNotification": true,
- "size": "self-employed",
- "slogan": "string",
- "state": "null",
- "status": "initializing",
- "street": "string",
- "superadminComment": "string",
- "supportEmail": "string",
- "supportUrlFAQ": "string",
- "useDialOutCustomisation": "enabled",
- "userSelfRegisterAllowedDomains": [
- "string"
], - "userSelfRegisterEnabled": "true",
- "visibility": "private",
- "visibleBy": [
- "string"
], - "website": "string"
}
{- "data": {
- "id": "57f3b02f551928af263d6f0a",
- "creationDate": "2017-02-10T13:29:44.498Z",
- "statusUpdatedDate": "2017-02-10T13:29:44.497Z",
- "name": "A Business Partner",
- "country": "FRA",
- "status": "active",
- "visibility": "public",
- "visibleBy": [ ],
- "adminEmail": "admin@bp.fr",
- "supportEmail": "support@bp.fr",
- "companyContactId": "5899d3dfb567f2e8104bfbe5",
- "userSelfRegisterEnabled": false,
- "userSelfRegisterAllowedDomains": [ ],
- "description": "Description of the Business Partner",
- "size": "51-200 employees",
- "giphyEnabled": false,
- "organisationId": null,
- "catalogId": "5979f63bae6056aadd1a8f17",
- "bpId": null,
- "isBP": true,
- "bpType": "IR",
- "bpBusinessModel": "resell",
- "bpApplicantNumber": "The applicant number of my BP",
- "bpCRDid": "The CRD id of my BP",
- "bpHasRightToSell": true,
- "bpHasRightToConnect": true,
- "bpIsContractAccepted": true,
- "bpContractAcceptationInfo": {
- "acceptationDate": "2016-11-18T16:12:12.153Z",
- "bpAdminId": "5703c52929778f618d5a4058",
- "bpAdminLoginEmail": "admin@bp.fr"
}, - "bpBusinessType": [
- "default",
- "conference",
- "voice_by_partner"
], - "offerType": "premium",
- "avatarShape": "square",
- "office365ScopesGranted": [ ],
- "allowUsersSelectTheme": true,
- "allowUsersSelectPublicTheme": true,
- "mobilePermanentConnectionMode": false,
- "customData": {
- "key1ANumber": 123,
- "key2AString": "a string",
- "key3ABoolean": true,
- "key4AnObject": {
- "myKey": "My value"
}
}, - "selectedTheme": {
- "light": null,
- "dark": "5ea304e4359c0e6815fc8b57"
}, - "selectedThemeCustomers": {
- "light": "60104754c8fada2ad4be3e48",
- "dark": "5ea304e4359c0e6815fc8b57",
- "locked": true
}
}
}
This API allows administrators to list users being administrator of a company.
Users with superadmin
, support
role can list administrators from any company.
Users with bp_admin
or bp_finance
role can only list administrators for companies being End Customers of their BP company
(i.e. all the companies having bpId equal to their companyId).
Users with admin
role can only list administrators belonging to companies they can manage. That is to say:
companyId required | string Company for which list of administrators is requested |
format | string Default: "small" Enum: "small" "medium" "full" Allows to retrieve more or less user details in response.
|
limit | number Default: 100 Allow to specify the number of users to retrieve. |
offset | number Allow to specify the position of first user to retrieve (first user if not specified). Warning: if offset > total, no results are returned. |
sortField | string Default: "displayName" Sort user list based on the given field. |
sortOrder | number Default: 1 Enum: -1 1 Specify order when sorting user list. |
accept required | string application/json |
{- "data": [
- {
- "id": "56c5c19f94141765119f896c",
- "loginEmail": "user1@company.com",
- "firstName": "Firstname",
- "lastName": "Lastname",
- "displayName": "Firstname Lastname",
- "companyId": "569ce8c8f9336c471b98eda1",
- "companyName": "My company",
- "isTerminated": false
}, - {
- "id": "56c5cb38e8078d7512c43985",
- "loginEmail": "user2@company.com",
- "firstName": "Firstname",
- "lastName": "Lastname",
- "displayName": "Firstname Lastname",
- "companyId": "569ce8c8f9336c471b98eda1",
- "companyName": "My company",
- "isTerminated": false
}
], - "total": 2,
- "limit": 100,
- "offset": 0
}
This API allows administrators to get service description pdf file uploaded by superadmin
companyId required | string Company for which service description file is requested |
accept required | string application/json |
{- "Content-Type": "application/pdf",
- "Content-disposition": "string",
- "pdf": "string"
}
companyId required | string Company for which list of custom elements is requested. |
accept required | string application/json |
{- "errorCode": 401,
- "errorMsg": "Unauthorized",
- "errorDetails": {
- "errorMsg": "User user1@company.com has expired (timeToLive)",
- "timeToLive": 3600,
- "creationDate": "2017-09-05T13:12:51.302Z",
- "expirationDate": "2017-09-05T14:12:51.302Z",
- "currentDate": "2017-09-05T14:48:23.694Z"
}, - "errorDetailsCode": 401523
}
This API allows administrators to list the features customisation elements for the company.
Retrieves the application features customisation elements (e.g. conversation pane, menu pane, services) for the given company.
The list of supported features elements is the following (naming convention given from the desktop):
companyId required | string Company for which list of custom feature elements is requested. |
accept required | string application/json |
{- "errorCode": 401,
- "errorMsg": "Unauthorized",
- "errorDetails": {
- "errorMsg": "User user1@company.com has expired (timeToLive)",
- "timeToLive": 3600,
- "creationDate": "2017-09-05T13:12:51.302Z",
- "expirationDate": "2017-09-05T14:12:51.302Z",
- "currentDate": "2017-09-05T14:48:23.694Z"
}, - "errorDetailsCode": 401523
}
This API allows administrators to set or update the feature customisation elements for the company.
These elements (e.g. conversation pane, menu pane, services) will then be available to the end user to customise their rainbow application.
See supported element names in above GET request.
The whole object will replace the existing one, if found.
The customisation object has some limitations:
companyId required | string Company for which update of customisation elements is requested. |
{- "status": "string"
}
This API allows to get the default Rainbow company.
Example: GET https://openrainbow.com/api/rainbow/admin/v1.0/companies/default
format | string Default: "full" Enum: "small" "medium" "full" Allows to retrieve more or less company details in response.
|
selectedThemeObj | boolean Allows to return selectedTheme attribute as an object:
|
accept required | string application/json |
{- "data": {
- "id": "57f3b02f551928af263d6f0a",
- "creationDate": "2017-02-10T13:29:44.498Z",
- "statusUpdatedDate": "2017-02-10T13:29:44.497Z",
- "name": "A Business Partner",
- "country": "FRA",
- "status": "active",
- "visibility": "public",
- "visibleBy": [ ],
- "adminEmail": "admin@bp.fr",
- "supportEmail": "support@bp.fr",
- "companyContactId": "5899d3dfb567f2e8104bfbe5",
- "userSelfRegisterEnabled": false,
- "userSelfRegisterAllowedDomains": [ ],
- "description": "Description of the Business Partner",
- "size": "51-200 employees",
- "giphyEnabled": false,
- "organisationId": null,
- "catalogId": "5979f63bae6056aadd1a8f17",
- "bpId": null,
- "isBP": true,
- "bpType": "IR",
- "bpBusinessModel": "resell",
- "bpApplicantNumber": "The applicant number of my BP",
- "bpCRDid": "The CRD id of my BP",
- "bpHasRightToSell": true,
- "bpHasRightToConnect": true,
- "bpIsContractAccepted": true,
- "bpContractAcceptationInfo": {
- "acceptationDate": "2016-11-18T16:12:12.153Z",
- "bpAdminId": "5703c52929778f618d5a4058",
- "bpAdminLoginEmail": "admin@bp.fr"
}, - "bpBusinessType": [
- "default",
- "conference",
- "voice_by_partner"
], - "offerType": "premium",
- "avatarShape": "square",
- "office365ScopesGranted": [ ],
- "allowUsersSelectTheme": true,
- "allowUsersSelectPublicTheme": true,
- "mobilePermanentConnectionMode": false,
- "customData": {
- "key1ANumber": 123,
- "key2AString": "a string",
- "key3ABoolean": true,
- "key4AnObject": {
- "myKey": "My value"
}
}, - "selectedTheme": {
- "light": null,
- "dark": "5ea304e4359c0e6815fc8b57"
}, - "selectedThemeCustomers": {
- "light": "60104754c8fada2ad4be3e48",
- "dark": "5ea304e4359c0e6815fc8b57",
- "locked": true
}
}
}
This API can be used by company admin
users to delete a join company link by id
Join company links allow company administrators to generate an id that can be used by users to create their account in this company (using API POST /api/rainbow/enduser/v1.0/users/self-register).
Join company links can't be deleted if they have been used by users to register in the related company
(in that case they can only be disabled, by updating isEnabled
value to false).
Example: DELETE https://openrainbow.com/api/rainbow/admin/v1.0/companies/5703d0d49ccf39843c7ef897/join-companies/links/086e997557924910bc838f93aee7b25d
companyId required | string Company unique identifier (like 569ce8c8f9336c471b98eda1) |
joinCompanyLinkId required | string Join company link unique identifier (like 086e997557924910bc838f93aee7b25d) |
accept required | string application/json |
{- "status": "JoinCompanyLink 086e997557924910bc838f93aee7b25d successfully deleted",
- "data": {
- "id": "086e997557924910bc838f93aee7b25d",
- "companyId": "5703d0d49ccf39843c7ef897",
- "creationDate": "2020-06-03T16:07:39.766Z",
- "createdByAdminId": "5819e1fa290fd7584fb4bb73",
- "description": "My link to create 30 users for this month",
- "isEnabled": true,
- "expirationDate": "2020-07-03T23:59:59.999Z",
- "maxNumberUsers": 30,
- "nbUsersRegistered": 0
}
}
This API can be used by company admin
users to get a join company link by id
Join company links allow company administrators to generate an id that can be used by users to create their account in this company (using API POST /api/rainbow/enduser/v1.0/users/self-register).
companyId required | string Company unique identifier (like 569ce8c8f9336c471b98eda1) |
joinCompanyLinkId required | string Join company link unique identifier (like 086e997557924910bc838f93aee7b25d) |
accept required | string application/json |
{- "data": {
- "id": "086e997557924910bc838f93aee7b25d",
- "companyId": "5703d0d49ccf39843c7ef897",
- "creationDate": "2020-06-03T16:07:39.766Z",
- "createdByAdminId": "5819e1fa290fd7584fb4bb73",
- "description": "My link to create 30 users for this month",
- "isEnabled": true,
- "expirationDate": "2020-07-03T23:59:59.999Z",
- "maxNumberUsers": 30,
- "nbUsersRegistered": 0
}
}
This API can be used by company admin
users to update a join company link for his company.
Join company links allow company administrators to generate an id that can be used by users to create their account in this company (using API POST /api/rainbow/enduser/v1.0/users/self-register).
companyId required | string Company unique identifier (like 569ce8c8f9336c471b98eda1) |
joinCompanyLinkId required | string Join company link unique identifier (like 086e997557924910bc838f93aee7b25d) |
description | string Join company link description |
expirationDate | string <date-time> Date of expiration of the Join company link
|
isEnabled | boolean Default: "true" Boolean allowing to enable or disable the join company link.
|
maxNumberUsers | number Maximum number of users allowed to register in the
company using this join company link.
|
{- "description": "string",
- "expirationDate": "2019-08-24T14:15:22Z",
- "isEnabled": "true",
- "maxNumberUsers": 0
}
{- "data": {
- "id": "086e997557924910bc838f93aee7b25d",
- "companyId": "5703d0d49ccf39843c7ef897",
- "creationDate": "2020-06-03T16:07:39.766Z",
- "createdByAdminId": "5819e1fa290fd7584fb4bb73",
- "description": "My link to create 30 users for this month",
- "isEnabled": true,
- "expirationDate": "2020-07-03T23:59:59.999Z",
- "maxNumberUsers": 30,
- "nbUsersRegistered": 0
}
}
This API can be used by company admin
users to list existing join company links for his company.
Join company links allow company administrators to generate an id that can be used by users to create their account in this company (using API POST /api/rainbow/enduser/v1.0/users/self-register).
companyId required | string Company unique identifier (like 569ce8c8f9336c471b98eda1) |
format | string Default: "small" Enum: "small" "medium" "full" Allows to retrieve more or less join company links details in response.
|
createdByAdminId | string List join company links created by the specified administrator id(s). |
isEnabled | boolean List join company links with the specified isEnabled value (true/false). |
fromExpirationDate | string <date-time> List join company links expiring after the given date. |
toExpirationDate | string <date-time> List join company links expiring before the given date. |
fromNbUsersRegistered | string <date-time> List join company links that have been used by at least the given number (nbUsersRegistered greater than or equal to the requested toNbUsersRegistered number). |
toNbUsersRegistered | string <date-time> List join company links that have been used by at less than the given number (nbUsersRegistered lower than or equal to the requested toNbUsersRegistered number). |
limit | number Default: 100 Value: 0 Allow to specify the number of items to retrieve. |
offset | number Default: 0 Allow to specify the position of first item to retrieve (first item if not specified). Warning: if offset > total, no results are returned. |
sortField | string Sort items list based on the given field. |
sortOrder | number Default: 1 Enum: -1 1 Specify order when sorting items list. |
accept required | string application/json |
{- "data": [
- {
- "id": "086e997557924910bc838f93aee7b25d",
- "companyId": "5703d0d49ccf39843c7ef897",
- "creationDate": "2020-06-03T16:07:39.766Z",
- "createdByAdminId": "5819e1fa290fd7584fb4bb73",
- "description": "My link to create 30 users for this month",
- "isEnabled": true,
- "expirationDate": "2020-07-03T23:59:59.999Z",
- "maxNumberUsers": 30,
- "nbUsersRegistered": 0
}
], - "total": 1,
- "limit": 100,
- "offset": 0
}
This API can be used by company admin
users to create a join company link for his company.
Join company links allow company administrators to generate an id that can be used by users to create their account in this company (using API POST /api/rainbow/enduser/v1.0/users/self-register).
Example: POST https://openrainbow.com/api/rainbow/admin/v1.0/companies/5703d0d49ccf39843c7ef897/join-companies/links
companyId required | string Company unique identifier (like 569ce8c8f9336c471b98eda1) |
description | string Join company link description |
expirationDate | string <date-time> Date of expiration of the Join company link
|
isEnabled | boolean Default: "true" Boolean allowing to enable or disable the join company link.
|
maxNumberUsers | number Maximum number of users allowed to register in the
company using this join company link.
|
{- "description": "string",
- "expirationDate": "2019-08-24T14:15:22Z",
- "isEnabled": "true",
- "maxNumberUsers": 0
}
{- "data": {
- "id": "086e997557924910bc838f93aee7b25d",
- "companyId": "5703d0d49ccf39843c7ef897",
- "creationDate": "2020-06-03T16:07:39.766Z",
- "createdByAdminId": "5819e1fa290fd7584fb4bb73",
- "description": "My link to create 30 users for this month",
- "isEnabled": true,
- "expirationDate": "2020-07-03T23:59:59.999Z",
- "maxNumberUsers": 30,
- "nbUsersRegistered": 0
}
}
companyId required | string Company unique identifier (like 5749ab92245015fe0d36e96a) |
organisationId required | string Organisation unique identifier (like 569ce8c8f9336c471b98eda1) |
accept required | string application/json |
{- "status": "Company 5749ab92245015fe0d36e96a successfully deleted from the organisation",
- "data": [ ]
}
For the 'Enterprise (E1)' offer, the premium offer, the Multi-Layer organization is defined.
It describes a hierarchy including ORGANIZATIONS/COMPANIES/SITES/SYSTEMS.
This api gets all companies linked with an organization.
Example: POST https://openrainbow.com/api/rainbow/admin/v1.0/organisations/57486e5d807a594145e510d6/companies
organisationId required | string Organisation unique identifier (like 569ce8c8f9336c471b98eda1) |
format | string Default: "small" Enum: "small" "medium" "full" Allows to retrieve more or less company details in response.
|
accept required | string application/json |
{- "data": [
- {
- "name": "ALE_CENTRAL_TEAM",
- "id": "5749ab92245015fe0d36e96a"
}, - {
- "name": "ALE_FR",
- "id": "5749aa51245015fe0d36e968"
}, - {
- "name": "ALE_SP",
- "id": "5749aa7e245015fe0d36e969"
}
], - "limit": 100,
- "offset": 0,
- "total": 3
}
For the 'Enterprise (E1)' offer, the premium offer, the Multi-Layer organization is defined.
It describes a hierarchy including ORGANIZATIONS/COMPANIES/SITES/SYSTEMS.
This api links a company with the given organization. Company's users are automatically attached to this organisation.
A company must belong to only one organisation or kept single.
When an organization is deleted, the company is automatically unlinked.
Example: POST https://openrainbow.com/api/rainbow/admin/v1.0/organisations/57515338c5d7b862456d60a0/companies (body "companyId":"5749ab92245015fe0d36e96a")
organisationId required | string Organisation unique identifier (like 569ce8c8f9336c471b98eda1) |
companyId required | string Company unique identifier |
{- "companyId": "string"
}
{- "data": {
- "name": "ALE_SP",
- "latin_name": "ale_sp",
- "creationDate": "2016-05-28T14:26:06.886Z",
- "statusUpdatedDate": "2016-06-07T08:55:26.708Z",
- "settings": {
- "iceServers": [ ]
}, - "forceHandshake": false,
- "visibleBy": [ ],
- "visibility": "private",
- "status": "active",
- "organisationId": "57515338c5d7b862456d60a0",
- "offerType": "freemium",
- "id": "5749aa7e245015fe0d36e969"
}
}
Users with 'superadmin', 'support', 'business_admin' or 'admin' role can retrieve all organisations.
Users with admin role (and not having superadmin, business_admin nor support role) can only retrieve organisations he has to manage.
Example: GET https://openrainbow.com/api/rainbow/admin/v1.0/organisations?format=small&limit=100&offset=0&sortField=name&sortOrder=-1
format | string Default: "small" Enum: "small" "medium" "full" Allows to retrieve more or less organisation details in response.
|
limit | number Default: 100 Allow to specify the number of companies to retrieve. |
offset | number Allow to specify the position of first company to retrieve (first company if not specified). Warning: if offset > total, no results are returned. |
sortField | string Default: "name" Sort organisation list based on the given field. |
sortOrder | number Default: 1 Enum: -1 1 Specify order when sorting company list. |
accept required | string application/json |
{- "data": [
- {
- "name": "ALE international",
- "id": "57486e5d807a594145e510d6"
}
], - "limit": 100,
- "offset": 0,
- "total": 1
}
Users with 'superadmin', 'business_admin', 'support' or 'admin' role can retrieve any company.
Users with admin role (and not having superadmin, business_admin nor support role) can only retrieve organisations he has to manage..
Example: GET https://openrainbow.com/api/rainbow/admin/v1.0/organisations/57486e5d807a594145e510d6
organisationId required | string Organisation unique identifier (like 569ce8c8f9336c471b98eda1) |
accept required | string application/json |
{- "data": {
- "id": "57486e5d807a594145e510d6",
- "creationDate": "2016-05-27T15:57:17.998Z",
- "name": "ALE international",
- "visibility": "private"
}
}
organisationId required | string Organisation unique identifier (like 569ce8c8f9336c471b98eda1) |
name required | string [ 1 .. 255 ] characters Organisation name |
visibility | string Default: "private" Enum: "public" "private" Organisation visibility (define if users being in this organisation can be searched by users being in other organisations) |
{- "name": "string",
- "visibility": "private"
}
{- "data": {
- "id": "57486e5d807a594145e510d6",
- "creationDate": "2016-05-27T15:57:17.998Z",
- "name": "ALE international",
- "visibility": "private"
}
}
This API allows administrator to delete a link between a system and a site
superadmin
and support
can unlink any systems from any sites existing in Rainbow.
bp_admin
can only unlink systems being linked to sites of End Customer companies for which
their bp_admin's company is the BP company from sites of End Customer companies for which their bp_admin's company is
the BP company.
organization_admin
can only unlink systems being linked to sites of companies under
their organisation from sites of companies under their organisation.
company_admin
can only unlink systems being linked to sites of their company from sites
of their company.
Access is denied for site_admin
.
A system could be shared by several sites.
Last site can be detached from a system only if it is multi-company or multi-tenant (isShared
=true or isCentrex
=true)
siteId required | string Site unique identifier |
systemId required | string System unique identifier |
accept required | string application/json |
{- "status": "Site 5749ab92245015fe0d36e96a successfully removed",
- "data": [ ]
}
This API allows administrator to retrieve systems linked to a given site
superadmin
and support
can get systems linked to all companies existing in Rainbow.
bp_admin
can only get systems linked to sites of End Customer companies for which
their bp_admin's company is the BP company.
organization_admin
can only get systems linked to sites of companies under their organisation.
company_admin
can only get systems linked to sites of their company.
site_admin
can only get the systems linked to the site they administrate.
siteId required | string Site unique identifier |
format | string Default: "small" Enum: "small" "medium" "full" Allows to retrieve more or less system details in response.
|
limit | number Default: 100 Allow to specify the number of systems to retrieve. |
offset | number Allow to specify the position of first system to retrieve (first site if not specified). Warning: if offset > total, no results are returned. |
sortField | string Default: "pbxId" Sort system list based on the given field. |
sortOrder | number Default: 1 Enum: -1 1 Specify order when sorting pbx list. |
name | string Allows to filter systems list on field name.
|
type | string Enum: "oxo" "oxe" "third_party" "undefined" Allows to filter systems list on the provided type(s) |
status | string Enum: "created" "activating" "activated" "terminated" Allows to filter systems list on the provided status(es) |
siteId | string Allows to filter systems list on the siteIds provided in this option. |
companyId | string Allows to filter systems list on the siteIds linked to companyIds provided in this option. |
bpId | string Allows to filter systems list on the bpIds provided in this option.
|
isShared | boolean Allows to filter systems list by the status isShared. |
isCentrex | boolean Allows to filter systems list by the status isCentrex. |
isSharedOrCentrex | boolean Allows to filter systems list having the requested flag isShared or isCentrex.
|
isOxoManaged | boolean Allows to filter systems list by the setting isOxoManaged. |
fromCreationDate | string <date-time> Allows to filter systems list from provided date (ISO 8601 format). |
toCreationDate | string <date-time> Allows to filter systems list until provided date (ISO 8601 format). |
accept required | string application/json |
{- "data": [
- {
- "bpId": "null",
- "connectionHistory": [
- {
- "eventDate": "2019-08-24T14:15:22Z",
- "eventType": "string"
}
], - "country": "string",
- "creationDate": "2019-08-24T14:15:22Z",
- "hasMediaPillar": true,
- "id": "string",
- "isCentrex": true,
- "isOxoManaged": true,
- "isShared": true,
- "jid_pbxagent": "string",
- "jid_pbxagent_password": "string",
- "jid_pbxpcg": "string",
- "jid_pbxpcg_password": "string",
- "name": "string",
- "pbxId": "string",
- "pbxInternationalPrefix": "string",
- "pbxMainBundlePrefix": [
- "string"
], - "pbxNationalPrefix": "string",
- "pbxNumberingTranslator": [
- {
- "description": "string",
- "regexpMatch": "string",
- "regexpReplace": "string"
}
], - "searchResultOrder": [
- "RAINBOW"
], - "serverPingTimeout": "string",
- "siteId": [
- "string"
], - "status": "created",
- "statusUpdatedDate": "2019-08-24T14:15:22Z",
- "type": "oxo",
- "version": "string"
}
]
}
This API allows administrator to link a system to a given site
A PABX can be multi tenant.
When a PABX is shared, that means in our data model: 'A system is shared between several sites'.
This API makes possible to add a link between a system and a site that belongs to the same company or not.
If the link still exists, no error is thrown.
superadmin
and support
can link any systems to any sites existing in Rainbow.
bp_admin
can only link systems being already linked to sites of End Customer companies for which
their bp_admin's company is the BP company to sites of End Customer companies for which their bp_admin's company is
the BP company.
organization_admin
can only link systems being already linked to sites of companies under
their organisation to sites of companies under their organisation.
company_admin
can only link systems being already linked to sites of their company to sites
of their company.
Access is denied for site_admin
.
Specific feature: Sharing a system between several companies
Since 1.47.0 release, configuring companies sharing a multi-tenant system is possible.
An OXE can be multi-company.
A multi-tenant system, so called CENTREX, allows sharing a call-server between several entities.
For us an entity is a company with the flag isCentrex=true.
A company in this environment can only have a single site. It has automatically the flag isCentrex = true
Only one sytem having the flag isCentrex = true can be linked with a site having the same flag value.
A system having the flag isCentrex = true can be shared by several sites having the same flag value.
A specific error "Inconsistent link. A multi-tenant system must be shared by a multi-tenant company only" 43709 is thrown when we try
to link an incompatible system to a site.
When set during the system creation, isCentrex flag is readonly.
siteId required | string Site unique identifier |
systemId required | string System unique identifier { "systemId": "5749ab92245015fe0d36e96a" } |
{- "systemId": "string"
}
{- "data": {
- "name": "node_alpha_oxe_R11 demo",
- "pbxId": "pbxagent_aace13f751734a6596ac6cdd567c4898",
- "jid_pbxagent": "pbxagent_aace13f751734a6596ac6cdd567c4898@francky-all-in-one-dev-1.opentouch.cloud",
- "jid_pbxagent_password": "061947863a3147b5b9b28c3b5712ed83",
- "jid_pbxpcg": "pbxpcg_fad0ec2eb92045868a32a189f31bbe90@openrainbow.com",
- "jid_pbxpcg_password": "2001b0f5dc5245e1aa07e444d3524a76",
- "version": "",
- "country": "FRA",
- "serverPingTimeout": 120,
- "pbxMainBundlePrefix": [
- "0"
], - "usePbxMainBundlePrefix": true,
- "pbxNationalPrefix": "0",
- "pbxInternationalPrefix": "00",
- "statusUpdatedDate": "2016-08-10T12:57:19.298Z",
- "creationDate": "2016-08-10T12:57:19.298Z",
- "status": "created",
- "hasMediaPillar": false,
- "siteId": [
- "575d4bacb630c12b305aa310",
- "57585233d3c3e3e5095250ba"
], - "searchResultOrder": [
- "RAINBOW",
- "LDAP",
- "PBX"
], - "type": "oxe",
- "id": "57ab24af27fe23cc40fef473"
}
}
This API allows administrator to delete a site for a company they administrate.
superadmin
can delete sites for all companies existing in Rainbow.
bp_admin
can only delete sites for companies linked to End Customer companies for which their bp_admin's company is the BP company.
organization_admin
can only delete sites for companies linked to companies under their organisation.
company_admin
can only delete sites for their own company.
Note : Delete will be forbidden if site is still linked to system(s)
siteId required | string Site unique identifier (like 569ce8c8f9336c471b98eda1) |
accept required | string application/json |
{- "status": "Site 569d0ef3ef7816921f7e94fa successfully deleted",
- "data": [ ]
}
This API allows administrator to retrieve a given site.
superadmin
and support
can get all sites existing in Rainbow.
bp_admin
can only get sites linked to End Customer companies for which their bp_admin's company is the BP company.
organization_admin
can only get sites linked to companies under their organisation.
company_admin
can only get sites linked to their company.
site_admin
can only get the site they administrate.
Example: GET https://openrainbow.com/api/rainbow/admin/v1.0/sites/569d0ef3ef7816921f7e94fa
siteId required | string Site unique identifier (like 569ce8c8f9336c471b98eda1) |
accept required | string application/json |
{- "data": {
- "latin_name": "illkirch",
- "name": "Illkirch",
- "companyId": "5749aa51245015fe0d36e968",
- "creationDate": "2016-06-08T17:13:23.008Z",
- "statusUpdatedDate": "2016-06-08T17:13:23.008Z",
- "settings": {
- "iceServers": [ ]
}, - "status": "active",
- "id": "57585233d3c3e3e5095250ba"
}
}
This API allows administrator to update a given site.
superadmin
can update all sites existing in Rainbow.
bp_admin
can only update sites linked to End Customer companies for which their bp_admin's company is the BP company.
organization_admin
can only update sites linked to companies under their organisation.
company_admin
can only update sites linked to their company.
site_admin
can only update the site they administrate.
In a Multi-Layer organization defining a hierarchy ORGANIZATIONS/COMPANIES/SITES/SYSTEMS, only bp admin or admin of the
site's organization is allowed to move the site (change companyId field of the site).
siteId required | string Site unique identifier (like 569ce8c8f9336c471b98eda1) |
companyId required | string Id of the company from which the site is linked. |
name | string [ 1 .. 255 ] characters Site name |
status | string [ 3 .. 255 ] characters Enum: "active" "alerting" "hold" "terminated" Site status |
{- "companyId": "string",
- "name": "string",
- "status": "active"
}
{- "data": {
- "latin_name": "illkirch",
- "name": "Illkirch",
- "companyId": "5749aa51245015fe0d36e968",
- "creationDate": "2016-06-08T17:13:23.008Z",
- "statusUpdatedDate": "2016-06-08T17:13:23.008Z",
- "settings": {
- "iceServers": [ ]
}, - "status": "active",
- "id": "57585233d3c3e3e5095250ba"
}
}
This API allows administrator to retrieve sites they can administrate.
superadmin
and support
get all sites existing in Rainbow.
bp_admin
only get sites linked to End Customer companies for which their bp_admin's company is the BP company.
organization_admin
only get sites linked to companies under their organisation.
company_admin
only get sites linked to their company.
site_admin
only get the site they administrate.
Example: GET https://openrainbow.com/api/rainbow/admin/v1.0/sites?format=small&limit=100&offset=0&sortField=name&sortOrder=-1
format | string Default: "small" Enum: "small" "medium" "full" Allows to retrieve more or less site details in response.
|
limit | number Default: 100 Allow to specify the number of companies to retrieve. |
offset | number Allow to specify the position of first site to retrieve (first site if not specified). Warning: if offset > total, no results are returned. |
sortField | string Default: "name" Sort site list based on the given field. |
sortOrder | number Default: 1 Enum: -1 1 Specify order when sorting site list. |
name | string Allows to filter sites list on field name.
|
companyId | string Allows to filter sites list on the companyIds provided in this option. |
accept required | string application/json |
{- "data": [
- {
- "name": "ALE1",
- "id": "569ce8c8f9336c471b98eda1"
}, - {
- "name": "ALE2",
- "id": "569ce938f9336c471b98eda2"
}
], - "total": 2,
- "limit": 100,
- "offset": 0
}
This API allows administrator to create a site for a company they administrate.
superadmin
can create sites for all companies existing in Rainbow.
bp_admin
can only create sites for companies linked to End Customer companies for which their bp_admin's company is the BP company.
organization_admin
can only create sites for companies linked to companies under their organisation.
company_admin
can only create sites for their own company.
Specific feature: Sharing a system between several companies
Since 1.47.0 release, configuring companies sharing a multi-tenant system is possible.
An OXE can be multi-company.
A multi-tenant system, so called CENTREX, allows sharing a call-server between several entities.
For us an entity is a company with the flag isCentrex=true.
A company in this environment can only have a single site. It has automatically the flag isCentrex = true
This flag is readonly.
companyId required | string Id of the company from which the site is linked. |
name required | string [ 1 .. 255 ] characters Site name |
status required | string Enum: "active" "alerting" "hold" "terminated" Site status |
{- "companyId": "string",
- "name": "string",
- "status": "active"
}
{- "data": {
- "latin_name": "illkirch",
- "name": "Illkirch",
- "companyId": "5749aa51245015fe0d36e968",
- "creationDate": "2016-06-08T17:13:23.008Z",
- "statusUpdatedDate": "2016-06-08T17:13:23.008Z",
- "settings": {
- "iceServers": [ ]
}, - "status": "active",
- "id": "57585233d3c3e3e5095250ba"
}
}
Remove system to a group. If the system doesn't exist in the group, an error is raised (404 Not found)
A systems group is a logical set of systems (pabx), sharing the same dial plan and linked through a private network.
Systems belonging to this group may either belonging to the same Site, or belonging from several sites under the same company.
Waiting for a real use case, it is possible to federate inside the same group, systems belonging to companies under the same organization.
systemId required | string System unique identifier |
groupId required | string SystemsGroup unique identifier |
accept required | string application/json |
content-type required | string application/json |
{- "data": {
- "name": "ALE_SP Malaga",
- "systems": [
- {
- "systemId": "57e8c879b8be68670b2a6ca8",
- "pbxId": "pbxagent_07f9596a5cc34dde8a37dd3200566a10"
}, - {
- "systemId": "57e8ced2212d6d09123ec9d4",
- "pbxId": "pbxagent_7f521f657b9042eba12fbf896e60e72b"
}
], - "companies": [
- "57e2afbb467af7d11dc0eb57"
], - "id": "57ecdc63fa5aac7050dba4d7"
}
}
Add a new system to a group. If the system already exists in the group or inside another one, an error is raised (409 Conflict)
A systems group is a logical set of systems (pabx), sharing the same dial plan and linked through a private network.
Systems belonging to this group may either belonging to the same Site, or belonging from several sites under the same company.
Waiting for a real use case, it is possible to federate inside the same group, systems belonging to companies under the same organization.
Specific feature: Sharing a system between several companies
Since 1.47.0 release, configuring companies sharing a multi-tenant system is possible.
An OXE or third_party system can be multi-company.
A multi-tenant system, so called CENTREX, allows sharing a call-server between several entities.
For us an entity is a company with the flag isCentrex=true.
A multi-tenant system can't be set inside a systems group. That does not make sense.
systemId required | string System unique identifier |
groupId required | string SystemsGroup unique identifier |
{- "data": {
- "name": "ALE_SP Malaga",
- "systems": [
- {
- "systemId": "57e8c879b8be68670b2a6ca8",
- "pbxId": "pbxagent_07f9596a5cc34dde8a37dd3200566a10"
}, - {
- "systemId": "57e8ced2212d6d09123ec9d4",
- "pbxId": "pbxagent_7f521f657b9042eba12fbf896e60e72b"
}
], - "companies": [
- "57e2afbb467af7d11dc0eb57"
], - "id": "57ecdc63fa5aac7050dba4d7"
}
}
Delete a systems groups.
groupId required | string SystemsGroup unique identifier |
accept required | string application/json |
{- "status": "SystemsGroup 57ed149c7473a55c17b1d238 successfully deleted",
- "data": [ ]
}
A systems group is a logical set of systems (pabx), sharing the same dial plan and linked through a private network.
Systems belonging to this group may either belonging to the same Site, or belonging from several sites under the same company.
According with api permission, the response is not the same.
- Superadmin, Support and organization_admin must see all Systems inside the group.
- bp_admin, company_admin may see Systems hosted by sites under his company.
- site_admin only see systems of his site, inside the group>.
groupId required | string SystemsGroup unique identifier |
accept required | string application/json |
{- "data": {
- "name": "ALE_SP Malaga",
- "systems": [
- {
- "systemId": "57e8c879b8be68670b2a6ca8",
- "pbxId": "pbxagent_07f9596a5cc34dde8a37dd3200566a10"
}, - {
- "systemId": "57e8ced2212d6d09123ec9d4",
- "pbxId": "pbxagent_7f521f657b9042eba12fbf896e60e72b"
}
], - "companies": [
- "57e2afbb467af7d11dc0eb57"
], - "id": "57ecdc63fa5aac7050dba4d7"
}
}
Only allow a systems group renaming.
groupId required | string SystemsGroup unique identifier |
name required | string Group name describing a private network of pabx |
{- "name": "string"
}
{- "data": {
- "name": "ALE_SP Malaga",
- "systems": [
- {
- "systemId": "57e8c879b8be68670b2a6ca8",
- "pbxId": "pbxagent_07f9596a5cc34dde8a37dd3200566a10"
}, - {
- "systemId": "57e8ced2212d6d09123ec9d4",
- "pbxId": "pbxagent_7f521f657b9042eba12fbf896e60e72b"
}
], - "companies": [
- "57e2afbb467af7d11dc0eb57"
], - "id": "57ecdc63fa5aac7050dba4d7"
}
}
Get all systems groups.
A systems group is a logical set of systems (pabx), sharing the same dial plan and linked through a private network.
Systems belonging to this group may either belonging to the same Site, or belonging from several sites under the same company.
According with api permission, the response is not the same.
- Superadmin and Support see all SystemsGroups
- bp_admin, organization_admin and company_admin may see several SystemsGroups, but some systems could be hidden for company_admin.
- site_admin only see SystemsGroups hosting some systems of his site, but some systems could be hidden as they are hosted by another site.
name | string Allows to filter systems groups list on the name provided in this option. The filtering is case insensitive and on each word start match: all systems groups containing the provided name value will be returned (whatever the position of the word(s) matching). If several words are given (space separator), only the system groups matching all words will be returned. Ex:
|
format | string Default: "small" Enum: "small" "medium" "full" Should allow to retrieve more or less group details in response. But in fact whatever the choice:
|
limit | number Default: 100 Allow to specify the number of companies to retrieve. |
offset | number Allow to specify the position of first company to retrieve (first company if not specified). Warning: if offset > total, no results are returned. |
sortField | string Default: "name" Sort company list based on the given field. |
sortOrder | number Default: 1 Enum: -1 1 Specify order when sorting company list. |
accept required | string application/json |
{- "data": [
- {
- "name": "ALE_FR Illkirch",
- "systems": [
- {
- "systemId": "57e518750d0794392aa7daec",
- "pbxId": "pbxagent_3adb4a57e52f49f6a29b95372aed4751"
}, - {
- "systemId": "57e518890d0794392aa7daed",
- "pbxId": "pbxagent_9f8cbe9d67e4445f960378cfa17cc60c"
}, - {
- "systemId": "57ea24bd5672bd5622a8354a",
- "pbxId": "pbxagent_0cbe28aa301d40d08b1c9eb264cc7dc8"
}
], - "companies": [
- "57e2b30c89a091b21e843924"
], - "id": "57e55ba1aa2b014d715f9c8f"
}, - {
- "name": "ALE_SP Malaga",
- "systems": [
- {
- "systemId": "57e8c879b8be68670b2a6ca8",
- "pbxId": "pbxagent_07f9596a5cc34dde8a37dd3200566a10"
}, - {
- "systemId": "57e8ced2212d6d09123ec9d4",
- "pbxId": "pbxagent_7f521f657b9042eba12fbf896e60e72b"
}
], - "companies": [
- "57e2afbb467af7d11dc0eb57"
], - "id": "57ecdc63fa5aac7050dba4d7"
}
], - "limit": 100,
- "offset": 0,
- "total": 2
}
A systems group is a logical set of systems (pabx), sharing the same dial plan and linked through a private network.
Systems belonging to this group may either belonging to the same Site, or belonging from several sites under the same company.
Waiting for a real use case, it is possible to federate inside the same group, systems belonging to companies under the same organization.
It's not possible to include multi-tenant systems (isCentrex = true) inside a systems group.
Specific feature: Sharing a system between several companies
Since 1.47.0 release, configuring companies sharing a multi-tenant system is possible.
An OXE or third_party system can be multi-company.
A multi-tenant system, so called CENTREX, allows sharing a call-server between several entities.
For us an entity is a company with the flag isCentrex=true.
A multi-tenant system can't be set inside a systems group. That does not make sense.
companies required | Array of strings List of Company unique identifier. A least one Id. This field is wanted to classify SystemsGroups inside the rainbow infrastructure. |
name required | string Group name describing a private network of pabx |
systems | Array of strings List of Systems unique identifier. May be empty. Several checks were done. Possible error cases are: (404 not found), (409 conflict - Systems already belongs to another group), (403 forbidden - one of the systems mustn't be administrated by the administrator) |
{- "companies": [
- "string"
], - "name": "string",
- "systems": [
- "string"
]
}
{- "data": {
- "name": "ALE_SP Malaga",
- "systems": [
- {
- "systemId": "57e8c879b8be68670b2a6ca8",
- "pbxId": "pbxagent_07f9596a5cc34dde8a37dd3200566a10"
}, - {
- "systemId": "57e8ced2212d6d09123ec9d4",
- "pbxId": "pbxagent_7f521f657b9042eba12fbf896e60e72b"
}
], - "companies": [
- "57e2afbb467af7d11dc0eb57"
], - "id": "57ecdc63fa5aac7050dba4d7"
}
}
This API allows to list all phoneNumbers associated to a given system (pbx).
Users with superadmin
or support
role can retrieve phoneNumbers from any system.
bp_admin
can only retrieve phoneNumbers linked to systems of End Customer companies for which
their bp_admin's company is the BP company.
Users with admin
role (and not having superadmin nor support role) can only retrieve phoneNumbers of systems that they manage.
In a Multi-Layer organization that describes a hierarchy including ORGANIZATIONS/COMPANIES/SITES/SYSTEMS,
an admin role of a upper layer is allowed to see systems within their's reach.
Notes:
systemId
field returned in response corresponds to portal's internal mongoDB id, while pbxId
is the id handled by PCG. shortNumber
: allow to retrieve only phoneNumbers starting by the provided value.
internalNumber
: allow to retrieve only phoneNumbers starting by the provided value.
pbxUserId
: allow to retrieve only phoneNumbers having the provided pbxUserId value.
isMonitored
: allow to retrieve only phoneNumbers for which monitoring in Rainbow application is activated (true) or deactivated (false).
isAssignedToUser
: allow to retrieve only phoneNumbers being associated (true) or not (false) to a Rainbow user.
userId
: allow to retrieve only phoneNumbers being associated to the requested Rainbow user id.
companyPrefix
: allow to retrieve only phoneNumbers having the provided companyPrefix value. See below 'Sharing a system between several companies'
systemId required | string System unique identifier (like 569ce8c8f9336c471b98eda1) |
shortNumber | string Allow to filter phoneNumbers list on phoneNumbers having shortNumber field starting with the provided value. |
internalNumber | string Allow to filter phoneNumbers list on phoneNumbers having internalNumber field starting with the provided value. |
pbxUserId | string Allow to filter phoneNumbers list on phoneNumbers having pbxUserId field equal to provided value. |
companyPrefix | string When the system is a centrex server (multi-tenant OXE or third_party), allow to filter phoneNumbers list on companyPrefix.
|
isMonitored | boolean Enum: "true" "false" Allow to filter phoneNumbers list on phoneNumbers having isMonitored field equal to provided value. |
name | string Allow to filter phoneNumbers list on phoneNumbers having firstName or lastName starting with the provided value. |
deviceName | string Allow to filter phoneNumbers list on phoneNumbers having deviceName field equal to provided value. |
isAssignedToUser | boolean Enum: "true" "false" Allow to filter phoneNumbers list on phoneNumbers being assigned or not to a Rainbow user, according to provided value.
|
format | string Default: "small" Enum: "small" "medium" "full" Allows to retrieve more or less phone numbers details in response.
|
limit | number Default: 100 Allow to specify the number of phone numbers to retrieve. |
offset | number Allow to specify the position of first phone number to retrieve (first phone number if not specified). Warning: if offset > total, no results are returned. |
sortField | string Default: "shortNumber" Sort phone numbers list based on the given field. |
sortOrder | number Default: 1 Enum: -1 1 Specify order when sorting phone numbers list. |
accept required | string application/json |
{- "data": [
- {
- "id": "5790fd2256b61a4d865839fe",
- "shortNumber": "1001",
- "internalNumber": "20001",
- "voiceMailNumber": "9999",
- "number": "0300001001",
- "numberE164": "+33300001001",
- "pbxUserId": "1",
- "country": "FRA",
- "type": "work",
- "deviceType": "landline",
- "isFromSystem": true,
- "pbxId": "pbxagent_315e5b2dbf8746fd93660df375933c23",
- "systemId": "575beb22ccb329a11a1cef6c",
- "isMonitored": true,
- "userId": "57960e4fa1ab69c4243415b1",
- "jid_im": "82fc7375cf34403a9c711ae7eda0929f@openrainbow.com",
- "jid_tel": "tel_82fc7375cf34403a9c711ae7eda0929f@openrainbow.com",
- "jid_password": "fd6806bca74942598f57c288b0d50baa",
- "rainbowNumber": "10548326483402543",
- "isNomadic": false,
- "isVoipNomadic": false,
- "isNomadicModeInitialized": false,
- "userType": "CCD agent"
}, - {
- "id": "5790fd2256b61a4d865839ff",
- "shortNumber": "1002",
- "internalNumber": "20002",
- "voiceMailNumber": "9999",
- "number": "0300001002",
- "numberE164": "+33300001002",
- "pbxUserId": "2",
- "country": "FRA",
- "type": "work",
- "deviceType": "landline",
- "isFromSystem": true,
- "pbxId": "pbxagent_315e5b2dbf8746fd93660df375933c23",
- "systemId": "575beb22ccb329a11a1cef6c",
- "isMonitored": false,
- "userId": null,
- "jid_im": null,
- "jid_tel": null,
- "jid_password": null,
- "rainbowNumber": null
}
], - "limit": 100,
- "offset": 0,
- "total": 2
}
This API allows to retrieve a specific phoneNumber associated to a given system (pbx).
Users with superadmin
or support
role can retrieve phoneNumbers from any system.
bp_admin
can only retrieve phoneNumbers linked to systems of End Customer companies for which
their bp_admin's company is the BP company.
Users with admin
role (and not having superadmin nor support role) can only retrieve phoneNumbers of systems that they manage.
In a Multi-Layer organization that describes a hierarchy including ORGANIZATIONS/COMPANIES/SITES/SYSTEMS,
an admin role of a upper layer is allowed to see systems within their's reach.
Example: GET https://openrainbow.com/api/rainbow/admin/v1.0/systems/569d0ef3ef7816921f7e94fa/phoneNumbers/5790fd2256b61a4d865839fe
Specific feature: Sharing a system between several companies
Since 1.47.0 release, configuring companies sharing a multi-tenant system is possible.
An OXE or third_party system can be multi-company.
A multi-tenant system, so called CENTREX, allows sharing a call-server between several entities.
When a company-admin or a site-admin wants to get one of the directoryNumber of this system we have to check if the "tenantCallNumber" of his company matches with "companyPrefix".
Else an HTTP error 404 Not Found is thrown.
systemId required | string System unique identifier (like 569ce8c8f9336c471b98eda1) |
phoneNumberId required | string PhoneNumber unique identifier (like 569ce8c8f9336c471b98eda1) |
accept required | string application/json |
{- "data": {
- "id": "5790fd2256b61a4d865839fe",
- "shortNumber": "1001",
- "internalNumber": "20001",
- "voiceMailNumber": "9999",
- "number": "0300001001",
- "numberE164": "+33300001001",
- "pbxUserId": "1",
- "country": "FRA",
- "type": "work",
- "deviceType": "landline",
- "isFromSystem": true,
- "pbxId": "pbxagent_315e5b2dbf8746fd93660df375933c23",
- "systemId": "575beb22ccb329a11a1cef6c",
- "isMonitored": false,
- "userId": "57960e4fa1ab69c4243415b1",
- "jid_im": "82fc7375cf34403a9c711ae7eda0929f@openrainbow.com",
- "jid_tel": "tel_82fc7375cf34403a9c711ae7eda0929f@openrainbow.com",
- "jid_password": "fd6806bca74942598f57c288b0d50baa"
}
}
This API allows to update a phone number for a given system (pbx).
It can be used to link a system phoneNumber to a Rainbow user by setting userId
parameter.
If userId
parameter is provided, jid_im
, jid_tel
, jid_password
and rainbowNumber
of the corresponding
user are automatically set in phoneNumber.
It can also be used to enable monitoring of this phoneNumber by PCG (set isMonitored
parameter to true).
Note that pbxId
, systemId
, shortNumber
and pbxUserId
can't be modified.
When the phoneNumber is updated with this API, PCG is notified on its corresponding JID pbxpcg with the following XMPP iq:
<iq id="8413b42e-563c-4437-9a53-06f638b5ab69_0"
from="pcloud@openrainbow.com/172440802160413612281463752830017532"
to="pbxpcg_7ca2d0aefb024c949303b508fcecdad2@openrainbow.com"
xmlns="jabber:client">
<config xmlns="urn:xmpp:pbxagent:config:1">
<user action="update"/>
<shortNumber>1001</shortNumber>
<internalNumber>20001</internalNumber>
<voiceMailNumber>9999</voiceMailNumber>
<numberE164>+33300001001</numberE164>
<isMonitored>false</isMonitored>
<userId>57960e4fa1ab69c4243415b1</userId>
<jid_im>82fc7375cf34403a9c711ae7eda0929f@openrainbow.com</jid_im>
<jid_tel>tel_82fc7375cf34403a9c711ae7eda0929f@openrainbow.com</jid_tel>
<jid_password>fd6806bca74942598f57c288b0d50baa</jid_password>
</config>
</iq>
The API waits that PCG has taken into account the phoneNumber update before processing the update in database and sending the response to client.
Rights depending on logged in user's roles:
superadmin
role can update phoneNumbers objects of any system.bp_admin
can only update phoneNumbers linked to systems of End Customer companies for which their bp_admin's
company is the BP company.admin
role (and not having superadmin) can only update phoneNumbers objects on systems that they manage.
In a Multi-Layer organization that describes a hierarchy including ORGANIZATIONS/COMPANIES/SITES/SYSTEMS,
an admin role of a upper layer is allowed to see systems within their's reach.Sharing a system between several companies:
Since 1.47.0 release, configuring companies sharing a multi-tenant system is possible.
An OXE or third_party system can be multi-company. A multi-tenant system, so called CENTREX, allows sharing a call-server between several entities.
For us an entity is a company with the flag isCentrex
=true.
It's not possible to update the internalNumber
for a phone number supplied by this kind of system.
The specific error "internalNumber 3000 is readonly because it belongs to a multi-tenant system","errorDetailsCode": 409553 is thrown.
Example: PUT https://openrainbow.com/api/rainbow/admin/v1.0/systems/569d0ef3ef7816921f7e94fa/phoneNumbers/5790fd2256b61a4d865839fe
systemId required | string System unique identifier (like 569ce8c8f9336c471b98eda1) |
phoneNumberId required | string PhoneNumber unique identifier (like 569ce8c8f9336c471b98eda1) |
deviceName | string device name |
deviceType | string Default: "landline" Enum: "landline" "mobile" "fax" "other" Phone number device type |
firstName | string firstname |
internalNumber | string Internal phone number. Usable within a PBX group. By default, it is equal to |
isMonitored | boolean Specifies if the PhoneNumber is monitored by agent (i.e. telephony events are notified to Rainbow user through XMPP) |
isVisibleByOthers | boolean Allow user to choose if the phone number is visible by other users or not.
|
lastName | string lastname |
number | string Raw phone number (DDI) Note: If numberE164 can't be computed from number and computed country fields, an error 400 is returned (ex: wrong phone number, phone number not matching country code, ...) |
type | string Default: "work" Enum: "home" "work" "other" Phone number type |
userId | string Rainbow userId to which is linked the phoneNumber |
{- "deviceName": "string",
- "deviceType": "landline",
- "firstName": "string",
- "internalNumber": "string",
- "isMonitored": true,
- "isVisibleByOthers": true,
- "lastName": "string",
- "number": "string",
- "type": "work",
- "userId": "string"
}
{- "data": {
- "id": "5790fd2256b61a4d865839fe",
- "shortNumber": "1001",
- "internalNumber": "20001",
- "voiceMailNumber": "9999",
- "number": "0300001001",
- "numberE164": "+33300001001",
- "pbxUserId": "1",
- "country": "FRA",
- "type": "work",
- "deviceType": "landline",
- "isFromSystem": true,
- "pbxId": "pbxagent_315e5b2dbf8746fd93660df375933c23",
- "systemId": "575beb22ccb329a11a1cef6c",
- "isMonitored": false,
- "userId": "57960e4fa1ab69c4243415b1",
- "jid_im": "82fc7375cf34403a9c711ae7eda0929f@openrainbow.com",
- "jid_tel": "tel_82fc7375cf34403a9c711ae7eda0929f@openrainbow.com",
- "jid_password": "fd6806bca74942598f57c288b0d50baa"
}
}
It would be necessary to reset the password used by the CCCA to join rainbow infrastructure.
Among system data fields, jid_pbxagent and jid_pbxagent_password are used by the CCCA to try an authentication.
The new API :
systemId required | string System unique identifier (like 569ce8c8f9336c471b98eda1) |
{- "data": {
- "name": "node_alpha_oxe_R11 demo",
- "country": "FRA",
- "pbxId": "pbxagent_db489778882d41d6a9d69e2f0d0170b5",
- "jid_pbxagent": "pbxagent_db489778882d41d6a9d69e2f0d0170b5@francky-all-in-one-dev-1.opentouch.cloud",
- "jid_pbxagent_password": "6763",
- "jid_pbxpcg": "pbxpcg_806f9c73c4be40a191f5591be778e9f3@francky-all-in-one-dev-1.opentouch.cloud",
- "jid_pbxpcg_password": "af9b871bc5204184bf84d4bc9aabd1bf",
- "version": "9.2",
- "serverPingTimeout": 120,
- "pbxMainBundlePrefix": [
- "0"
], - "usePbxMainBundlePrefix": true,
- "pbxNumberingTranslator": [
- {
- "regexpMatch": "^218",
- "regexpReplace": "039067",
- "description": "Numbers 218xxx => 039067xxx"
}, - {
- "regexpMatch": "^((0..9){1,5})$",
- "regexpReplace": "$1",
- "description": "Numbers of five digits are internal"
}, - {
- "regexpMatch": "^3699$",
- "regexpReplace": "03699",
- "description": "Numbers 3699xxx => 03699xxx"
}, - {
- "regexpMatch": "^18$",
- "regexpReplace": "",
- "description": "18 is forbidden"
}
], - "pbxNationalPrefix": "0",
- "pbxInternationalPrefix": "00",
- "statusUpdatedDate": "2016-12-14T15:03:25.858Z",
- "creationDate": "2016-12-14T15:03:25.858Z",
- "status": "created",
- "hasMediaPillar": false,
- "siteId": [
- "57585233d3c3e3e5095250ba"
], - "searchResultOrder": [
- "RAINBOW",
- "LDAP",
- "PBX"
], - "type": "oxe",
- "id": "58515f3df5eb9225650b64d8"
}
}
This API allows administrator to delete a given system.
superadmin
can delete systems linked to all sites existing in Rainbow.
bp_admin
can only delete systems linked to sites of End Customer companies for which
their bp_admin's company is the BP company.
organization_admin
can only delete systems linked to sites of companies under their organisation.
company_admin
can only delete systems linked to sites of their company.
site_admin
can only delete the systems linked to the site they administrate.
Warning: all configuration data and phoneNumbers associated to this system will be deleted, and
if these phoneNumbers were associated to a Rainbow user, it won't be anymore.
jid_pbxagent and jid_pbxpcg XMPP accounts will also be deleted from XMPP.
PCG is notified of the system deletion with the following XMPP message.
Once PCG has acknowledged the IQ, the system is deleted from mongoDB, jid_pbxagent and jid_pbxpcg XMPP accounts are deleted from XMPP, and all phoneNumbers
objects linked to this system are deleted (therefore PCG don't have to call delete for all deleted system's phoneNumbers).
<iq id="8413b42e-563c-4437-9a53-06f638b5ab69_0"
from="pcloud@openrainbow.com/172440802160413612281463752830017532"
to="pbxpcg_7ca2d0aefb024c949303b508fcecdad2@openrainbow.com/pbxpcg"
xmlns="jabber:client">
<config xmlns="urn:xmpp:pbxagent:config:1">
<pbx action="delete">
</config>
</iq>
systemId required | string System unique identifier (like 569ce8c8f9336c471b98eda1) |
accept required | string application/json |
{- "status": "Systems 569d0ef3ef7816921f7e94fa successfully deleted",
- "data": [ ]
}
This API allows administrator to retrieve a given system.
superadmin
and support
can get all systems existing in Rainbow.
bp_admin
can only get systems linked to sites of End Customer companies for which
their bp_admin's company is the BP company.
organization_admin
can only get systems linked to sites of companies under their organisation.
company_admin
can only get systems linked to sites of their company.
site_admin
can only get the systems linked to the site they administrate.
Example: GET https://openrainbow.com/api/rainbow/admin/v1.0/systems/569d0ef3ef7816921f7e94fa
systemId required | string System unique identifier (like 569ce8c8f9336c471b98eda1) |
connectionHistory | boolean Allows to return connection history |
accept required | string application/json |
{- "data": {
- "name": "node_alpha_oxe_R11 demo",
- "country": "FRA",
- "pbxId": "pbxagent_db489778882d41d6a9d69e2f0d0170b5",
- "jid_pbxagent": "pbxagent_db489778882d41d6a9d69e2f0d0170b5@francky-all-in-one-dev-1.opentouch.cloud",
- "jid_pbxagent_password": "6763",
- "jid_pbxpcg": "pbxpcg_806f9c73c4be40a191f5591be778e9f3@francky-all-in-one-dev-1.opentouch.cloud",
- "jid_pbxpcg_password": "af9b871bc5204184bf84d4bc9aabd1bf",
- "version": "9.2",
- "serverPingTimeout": 120,
- "pbxMainBundlePrefix": [
- "0"
], - "usePbxMainBundlePrefix": true,
- "pbxNumberingTranslator": [
- {
- "regexpMatch": "^218",
- "regexpReplace": "039067",
- "description": "Numbers 218xxx => 039067xxx"
}, - {
- "regexpMatch": "^((0..9){1,5})$",
- "regexpReplace": "$1",
- "description": "Numbers of five digits are internal"
}, - {
- "regexpMatch": "^3699$",
- "regexpReplace": "03699",
- "description": "Numbers 3699xxx => 03699xxx"
}, - {
- "regexpMatch": "^18$",
- "regexpReplace": "",
- "description": "18 is forbidden"
}
], - "pbxNationalPrefix": "0",
- "pbxInternationalPrefix": "00",
- "statusUpdatedDate": "2016-12-14T15:03:25.858Z",
- "creationDate": "2016-12-14T15:03:25.858Z",
- "status": "activating",
- "hasMediaPillar": false,
- "siteId": [
- "57585233d3c3e3e5095250ba"
], - "searchResultOrder": [
- "RAINBOW",
- "LDAP",
- "PBX"
], - "type": "oxe",
- "activatingTransactionId": "d182c8e122504350ab36008be1552518",
- "jid_pbxagent_password_activating": "9e5c326b10b54fcdbf50caf1951f17b7",
- "id": "58515f3df5eb9225650b64d8",
- "connectionHistory": [
- {
- "eventType": "LOGOUT",
- "eventDate": "2022-04-04T13:08:00.885Z"
}, - {
- "eventType": "LOGIN",
- "eventDate": "2022-04-04T13:08:05.940Z"
}
]
}
}
This API allows administrator to update a given system.
superadmin
can update systems linked to all sites existing in Rainbow.
bp_admin
can only update systems linked to sites of End Customer companies for which
their bp_admin's company is the BP company.
organization_admin
can only update systems linked to sites of companies under their organisation.
company_admin
can only update systems linked to sites of their company.
site_admin
can only update the systems linked to the site they administrate.
When the system is updated, PCG is notified on its corresponding JID pbxpcg with the following XMPP message:
<message id="8413b42e-563c-4437-9a53-06f638b5ab69_0"
from="pcloud@openrainbow.com/172440802160413612281463752830017532"
to="pbxpcg_7ca2d0aefb024c949303b508fcecdad2@openrainbow.com"
xmlns="jabber:client">
<config xmlns="urn:xmpp:pbxagent:config:1"/>
<pbx action="update">
</config>
</message>
Don't use this api to move a isCentrex
system to another site.
Use instead DELETE /api/rainbow/admin/v1.0/sites/:siteId/systems then
POST /api/rainbow/admin/v1.0/sites/:siteId/systems
isShared
setting can be updated with the following restrictions:
systemId required | string System unique identifier (like 569ce8c8f9336c471b98eda1) |
bpId | string Link the system to the corresponding Business partner company.
|
country | string 3 characters System country (ISO 3166-1 alpha3 format) |
isShared | boolean Indicates if the system is multi-company (shared across multiple companies).
|
name | string System name/description |
pbxInternationalPrefix | string [ 0 .. 32 ] characters International prefix |
pbxMainBundlePrefix | string CCA config data |
pbxNationalPrefix | string [ 0 .. 32 ] characters National prefix |
Array of objects (putSystemsPbxNumberingTranslator) List of several regular expressions used to validate internal or external phone numbers. Up to 100 regular expressions are allowed. (64 max char by regexp). To reset the list, use [] | |
searchResultOrder | Array of strings Items Enum: "RAINBOW" "LDAP" "PBX" List of directory types to order search results:
|
serverPingTimeout | string Default: "120" CCA config data |
siteId | string Site from which the system is linked with. |
type | string Enum: "oxo" "oxe" "third" "party" "undefined" CCA type. |
usePbxMainBundlePrefix | boolean Whether or not pbxMainBundlePrefix is used by PCG |
version | string CCA software version |
{- "bpId": "string",
- "country": "str",
- "isShared": true,
- "name": "string",
- "pbxInternationalPrefix": "string",
- "pbxMainBundlePrefix": "string",
- "pbxNationalPrefix": "string",
- "pbxNumberingTranslator": [
- {
- "description": "string",
- "regexpMatch": "string",
- "regexpReplace": "string"
}
], - "searchResultOrder": [
- "RAINBOW"
], - "serverPingTimeout": "120",
- "siteId": "string",
- "type": "oxo",
- "usePbxMainBundlePrefix": true,
- "version": "string"
}
{- "data": {
- "name": "node_alpha_oxe_R11 demo",
- "country": "FRA",
- "pbxId": "pbxagent_db489778882d41d6a9d69e2f0d0170b5",
- "jid_pbxagent": "pbxagent_db489778882d41d6a9d69e2f0d0170b5@francky-all-in-one-dev-1.opentouch.cloud",
- "jid_pbxagent_password": "1113ba19",
- "jid_pbxpcg": "pbxpcg_806f9c73c4be40a191f5591be778e9f3@francky-all-in-one-dev-1.opentouch.cloud",
- "jid_pbxpcg_password": "af9b871bc5204184bf84d4bc9aabd1bf",
- "version": "9.2",
- "serverPingTimeout": 120,
- "pbxMainBundlePrefix": [
- "0"
], - "pbxNumberingTranslator": [ ],
- "usePbxMainBundlePrefix": true,
- "pbxNationalPrefix": "0",
- "pbxInternationalPrefix": "00",
- "statusUpdatedDate": "2016-12-14T15:03:25.858Z",
- "creationDate": "2016-12-14T15:03:25.858Z",
- "status": "activated",
- "hasMediaPillar": false,
- "siteId": [
- "57585233d3c3e3e5095250ba"
], - "searchResultOrder": [
- "RAINBOW",
- "LDAP",
- "PBX"
], - "type": "oxe",
- "activatingTransactionId": "",
- "jid_pbxagent_password_activating": "",
- "id": "58515f3df5eb9225650b64d8"
}
}
This API allows administrator to retrieve systems they can administrate.
superadmin
and support
get all systems existing in Rainbow.
bp_admin
only get systems linked to sites of End Customer companies for which
their bp_admin's company is the BP company.
organization_admin
only get systems linked to sites of companies under their organisation.
company_admin
only get systems linked to sites of their company.
site_admin
only get the systems linked to the site they administrate.
Example: GET https://openrainbow.com/api/rainbow/admin/v1.0/systems?type=oxe&status=activated&format=small&limit=100&offset=0&sortField=name&sortOrder=-1
Specific feature: Sharing a system between several companies
isCentrex=true
on the system.
This flag is set during the system creation and can't be changed (the system would have to be deleted first and then re-created without the flag isCentrex).
isCentrex=true
linked to a company with the flag isCentrex=true
(the company and site must both have the flag isCentrex=true to be linked to a system with isCentrex=true).
isCentrex
.
isShared=true
on the system.
This flag is set during the system creation and can't be changed (the system would have to be deleted first and then re-created without the flag isShared).
isShared
.
isSharedOrCentrex
.connectionHistory | boolean Allows to return connection history |
format | string Default: "small" Enum: "small" "medium" "full" Allows to retrieve more or less system details in response.
|
limit | number Default: 100 Allow to specify the number of systems to retrieve. |
offset | number Allow to specify the position of first system to retrieve (first site if not specified). Warning: if offset > total, no results are returned. |
sortField | string Default: "pbxId" Sort system list based on the given field. |
sortOrder | number Default: 1 Enum: -1 1 Specify order when sorting pbx list. |
name | string Allows to filter systems list on field name.
|
type | string Enum: "oxo" "oxe" "third_party" "undefined" Allows to filter systems list on the provided type(s) |
status | string Enum: "created" "activating" "activated" "terminated" Allows to filter systems list on the provided status(es) |
siteId | string Allows to filter systems list on the siteIds provided in this option. |
companyId | string Allows to filter systems list on the siteIds linked to companyIds provided in this option. |
bpId | string Allows to filter systems list on the bpIds provided in this option.
|
isShared | boolean Allows to filter systems list by the status isShared. |
isCentrex | boolean Allows to filter systems list by the status isCentrex. |
isSharedOrCentrex | boolean Allows to filter systems list having the requested flag isShared or isCentrex.
|
isOxoManaged | boolean Allows to filter systems list by the setting isOxoManaged. |
fromCreationDate | string <date-time> Allows to filter systems list from provided date (ISO 8601 format). |
toCreationDate | string <date-time> Allows to filter systems list until provided date (ISO 8601 format). |
accept required | string application/json |
{- "data": [
- {
- "bpId": "null",
- "connectionHistory": [
- {
- "eventDate": "2019-08-24T14:15:22Z",
- "eventType": "string"
}
], - "country": "string",
- "creationDate": "2019-08-24T14:15:22Z",
- "hasMediaPillar": true,
- "id": "string",
- "isCentrex": true,
- "isOxoManaged": true,
- "isShared": true,
- "jid_pbxagent": "string",
- "jid_pbxagent_password": "string",
- "jid_pbxpcg": "string",
- "jid_pbxpcg_password": "string",
- "name": "string",
- "pbxId": "string",
- "pbxInternationalPrefix": "string",
- "pbxMainBundlePrefix": [
- "string"
], - "pbxNationalPrefix": "string",
- "pbxNumberingTranslator": [
- {
- "description": "string",
- "regexpMatch": "string",
- "regexpReplace": "string"
}
], - "searchResultOrder": [
- "RAINBOW"
], - "serverPingTimeout": "string",
- "siteId": [
- "string"
], - "status": "created",
- "statusUpdatedDate": "2019-08-24T14:15:22Z",
- "type": "oxo",
- "version": "string"
}
]
}
This API allows administrator to create a system.
A system hosts the CCA (Call Control Agent) configuration.
superadmin
can create systems linked to all sites existing in Rainbow.
bp_admin
can only create systems linked to sites of End Customer companies for which
their bp_admin's company is the BP company.
organization_admin
can only create systems linked to sites of companies under their organisation.
company_admin
can only create systems linked to sites of their company.
site_admin
can only create the systems linked to the site they administrate.
Specific feature: Sharing a system between several companies
isCentrex=true
on the system.
This flag is set during the system creation and can't be changed (the system would have to be deleted first and then re-created without the flag isCentrex).
isCentrex=true
linked to a company with the flag isCentrex=true
(the company and site must both have the flag isCentrex=true to be linked to a system with isCentrex=true).
isCentrex
.
isShared=true
on the system.
isShared
.
isSharedOrCentrex
.activationCode | string [ 1 .. 256 ] characters Currently, the activation code is a random 4 digits value (between 1000 and 9999) generated by the admin portal. With activationCode field, it's possible to set a custom value. In the Http success response the value is available in the 'jid_pbxagent_password' field. activationCode is only taken in account during a system creation. |
bpId | string Link the system to the corresponding Business partner company.
|
country required | string 3 characters System country (ISO 3166-1 alpha3 format) |
isCentrex | boolean Default: "false" Indicates if the system is one tenant or multi-tenant (OXE - OTEC-S or third_party).
|
isOxoManaged | boolean Indicates if the system is an OXO managed.
|
isShared | boolean Default: "false" Indicates if the system is multi-company (shared across multiple companies).
|
name required | string System name/description |
pbxId | string CCA (Call Control Agent) hosted by a System needs an account to XMPP. This is the login to access to XMPP server. It should be given during system creation or automatically generated. |
pbxInternationalPrefix | string [ 0 .. 32 ] characters International prefix |
pbxMainBundlePrefix | Array of strings CCA config data: array of String |
pbxNationalPrefix | string [ 0 .. 32 ] characters National prefix |
Array of objects (postSystemsPbxNumberingTranslator) List of several regular expressions used to validate internal or external phone numbers. Up to 100 regular expressions are allowed. (64 max char by regexp). To reset the list, use [] | |
searchResultOrder | Array of strings Items Enum: "RAINBOW" "LDAP" "PBX" List of directory types to order search results:
|
serverPingTimeout | string Default: "120" CCA config data |
siteId required | string Site from which the system is linked with. |
type required | string Enum: "oxo" "oxe" "third" "party" "undefined" CCA type. |
usePbxMainBundlePrefix | boolean Whether or not pbxMainBundlePrefix is used by PCG |
version | string CCA software version |
{- "activationCode": "string",
- "bpId": "string",
- "country": "str",
- "isCentrex": "false",
- "isOxoManaged": true,
- "isShared": "false",
- "name": "string",
- "pbxId": "string",
- "pbxInternationalPrefix": "string",
- "pbxMainBundlePrefix": [
- "string"
], - "pbxNationalPrefix": "string",
- "pbxNumberingTranslator": [
- {
- "description": "string",
- "regexpMatch": "string",
- "regexpReplace": "string"
}
], - "searchResultOrder": [
- "RAINBOW"
], - "serverPingTimeout": "120",
- "siteId": "string",
- "type": "oxo",
- "usePbxMainBundlePrefix": true,
- "version": "string"
}
{- "data": {
- "name": "OXE_RB_MULTI_TENANT_BPDR_01",
- "country": "FRA",
- "pbxId": "PBXc2ae-3590-f08b-4c6c-bccf-4e99-478a-17e4",
- "jid_pbxagent": "PBXc2ae-3590-f08b-4c6c-bccf-4e99-478a-17e4@aio-pcg-all-in-one-dev-1.opentouch.cloud",
- "jid_pbxagent_password": "4645",
- "jid_pbxpcg": "pbxpcg_66950b0aefe840cd9ef2adcd8ed561ef@aio-pcg-all-in-one-dev-1.opentouch.cloud",
- "jid_pbxpcg_password": "6b45a2f50e7c45b8aaaf4a153f38e7f2",
- "searchResultOrder": [ ],
- "version": "",
- "serverPingTimeout": 120,
- "pbxNumberingTranslator": [ ],
- "usePbxMainBundlePrefix": true,
- "pbxMainBundlePrefix": [ ],
- "bpId": "59f061085fbc10b394aab3ff",
- "isCentrex": true,
- "isShared": false,
- "statusUpdatedDate": "2017-12-06T18:36:17.904Z",
- "creationDate": "2017-12-06T18:36:17.904Z",
- "status": "created",
- "hasMediaPillar": false,
- "siteId": [ ],
- "type": "oxe",
- "id": "5a2838a11f8b207210326e60"
}
}
This API allows to retrieve the list of countries supported by Rainbow Server for systems country field.
{- "data": [
- {
- "isoAlpha3Code": "ABW",
- "isoAlpha2Code": "AW",
- "fullname": "Aruba"
}, - {
- "isoAlpha3Code": "AFG",
- "isoAlpha2Code": "AF",
- "fullname": "Afghanistan"
}, - {
- "isoAlpha3Code": "ZWE",
- "isoAlpha2Code": "ZW",
- "fullname": "Zimbabwe"
}
]
}
This API allows administrator to retrieve a given system from its pbxId.
superadmin
and support
can get all systems existing in Rainbow.
bp_admin
can only get systems linked to sites of End Customer companies for which
their bp_admin's company is the BP company.
organization_admin
can only get systems linked to sites of companies under their organisation.
company_admin
can only get systems linked to sites of their company.
site_admin
can only get the systems linked to the site they administrate.
pbxId required | string Pbx unique identifier known by PCG |
connectionHistory | boolean Allows to return connection history |
accept required | string application/json |
{- "data": {
- "name": "node_alpha_oxe_R11 demo",
- "country": "FRA",
- "pbxId": "pbxagent_db489778882d41d6a9d69e2f0d0170b5",
- "jid_pbxagent": "pbxagent_db489778882d41d6a9d69e2f0d0170b5@francky-all-in-one-dev-1.opentouch.cloud",
- "jid_pbxagent_password": "6763",
- "jid_pbxpcg": "pbxpcg_806f9c73c4be40a191f5591be778e9f3@francky-all-in-one-dev-1.opentouch.cloud",
- "jid_pbxpcg_password": "af9b871bc5204184bf84d4bc9aabd1bf",
- "version": "9.2",
- "serverPingTimeout": 120,
- "pbxMainBundlePrefix": [
- "0"
], - "usePbxMainBundlePrefix": true,
- "pbxNumberingTranslator": [
- {
- "regexpMatch": "^218",
- "regexpReplace": "039067",
- "description": "Numbers 218xxx => 039067xxx"
}, - {
- "regexpMatch": "^((0..9){1,5})$",
- "regexpReplace": "$1",
- "description": "Numbers of five digits are internal"
}, - {
- "regexpMatch": "^3699$",
- "regexpReplace": "03699",
- "description": "Numbers 3699xxx => 03699xxx"
}, - {
- "regexpMatch": "^18$",
- "regexpReplace": "",
- "description": "18 is forbidden"
}
], - "pbxNationalPrefix": "0",
- "pbxInternationalPrefix": "00",
- "statusUpdatedDate": "2016-12-14T15:03:25.858Z",
- "creationDate": "2016-12-14T15:03:25.858Z",
- "status": "activating",
- "hasMediaPillar": false,
- "siteId": [
- "57585233d3c3e3e5095250ba"
], - "searchResultOrder": [
- "RAINBOW",
- "LDAP",
- "PBX"
], - "type": "oxe",
- "activatingTransactionId": "d182c8e122504350ab36008be1552518",
- "jid_pbxagent_password_activating": "9e5c326b10b54fcdbf50caf1951f17b7",
- "id": "58515f3df5eb9225650b64d8",
- "connectionHistory": [
- {
- "eventType": "LOGOUT",
- "eventDate": "2022-04-04T13:08:00.885Z"
}, - {
- "eventType": "LOGIN",
- "eventDate": "2022-04-04T13:08:05.940Z"
}
]
}
}
This API can be used to delete a user.
BP Admin and BP Finance users can only delete users being in a company linked to their BP company.
Admin users can only delete users being in their own company. (superadmin, organization_admin, company_admin)
Depending current user initialization, the behaviour to follow may change
<message id="8413b42e-563c-4437-9a53-06f638b5ab69_0" type="management"
from="pcloud_enduser_1@openrainbow.com/172440802160413612281463752830017532"
to="5abb735b2d3c4e50adde276c50ec489c@@openrainbow.com"
xmlns="jabber:client">
<useraccount id="56c5c19f94141765119f896c" action="update" xmlns="jabber:iq:configuration"
</message>
userId required | string User unique identifier (like 56c5c19f94141765119f896c) |
accept required | string application/json |
{- "status": "User 56c5c19f94141765119f896c successfully disabled",
- "data": {
- "firstLoginDate": "2016-10-26T07:31:05.744Z",
- "activationDate": "2016-10-26T07:23:59.796Z",
- "companyName": "Terminated",
- "initializationDate": "2016-10-26T07:31:33.651Z",
- "accountType": "free",
- "jid_password": "cf1c87a48b7f434fa4d1bdd2895330f8",
- "id": "58105a0f4b1748307345bf58",
- "loggedSince": "2016-10-26T13:57:47.991Z",
- "loginEmail": "ter_1478105583769_alice@mycompany.fr",
- "failedLoginAttempts": 0,
- "firstName": "Alice",
- "isInitialized": true,
- "profile": {
- "subscriptionId": "580e2630a6501830067dcb7a",
- "offerId": "580e262ea2bc0f70c000dacd",
- "offerName": "Essential",
- "profileId": "580e262ea2bc0f70c000dacc",
- "profileName": "Essential",
- "assignationDate": "2016-11-02T16:53:04.163Z",
- "status": "active"
}, - "companyId": "5808b7fd0265331550d655d1",
- "roles": [
- "user"
], - "visibleBy": [ ],
- "organisationId": null,
- "lastUpdateDate": "2016-11-02T16:53:03.979Z",
- "lastName": "De Nice",
- "siteId": null,
- "lastAvatarUpdateDate": null,
- "displayName": "Alice De Nice",
- "terminatedDate": "2016-11-02T16:53:03.769Z",
- "jid_tel": "tel_81bd130d022f470fa1455dfe8916f2c6@francky-all-in-one-dev-1.opentouch.cloud",
- "createdBySelfRegister": false,
- "lastExpiredTokenRenewedDate": null,
- "visibility": "private",
- "phoneNumbers": [ ],
- "lastLoginDate": "2016-10-26T13:57:47.991Z",
- "lastSeenDate": "2016-12-25T09:17:42.523Z",
- "jid_im": "81bd130d022f470fa1455dfe8916f2c6@francky-all-in-one-dev-1.opentouch.cloud",
- "emails": [
- {
- "email": "alice@mycompany.fr",
- "type": "work"
}
], - "lastLoginFailureDate": null,
- "terminatedBy": {
- "userId": "57e396cdb6173c684e48c6d7",
- "loginEmail": "superadmin@openrainbow.org"
}, - "createdByAdmin": {
- "userId": "57e3c0376f24fcf959676dba",
- "loginEmail": "admin5@ale-international.com"
}, - "adminType": "undefined",
- "creationDate": "2016-10-26T07:23:59.796Z",
- "isTerminated": true,
- "isActive": true,
- "userInfo1": "DPT_HR",
- "userInfo2": "CC_RECRUITMENT_SERVICE"
}
}
This API can be used to get a user.
Users with superadmin
, business_admin
, support
role can retrieve any user whatever the company.
Users with support
role retrieve additional data lastLoginIOSDate and lastLoginAndroidDate.
Users with bp_admin
or bp_finance
role can only retrieve users from company being End Customers of their BP company
(i.e. all the companies having bpId equal to their companyId).
Users with admin
role can only retrieve users belonging to companies they can manage. That is to say:
userId required | string User unique identifier (like 56c5c19f94141765119f896c) |
format | string Default: "small" Enum: "small" "medium" "full" Allows to retrieve more or less user details in response.
|
accept required | string application/json |
{- "data": {
- "id": "56c5c19f94141765119f896c",
- "loginEmail": "user1@company.com",
- "firstName": "Firstname",
- "lastName": "Lastname",
- "displayName": "Firstname Lastname",
- "nickName": "Nickname",
- "title": "Mr.",
- "jobTitle": "Research and Development",
- "department": "RD",
- "tags": [
- "Software Engineer",
- "Rainbow",
- "Paris"
], - "emails": [
- {
- "email": "user1@company.com",
- "type": "work"
}, - {
- "email": "user1@home.com",
- "type": "home"
}
], - "phoneNumbers": [
- {
- "shortNumber": "1002",
- "pbxId": "PBX712e-bd96-0c27-4350-a3ff-dc0c-83e7-c246",
- "systemId": "57dc0644f44a97c9155cd462",
- "country": "FRA",
- "number": "0390676767",
- "numberE164": "+33390676767",
- "phoneNumberId": "58876dad81e063e01187dd24",
- "isMonitored": true,
- "isFromSystem": true,
- "deviceType": "landline",
- "type": "work",
- "isVisibleByOthers": true
}, - {
- "number": "0390909090",
- "country": "FRA",
- "numberE164": "+33390909090",
- "phoneNumberId": "577e2e9b86c953de7838d635",
- "systemId": null,
- "isFromSystem": false,
- "deviceType": "landline",
- "type": "home",
- "isVisibleByOthers": true
}, - {
- "number": "0690909090",
- "country": "FRA",
- "numberE164": "+33690909090",
- "phoneNumberId": "577e2e9b86c953de7838d636",
- "systemId": null,
- "isFromSystem": false,
- "deviceType": "mobile",
- "type": "home",
- "isVisibleByOthers": true
}
], - "country": "FRA",
- "language": "fr-FR",
- "timezone": "Europe/Paris",
- "jid_im": "2d2f1aaf5ce54a2dbae9d70490366562@openrainbow.com",
- "jid_tel": "tel_2d2f1aaf5ce54a2dbae9d70490366562@openrainbow.com",
- "jid_password": "3b3f6e2c927940b2875f1ec604c0363b",
- "roles": [
- "user",
- "superadmin"
], - "adminType": "undefined",
- "companyId": "569ce8c8f9336c471b98eda1",
- "companyName": "My company",
- "isInDefaultCompany": false,
- "calendars": [
- {
- "email": "user1@company.com",
- "enabled": true
}
], - "isADSearchAvailable": true,
- "organisationId": null,
- "siteId": null,
- "isActive": true,
- "isInitialized": true,
- "initializationDate": "2016-01-18T13:30:44.498Z",
- "activationDate": "2016-01-18T13:29:44.498Z",
- "creationDate": "2016-01-18T12:45:44.498Z",
- "lastUpdateDate": "2016-01-19T16:33:22.548Z",
- "lastAvatarUpdateDate": "2016-01-19T11:29:11.567Z",
- "createdBySelfRegister": true,
- "createdByAdmin": {
- "userId": "56d69d020c92b35b3041d433",
- "loginEmail": "superadmin@localhost.fr"
}, - "invitedBy": {
- "invitationId": "574ffe07170a86f3297bc35b",
- "invitationDate": "2016-01-15T13:29:44.498Z",
- "userId": "56d69d020c92b35b3041d533",
- "loginEmail": "user0@company.com"
}, - "firstLoginDate": "2016-01-18T13:29:44.498Z",
- "lastLoginDate": "2016-02-23T09:17:42.523Z",
- "loggedSince": "2016-02-23T09:17:42.523Z",
- "lastSeenDate": "2016-02-25T09:17:42.523Z",
- "isTerminated": false,
- "guestMode": false,
- "userInfo1": "DPT_HR",
- "userInfo2": "CC_RECRUITMENT_SERVICE",
- "profiles": [
- {
- "isDefault": true,
- "status": "active",
- "canBeSold": false,
- "businessModel": "none",
- "businessSpecific": [
- "NONE"
], - "isExclusive": false,
- "isPrepaid": false,
- "hasConference": false,
- "isBundle": false,
- "assignationDate": "2017-02-17T13:35:27.427Z",
- "provisioningNeeded": [ ],
- "subscriptionId": "5808da2e35d795966e61f9ce",
- "offerId": "58079ed2041fa586e92337cd",
- "offerName": "Essential",
- "profileId": "580777f56fbd22a442d4fb57",
- "profileName": "Essential",
- "offerReference": "RB-Essential",
- "offerDescription": "Rainbow Essential offer",
- "offerTechnicalDescription": "Essential"
}
], - "customData": {
- "key1ANumber": 123,
- "key2AString": "a string",
- "key3ABoolean": true,
- "key4AnObject": {
- "myKey": "My value"
}
}, - "fileSharingCustomisation": "same_than_company",
- "userTitleNameCustomisation": "same_than_company",
- "softphoneOnlyCustomisation": "same_than_company",
- "useRoomCustomisation": "same_than_company",
- "phoneMeetingCustomisation": "same_than_company",
- "useChannelCustomisation": "same_than_company",
- "useScreenSharingCustomisation": "same_than_company",
- "useWebRTCVideoCustomisation": "same_than_company",
- "useWebRTCAudioCustomisation": "same_than_company",
- "instantMessagesCustomisation": "same_than_company",
- "userProfileCustomisation": "same_than_company",
- "fileStorageCustomisation": "same_than_company",
- "overridePresenceCustomisation": "same_than_company",
- "alertNotificationReception": "same_than_company",
- "changeSettingsCustomisation": "same_than_company",
- "recordingConversationCustomisation": "same_than_company",
- "useGifCustomisation": "same_than_company",
- "fileCopyCustomisation": "same_than_company",
- "fileTransferCustomisation": "same_than_company",
- "forbidFileOwnerChangeCustomisation": "same_than_company",
- "useDialOutCustomisation": "same_than_company",
- "readReceiptsCustomisation": "same_than_company",
- "useSpeakingTimeStatistics": "same_than_company",
- "selectedAppCustomisationTemplate": "5f36b72b5e9d426552cee593",
- "useRoomAsRBVoiceUser": "disabled",
- "useWebRTCAudioAsRBVoiceUser": "disabled"
}
}
This API can be used to update data of a user.
A presence stanza is sent to updated user's resources and users being in user's roster. This allow clients to be notified that this user has been updated:
<presence from='3ae059e2a91c40d9bdd7df0eedc911ca@openrainbow.com'>
<x xmlns='vcard-temp:x:update'>
<data/>
</x>
</presence>
Unlike end-user PUT /users/id API, this admin API allows to update these fields: loginEmail
, password
,
roles
, accountType
and isActive
.
A user can't modify his own roles
.
Only superadmin
users can update loginEmail
field (but they can't update their own loginEmail
).
Rights depending on logged in user's roles:
When user password
is changed:
jid_password
of user's jid_im
and jid_tel
is updated with a new password,jid_im
and jid_tel
resources are disconnected.jid_password
.<message id="8413b42e-563c-4437-9a53-06f638b5ab69_0" type="management"
from="pcloud_enduser_1@openrainbow.com/172440802160413612281463752830017532"
to="5abb735b2d3c4e50adde276c50ec489c@@openrainbow.com"
xmlns="jabber:client">
<userpassword action="update" xmlns="jabber:iq:configuration"
</message>
Phone numbers:
isFromSystem
=true) can't be added in user's phoneNumbers using this API.In some cases, creating a user with guest
role may be sufficient. Here are guest
role specificity:
guest
is a single role that can't be modifiedcompany_admin
only, in his companyuserId required | string User unique identifier (like 56c5c19f94141765119f896c) |
accountType | string Default: "free" Enum: "free" "basic" "advanced" User subscription type |
adminType | string Enum: "organization_admin" "company_admin" "site_admin" Mandatory if roles array contains |
authenticationExternalUid | string User external authentication ID (return by identity provider in case of SAML or OIDC authenticationType) |
authenticationType | string Enum: "DEFAULT" "RAINBOW" "SAML" "OIDC" User authentication type (if not set company default authentication will be used) |
companyId | string User company unique identifier (like 569ce8c8f9336c471b98eda1)
|
country | string 3 characters User country (ISO 3166-1 alpha3 format) The list of allowed countries can be obtained using the API GET /api/rainbow/enduser/v1.0/countries |
customData | object |
department | string [ 1 .. 255 ] characters User department |
Array of objects (putUsersEmails) Array of user emails addresses objects | |
firstName | string [ 1 .. 255 ] characters User first name |
isActive | boolean Default: "true" Is user active |
isInitialized | boolean Default: "false" Is user initialized |
jobTitle | string [ 1 .. 255 ] characters User job title |
language | string/^([a-z]{2})(?:(?:(-)[A-Z]{2}))?$/ User language
|
lastName | string [ 1 .. 255 ] characters User last name |
loginEmail | string [ 3 .. 255 ] characters User email address (used for login).
|
nickName | string [ 1 .. 255 ] characters User nickName |
password | string [ 8 .. 64 ] characters User password.
|
Array of objects (putUsersPhoneNumbers) Array of user PhoneNumbers objects Provided PhoneNumbers data overwrite previous values:
When
PhoneNumber linked to a system ( System phoneNumbers can't be created nor deleted using this API, only PCG can create/delete system PhoneNumbers | |
roles | Array of strings Default: ["user"] Items Enum: "guest" "user" "admin" "bp_admin" "bp_finance" "company_support" "all_company_channels_admin" "public_channels_admin" "closed_channels_admin" "all_organization_channels_admin" "organization_public_channels_admin" "organization_closed_channels_admin" "app_admin" "app_support" "app_superadmin" "directory_admin" "supervisor" "support" "superadmin" "webinar_host" "attendant" List of user roles The general rule is that a user must have the roles that the wants to assign to someone else. Examples:
Here are some explanations regarding the roles available in Rainbow:
|
selectedDeviceFirmware | string Default: "same_as_company" Enum: "same_as_company" "released" "latest" Cloudpbx default device firmware
|
selectedTheme | string Set the selected theme for the user. |
state | string Enum: "null" "AA" "AE" "AP" "AK" "AL" "AR" "AZ" "CA" "CO" "CT" "DC" "DE" "FL" "GA" "GU" "HI" "IA" "ID" "IL" "IN" "KS" "KY" "LA" "MA" "MD" "ME" "MI" "MN" "MO" "MS" "MT" "NC" "ND" "NE" "NH" "NJ" "NM" "NV" "NY" "OH" "OK" "OR" "PA" "PR" "RI" "SC" "SD" "TN" "TX" "UT" "VA" "VI" "VT" "WA" "WI" "WV" "WY" "AB" "BC" "MB" "NB" "NL" "NS" "NT" "NU" "ON" "PE" "QC" "SK" "YT" When country is 'USA' or 'CAN', a state can be defined. Else it is not managed (null). The list of allowed states can be obtained using the API GET /api/rainbow/enduser/v1.0/countries for the associated countries.
|
tags | Array of strings An Array of free tags associated to the user.
|
timeToLive | number Duration in second to wait before automatically starting a user deletion from the creation date.
|
timezone | string User timezone name
|
title | string [ 1 .. 40 ] characters User title (honorifics title, like Mr, Mrs, Sir, Lord, Lady, Dr, Prof,...) |
userInfo1 | string [ 0 .. 64 ] characters Free field that admin can use to link their users to their IS/IT tools / to perform analytics (this field is output in the CDR file) |
userInfo2 | string [ 0 .. 64 ] characters 2nd Free field that admin can use to link their users to their IS/IT tools / to perform analytics (this field is output in the CDR file) |
visibility | string Enum: "same_than_company" "public" "private" "closed" "isolated" "hotspot" "none" User visibility
|
{- "accountType": "free",
- "adminType": "organization_admin",
- "authenticationExternalUid": "string",
- "authenticationType": "DEFAULT",
- "companyId": "string",
- "country": "str",
- "customData": { },
- "department": "string",
- "emails": [
- {
- "email": "string",
- "type": "home"
}
], - "firstName": "string",
- "isActive": "true",
- "isInitialized": "false",
- "jobTitle": "string",
- "language": "string",
- "lastName": "string",
- "loginEmail": "string",
- "nickName": "string",
- "password": "stringst",
- "phoneNumbers": [
- {
- "country": "str",
- "deviceType": "landline",
- "internalNumber": "string",
- "isVisibleByOthers": "string",
- "number": "string",
- "shortNumber": "string",
- "systemId": "string",
- "type": "home"
}
], - "roles": [
- "user"
], - "selectedDeviceFirmware": "same_as_company",
- "selectedTheme": "string",
- "state": "null",
- "tags": [
- "string"
], - "timeToLive": 0,
- "timezone": "string",
- "title": "string",
- "userInfo1": "string",
- "userInfo2": "string",
- "visibility": "same_than_company"
}
{- "data": {
- "id": "56c5c19f94141765119f896c",
- "loginEmail": "user1@company.com",
- "firstName": "Firstname",
- "lastName": "Lastname",
- "displayName": "Firstname Lastname",
- "nickName": "Nickname",
- "title": "Mr.",
- "jobTitle": "Research and Development",
- "department": "RD",
- "tags": [
- "Software Engineer",
- "Rainbow",
- "Paris"
], - "emails": [
- {
- "email": "user1@company.com",
- "type": "work"
}, - {
- "email": "user1@home.com",
- "type": "home"
}
], - "phoneNumbers": [
- {
- "shortNumber": "1002",
- "pbxId": "PBX712e-bd96-0c27-4350-a3ff-dc0c-83e7-c246",
- "systemId": "57dc0644f44a97c9155cd462",
- "country": "FRA",
- "number": "0390676767",
- "numberE164": "+33390676767",
- "phoneNumberId": "58876dad81e063e01187dd24",
- "isMonitored": true,
- "isFromSystem": true,
- "deviceType": "landline",
- "isVisibleByOthers": true,
- "type": "work"
}, - {
- "number": "0390909090",
- "country": "FRA",
- "numberE164": "+33390909090",
- "phoneNumberId": "577e2e9b86c953de7838d635",
- "systemId": null,
- "isFromSystem": false,
- "deviceType": "landline",
- "type": "home"
}, - {
- "number": "0690909090",
- "country": "FRA",
- "numberE164": "+33690909090",
- "phoneNumberId": "577e2e9b86c953de7838d636",
- "systemId": null,
- "isFromSystem": false,
- "deviceType": "mobile",
- "type": "home"
}
], - "country": "FRA",
- "language": "fr-FR",
- "timezone": "Europe/Paris",
- "jid_im": "2d2f1aaf5ce54a2dbae9d70490366562@openrainbow.com",
- "jid_tel": "tel_2d2f1aaf5ce54a2dbae9d70490366562@openrainbow.com",
- "jid_password": "3b3f6e2c927940b2875f1ec604c0363b",
- "roles": [
- "user",
- "superadmin"
], - "adminType": "undefined",
- "companyId": "569ce8c8f9336c471b98eda1",
- "companyName": "My company",
- "isInDefaultCompany": false,
- "organisationId": null,
- "siteId": null,
- "isActive": true,
- "isInitialized": true,
- "initializationDate": "2016-01-18T13:30:44.498Z",
- "activationDate": "2016-01-18T13:29:44.498Z",
- "creationDate": "2016-01-18T12:45:44.498Z",
- "lastUpdateDate": "2016-01-19T16:33:22.548Z",
- "lastAvatarUpdateDate": "2016-01-19T11:29:11.567Z",
- "createdBySelfRegister": true,
- "createdByAdmin": {
- "userId": "56d69d020c92b35b3041d433",
- "loginEmail": "superadmin@localhost.fr"
}, - "invitedBy": {
- "invitationId": "574ffe07170a86f3297bc35b",
- "invitationDate": "2016-01-15T13:29:44.498Z",
- "userId": "56d69d020c92b35b3041d533",
- "loginEmail": "user0@company.com"
}, - "firstLoginDate": "2016-01-18T13:29:44.498Z",
- "lastLoginDate": "2016-02-23T09:17:42.523Z",
- "loggedSince": "2016-02-23T09:17:42.523Z",
- "lastSeenDate": "2016-02-25T09:17:42.523Z",
- "isTerminated": false,
- "guestMode": false,
- "userInfo1": "DPT_HR",
- "userInfo2": "CC_RECRUITMENT_SERVICE",
- "customData": {
- "key1ANumber": 123,
- "key2AString": "a string",
- "key3ABoolean": true,
- "key4AnObject": {
- "myKey": "My value"
}
}, - "fileSharingCustomisation": "same_than_company",
- "userTitleNameCustomisation": "same_than_company",
- "softphoneOnlyCustomisation": "same_than_company",
- "useRoomCustomisation": "same_than_company",
- "phoneMeetingCustomisation": "same_than_company",
- "useChannelCustomisation": "same_than_company",
- "useScreenSharingCustomisation": "same_than_company",
- "useWebRTCVideoCustomisation": "same_than_company",
- "useWebRTCAudioCustomisation": "same_than_company",
- "instantMessagesCustomisation": "same_than_company",
- "userProfileCustomisation": "same_than_company",
- "fileStorageCustomisation": "same_than_company",
- "overridePresenceCustomisation": "same_than_company",
- "changeTelephonyCustomisation": "same_than_company",
- "changeSettingsCustomisation": "same_than_company",
- "recordingConversationCustomisation": "same_than_company",
- "useGifCustomisation": "same_than_company",
- "fileCopyCustomisation": "same_than_company",
- "fileTransferCustomisation": "same_than_company",
- "forbidFileOwnerChangeCustomisation": "same_than_company",
- "useDialOutCustomisation": "same_than_company",
- "readReceiptsCustomisation": "same_than_company",
- "useSpeakingTimeStatistics": "same_than_company",
- "selectedAppCustomisationTemplate": "5f36b72b5e9d426552cee593",
- "isAlertNotificationEnabled": false
}
}
This API allows administrators to list users.
Users with superadmin
, business_admin
, support
role can retrieve users from any company.
Users with support
role can retrieve lastLoginIOSDate and lastLoginAndroidDate providing format option full
.
Users with bp_admin
or bp_finance
role retrieve only users from company being End Customers of their BP company
(i.e. all the companies having bpId equal to their companyId).
Users with admin
role retrieve only users belonging to companies they can manage. That is to say:
admin
, bp_admin
or bp_finance
stay retrievable.
To get only guest belonging to a company, use GET /api/rainbow/admin/v1.0/users?roles=guestphoneNumber | number Allows to filter users list on the given number(s) on field phone number. |
searchEmail | string Allows to filter users list on the loginEmail field using the word provided in this option. |
companyId | string Allows to filter users list on the companyIds provided in this option.
|
roles | string Default: "user" Allows to filter users list on the role(s) provided in this option.
|
excludeRoles | string Allows to exclude users having the role(s) provided in this option.
|
tags | string Allows to filter users list on the tag(s) provided in this option. |
departments | string Allows to filter users list on the department(s) provided in this option. |
isTerminated | string Default: "false" Allows to filter users list on the status 'isTerminated'.
|
isActivated | string Enum: "true" "false" Allows to filter users list for users which have logged in at least once ("true") or never ("false"). |
fileSharingCustomisation | string Allows to filter users list on fileSharing feature restriction (enabled, disabled, same_than_company) |
userTitleNameCustomisation | string Allows to filter users list on user's profile update restriction (enabled, disabled, same_than_company) |
softphoneOnlyCustomisation | string Allows to filter users list on use softphone part of the UCaas application restriction (enabled, disabled, same_than_company) |
useRoomCustomisation | string Allows to filter users list on use room (bubble) restriction (enabled, disabled, same_than_company) |
phoneMeetingCustomisation | string Allows to filter users list on can join a PSTN conference restriction (enabled, disabled, same_than_company) |
useChannelCustomisation | string Allows to filter users list on use channels restriction (enabled, disabled, same_than_company) |
useScreenSharingCustomisation | string Allows to filter users list on sharing screen restriction (enabled, disabled, same_than_company) |
useWebRTCVideoCustomisation | string Allows to filter users list on use screen sharing restriction (enabled, disabled, same_than_company) |
useWebRTCAudioCustomisation | string Allows to filter users list on use Web RTC audio restriction (enabled, disabled, same_than_company) |
instantMessagesCustomisation | string Allows to filter users list on use Instant Messages restriction (enabled, disabled, same_than_company) |
userProfileCustomisation | string Allows to filter users list on modify a profile restriction (enabled, disabled, same_than_company) |
fileStorageCustomisation | string Allows to filter users list on use Rainbow file storage restriction (enabled, disabled, same_than_company) |
overridePresenceCustomisation | string Allows to filter users by the ability to modify manually presence state (enabled, disabled, same_than_company) |
alert | string notification] Allows to filter users by the ability to receive alert notification(enabled, disabled, same_than_company) |
changeTelephonyCustomisation | string Allows to filter users by the ability to modify telephony settings (enabled, disabled, same_than_company) |
changeSettingsCustomisation | string Allows to filter users by the ability to change client general setting (enabled, disabled, same_than_company) |
recordingConversationCustomisation | string Allows to filter users by the ability to record conversation (enabled, disabled, same_than_company) |
useGifCustomisation | string Allows to filter users by the ability to use GIFs in conversations (enabled, disabled, same_than_company) |
useDialOutCustomisation | string Allows to filter users by the ability to be called by the Rainbow conference bridge. (enabled, disabled, same_than_company) |
fileCopyCustomisation | string Allows to filter users by the ability to copy any file he receives in his personal cloud space. |
fileTransferCustomisation | string Allows to filter users by the ability to copy a file from a conversation then share it inside another conversation. |
forbidFileOwnerChangeCustomisation | string Allows to filter users by the ability to loose the ownership on one file. |
readReceiptsCustomisation | string Allows to filter users by the ability to authorize a sender to check if a chat message is read. |
useSpeakingTimeStatistics | string Allows to filter users by the ability to see speaking time statistics about a WebRTC meeting. |
selectedAppCustomisationTemplate | string Allows to filter users by the last application customisation template applied. |
format | string Default: "small" Enum: "small" "medium" "full" Allows to retrieve more or less user details in response.
|
limit | number Default: 100 Allow to specify the number of users to retrieve. |
offset | number Allow to specify the position of first user to retrieve (first user if not specified). Warning: if offset > total, no results are returned. |
sortField | string Default: "displayName" Sort user list based on the given field. |
sortOrder | number Default: 1 Enum: -1 1 Specify order when sorting user list. |
displayName | string Allows to filter users list on the given keyword(s) on field displayName. |
useEmails | boolean used with displayName, allows to filter users list on the given keyword(s) on field displayName for loginEmails too. |
companyName | string Allows to filter users list on the given keyword(s) on field companyName. |
loginEmail | string Allows to filter users list on the loginEmails provided in this option. |
string Allows to filter users list on the emails provided in this option. | |
visibility | string Enum: "same_than_company" "public" "private" "closed" "isolated" "none" Allows to filter users list on the visibility(ies) provided in this option. |
organisationId | string Allows to filter users list on the organisationIds provided in this option.
|
siteId | string Allows to filter users list on the siteIds provided in this option.
|
jid_im | string Allows to filter users list on the jid_ims provided in this option. |
jid_tel | string Allows to filter users list on the jid_tels provided in this option. |
accept required | string application/json |
{- "data": [
- {
- "id": "56c5c19f94141765119f896c",
- "loginEmail": "user1@company.com",
- "firstName": "Firstname",
- "lastName": "Lastname",
- "displayName": "Firstname Lastname",
- "companyId": "569ce8c8f9336c471b98eda1",
- "companyName": "My company",
- "isTerminated": false
}, - {
- "id": "56c5cb38e8078d7512c43985",
- "loginEmail": "user2@company.com",
- "firstName": "Firstname",
- "lastName": "Lastname",
- "displayName": "Firstname Lastname",
- "companyId": "569ce8c8f9336c471b98eda1",
- "companyName": "My company",
- "isTerminated": false
}
], - "total": 2,
- "limit": 100,
- "offset": 0
}
This api creates a user in Rainbow application.
Jabber identifiers (IM and TEL) are generated and user is created in XMPP server.
Rights depending on logged in user's roles:
bp_admin
or bp_finance
role can only create users in companies being End Customers of their BP
company (i.e. all the companies having bpId equal to their companyId).admin
role can only create users in companies they can manage. That is to say:Admin
users can only set roles guest
, user
and admin
.Phone numbers:
In some cases, creating a user with guest
role may be sufficient. Here are guest
role specificity:
guest
is a single role that can't be modifiedcompany_admin
only, in his companyaccountType | string Default: "free" Enum: "free" "basic" "advanced" User subscription type |
adminType | string Enum: "organization_admin" "company_admin" "site_admin" Mandatory if roles array contains |
authenticationExternalUid | string User external authentication ID (return by identity provider in case of SAML or OIDC authenticationType) |
authenticationType | string Enum: "DEFAULT" "RAINBOW" "SAML" "OIDC" User authentication type (if not set company default authentication will be used) |
companyId | string User company unique identifier (like 569ce8c8f9336c471b98eda1).
|
country | string 3 characters User country (ISO 3166-1 alpha3 format) The list of allowed countries can be obtained using the API GET /api/rainbow/enduser/v1.0/countries |
customData | object |
department | string [ 1 .. 255 ] characters User department |
Array of objects (postUsersEmails) Array of user emails addresses objects | |
firstName | string [ 1 .. 255 ] characters User first name |
isActive | boolean Default: "true" Is user active |
isInitialized | boolean Default: "false" Is user initialized
|
jobTitle | string [ 1 .. 255 ] characters User job title |
language | string/^([a-z]{2})(?:(?:(-)[A-Z]{2}))?$/ User language
|
lastName | string [ 1 .. 255 ] characters User last name |
loginEmail required | string [ 3 .. 255 ] characters User email address (used for login).
|
nickName | string [ 1 .. 255 ] characters User nickName |
password | string [ 8 .. 64 ] characters User password.
|
Array of objects (postUsersPhoneNumbers) Array of user phone numbers objects For each provided phoneNumber Object, the server tries to compute the associated E.164 number (
System phoneNumbers can't be created using this API, only PCG can create system PhoneNumbers | |
roles | Array of strings Default: ["user"] Items Enum: "guest" "user" "admin" "bp_admin" "bp_finance" "company_support" "all_company_channels_admin" "public_channels_admin" "closed_channels_admin" "all_organization_channels_admin" "organization_public_channels_admin" "organization_closed_channels_admin" "app_admin" "app_support" "app_superadmin" "directory_admin" "supervisor" "support" "superadmin" "webinar_host" "attendant" List of user roles The general rule is that a user must have the roles that the wants to assign to someone else. Examples:
Here are some explanations regarding the roles available in Rainbow:
|
selectedTheme | string Set the selected theme for the user. |
state | string Enum: "null" "AA" "AE" "AP" "AK" "AL" "AR" "AZ" "CA" "CO" "CT" "DC" "DE" "FL" "GA" "GU" "HI" "IA" "ID" "IL" "IN" "KS" "KY" "LA" "MA" "MD" "ME" "MI" "MN" "MO" "MS" "MT" "NC" "ND" "NE" "NH" "NJ" "NM" "NV" "NY" "OH" "OK" "OR" "PA" "PR" "RI" "SC" "SD" "TN" "TX" "UT" "VA" "VI" "VT" "WA" "WI" "WV" "WY" "AB" "BC" "MB" "NB" "NL" "NS" "NT" "NU" "ON" "PE" "QC" "SK" "YT" When country is 'USA' or 'CAN', a state can be defined. Else it is not managed (null). The list of allowed states can be obtained using the API GET /api/rainbow/enduser/v1.0/countries for the associated countries.
|
tags | Array of strings An Array of free tags associated to the user.
|
timeToLive | number Duration in second to wait before automatically starting a user deletion from the creation date.
|
timezone | string User timezone name
|
title | string [ 1 .. 40 ] characters User title (honorifics title, like Mr, Mrs, Sir, Lord, Lady, Dr, Prof,...) |
userInfo1 | string [ 0 .. 64 ] characters Free field that admin can use to link their users to their IS/IT tools / to perform analytics (this field is output in the CDR file) |
userInfo2 | string [ 0 .. 64 ] characters 2nd Free field that admin can use to link their users to their IS/IT tools / to perform analytics (this field is output in the CDR file) |
visibility | string Enum: "same_than_company" "public" "private" "closed" "isolated" "hotspot" "none" User visibility
|
{- "accountType": "free",
- "adminType": "organization_admin",
- "authenticationExternalUid": "string",
- "authenticationType": "DEFAULT",
- "companyId": "string",
- "country": "str",
- "customData": { },
- "department": "string",
- "emails": [
- {
- "email": "string",
- "type": "home"
}
], - "firstName": "string",
- "isActive": "true",
- "isInitialized": "false",
- "jobTitle": "string",
- "language": "string",
- "lastName": "string",
- "loginEmail": "string",
- "nickName": "string",
- "password": "stringst",
- "phoneNumbers": [
- {
- "country": "str",
- "deviceType": "landline",
- "isVisibleByOthers": "true",
- "number": "string",
- "type": "home"
}
], - "roles": [
- "user"
], - "selectedTheme": "string",
- "state": "null",
- "tags": [
- "string"
], - "timeToLive": 0,
- "timezone": "string",
- "title": "string",
- "userInfo1": "string",
- "userInfo2": "string",
- "visibility": "same_than_company"
}
{- "data": {
- "firstName": "John",
- "lastName": "Doe",
- "tags": [
- "Software Engineer",
- "Rainbow",
- "Paris"
], - "emails": [
- {
- "email": "john.doe@home.com",
- "type": "home"
}, - {
- "email": "john.doe@mycompany.com",
- "type": "work"
}
], - "phoneNumbers": [
- {
- "firstName": "",
- "lastName": "",
- "deviceName": "",
- "names": [ ],
- "type": "home",
- "deviceType": "landline",
- "isVisibleByOthers": true,
- "isFromSystem": false,
- "isMonitored": false,
- "number": "0390909090",
- "country": "FRA",
- "numberE164": "+33390909090",
- "phoneNumberId": "5b39e11ed0b1a669e71d0eac"
}, - {
- "firstName": "",
- "lastName": "",
- "deviceName": "",
- "names": [ ],
- "type": "home",
- "deviceType": "mobile",
- "isVisibleByOthers": true,
- "isFromSystem": false,
- "isMonitored": false,
- "number": "0690909090",
- "country": "FRA",
- "numberE164": "+33690909090",
- "phoneNumberId": "5b39e11ed0b1a669e71d0eae"
}, - {
- "firstName": "",
- "lastName": "",
- "deviceName": "",
- "names": [ ],
- "type": "rainbow",
- "deviceType": "other",
- "isFromSystem": false,
- "isMonitored": false,
- "number": "10277088499392642",
- "phoneNumberId": "5b39e11ed0b1a669e71d0eb0"
}
], - "isActive": true,
- "roles": [
- "user",
- "admin"
], - "adminType": "company_admin",
- "accountType": "free",
- "profiles": [
- {
- "isDefault": true,
- "status": "active",
- "assignationDate": "2018-07-02T08:23:58.289Z",
- "provisioningNeeded": [ ],
- "canBeSold": false,
- "isExclusive": false,
- "isPrepaid": false,
- "subscriptionId": "58d4f9821f0612597704f6c8",
- "offerId": "58346927cd759a1cbd501e8d",
- "offerName": "Professional",
- "profileId": "58346200cd759a1cbd501e8c",
- "profileName": "Professional",
- "offerDescription": "Professional offer (6€/month)",
- "offerTechnicalDescription": "Professional"
}
], - "visibility": "public",
- "organisationId": null,
- "siteId": null,
- "systemId": null,
- "creationDate": "2018-07-02T08:23:58.279Z",
- "activationDate": "2018-07-02T08:23:58.279Z",
- "isInitialized": true,
- "initializationDate": "2018-07-02T08:23:58.279Z",
- "lastUpdateDate": null,
- "lastAvatarUpdateDate": null,
- "createdBySelfRegister": false,
- "createdByAppId": null,
- "firstLoginDate": null,
- "lastLoginDate": null,
- "loggedSince": null,
- "lastSeenDate": null,
- "failedLoginAttempts": 0,
- "lastLoginFailureDate": null,
- "lastExpiredTokenRenewedDate": null,
- "lastPasswordUpdateDate": null,
- "timeToLive": -1,
- "timeToLiveDate": null,
- "terminatedDate": null,
- "isTerminated": false,
- "guestMode": false,
- "loginEmail": "john.doe@mycompany.com",
- "nickName": "Nickname",
- "title": "Mr.",
- "jobTitle": "Secret agent",
- "department": "secret service",
- "country": "FRA",
- "language": "fr-FR",
- "timezone": "Europe/Paris",
- "companyId": "58d4f9821f0612597704f6c7",
- "createdByAdmin": {
- "userId": "57e396cdb6173c684e48c6d7",
- "loginEmail": "superadmin@openrainbow.org"
}, - "jid_im": "aa86d52e08f24f46a5dc39c48e79c03c@francky-all-in-one-dev-1.opentouch.cloud",
- "jid_tel": "tel_aa86d52e08f24f46a5dc39c48e79c03c@francky-all-in-one-dev-1.opentouch.cloud",
- "jid_password": "5c653ecd5c3a486580af3967b2a570da",
- "companyName": "DEMO COMPANY",
- "displayName": "John Doe",
- "id": "5b39e11ed0b1a669e71d0ea9",
- "isInDefaultCompany": false,
- "userInfo1": "DPT_HR",
- "userInfo2": "CC_RECRUITMENT_SERVICE",
- "customData": {
- "key1ANumber": 123,
- "key2AString": "a string",
- "key3ABoolean": true,
- "key4AnObject": {
- "myKey": "My value"
}
}, - "fileSharingCustomisation": "same_than_company",
- "userTitleNameCustomisation": "same_than_company",
- "softphoneOnlyCustomisation": "same_than_company",
- "useRoomCustomisation": "same_than_company",
- "phoneMeetingCustomisation": "same_than_company",
- "useChannelCustomisation": "same_than_company",
- "useScreenSharingCustomisation": "same_than_company",
- "useWebRTCVideoCustomisation": "same_than_company",
- "useWebRTCAudioCustomisation": "same_than_company",
- "instantMessagesCustomisation": "same_than_company",
- "userProfileCustomisation": "same_than_company",
- "fileStorageCustomisation": "same_than_company",
- "overridePresenceCustomisation": "same_than_company",
- "changeTelephonyCustomisation": "same_than_company",
- "changeSettingsCustomisation": "same_than_company",
- "recordingConversationCustomisation": "same_than_company",
- "useGifCustomisation": "same_than_company",
- "fileCopyCustomisation": "same_than_company",
- "fileTransferCustomisation": "same_than_company",
- "forbidFileOwnerChangeCustomisation": "same_than_company",
- "useDialOutCustomisation": "same_than_company",
- "readReceiptsCustomisation": "same_than_company",
- "useSpeakingTimeStatistics": "same_than_company",
- "selectedAppCustomisationTemplate": "5f36b72b5e9d426552cee593"
}
}
This API can be used to add users to requested user networks.
BETA: this API is currently in beta. Restriction: only 1 user can be provided in users array (others are ignored)
superadmin
can set user network from any users existing in Rainbow.
bp_admin
or bp_finance
can only set user network for users being in companies being
End Customers of their BP company (i.e. all the companies having bpId equal to their companyId) and their own BP company.
organization_admin
can only set user network for users being in companies under their organisation.
company_admin
can only set user network for users being in their company.
userId required | string User unique identifier (like 56c5c19f94141765119f896c) |
presence | boolean Default: "false" Specify if presence subscription has to be set when adding the users in mutual networks. |
users required | Array of strings Array of user unique identifiers (like 56c5c19f94141765119f896c) of the users to add in requested user network |
{- "presence": "false",
- "users": [
- "string"
]
}
{- "status": "success"
}
Company admin shall be able to check if a user can be reached or not, by checking the presence information (available, busy, away, etc).
Admin will have to select a user to get a presence snapshot when opening the user configuration profile.
Example: GET https://openrainbow.com/api/rainbow/admin/v1.0/users/56d0277a0261b53142a5cab5/presence
A brute force defense is activated when too much request have been requested by the same administrator, to not overload the backend.
As a result, an error 429 "Too Many Requests" will be returned .
userId required | string User unique identifier (like 56c5c19f94141765119f896c) |
accept required | string application/json |
{- "data": {
- "jid_im": [
- {
- "resource": "web_osx_2.79.6_Ae4dlpny",
- "date": "2020-11-03T16:27:00.118127Z",
- "show": "dnd"
}
], - "jid_tel": [
- {
- "resource": "calendar",
- "date": "2020-11-03T16:14:11.087484Z",
- "show": "chat",
- "until": "2020-11-03T18:49:00.000Z"
}
]
}
}
This API can be used to get features associated to the user through its profiles.
A user can be assigned to several profiles (if an admin has assigned subscription licences to the user).
By default, user is at least assigned to the subscription of his company to the default offer (i.e. Essential).
Each profile has his own list of features with his own values. This API allows to aggregate all features from all user's profiles.
superadmin
and support
can get features available for any existing user in Rainbow.
bp_admin
and bp_finance
can only retrieve features available for users being in End Customer companies linked to their BP company.
organization_admin
can only retrieve features available for users being in companies under their organisation.
company_admin
can only get features available for users being in their company.
Example: GET https://openrainbow.com/api/rainbow/admin/v1.0/users/56d0277a0261b53142a5cab5/profiles/features
userId required | string User unique identifier (like 56d0277a0261b53142a5cab5) |
accept required | string application/json |
{- "data": [
- {
- "featureId": "580773787853994e42d90f0b",
- "featureUniqueRef": "COMPANY_ADMIN_ALLOWED_NB",
- "featureName": "Company admin",
- "featureType": "number",
- "limitMax": 10,
- "addedDate": "2017-02-16T11:22:54.270Z",
- "lastUpdateDate": "2017-02-16T11:22:54.270Z"
}, - {
- "featureId": "580e02660f3cce8315072656",
- "featureUniqueRef": "PBX_TRANSFER_ENABLED",
- "featureName": "PBX Transfer",
- "featureType": "boolean",
- "isEnabled": true,
- "addedDate": "2017-02-16T11:23:29.296Z",
- "lastUpdateDate": "2017-02-16T11:23:29.296Z"
}
]
}
This API can be used to un-assign a company's subscription from user profiles.
Profile linked to company's default subscription can't be removed.
superadmin
can remove a profile from any user existing in Rainbow.
business_admin
can remove a profile linked to a demo offer from any user existing in Rainbow.
bp_admin
and bp_finance
can remove a profile for users being in End Customer
companies linked to their BP company and from users being in their own BP company (or organisation).
organization_admin
can only remove a profile for users being in companies under their organisation.
company_admin
can only remove a profile for users being in their company.
Example: DELETE https://openrainbow.com/api/rainbow/admin/v1.0/users/56d0277a0261b53142a5cab5/profiles/subscriptions/59396b2918f2e75c2bd3bb5b
userId required | string User unique identifier (like 56d0277a0261b53142a5cab5) |
subscriptionId required | string Company subscription unique identifier. |
accept required | string application/json |
{- "data": [ ],
- "status": "User profile linked to subscription 59396b2918f2e75c2bd3bb5b successfully deleted"
}
This API can be used to assign a company's subscription to user profiles (user must be in the
same company than the company which own the subscription).
By default, when users are created or moved to a company, user's company's subscription to the default
offer (Essential) is automatically added to user's profiles (therefore user's profiles should never be empty)
superadmin
can add a profile from any user existing in Rainbow.
business_admin
can add a profile linked to a demo offer to any user existing in Rainbow.
bp_admin
and bp_finance
can add a profile to users being in End Customer companies
linked to their BP company and to users being in their own BP company (or organisation).
organization_admin
can only add a profile to users being in companies under their organisation.
company_admin
can only add a profile to users being in their company.
Provided subscriptionId must be one of the subscriptions available in user's company's subscriptions list
(it can be the company's subscription to the default offer (Essential)).
The subscription must have the status active
and not being synchronizing with Business Store / Zuora
(syncOngoing
equal to false), otherwise 403 errors are returned.
Subscription with businessModel flat_fee
or nb_services
can not be assigned to user profiles (they are fees at company level).
If the subscription has a maxNumberUsers
and the subscription is already assigned to this number of users,
the assignation to the user is denied.
If the provided subscriptionId is already assigned to user's profiles, a conflict error is returned.
Example: POST https://openrainbow.com/api/rainbow/admin/v1.0/users/56d0277a0261b53142a5cab5/profiles/subscriptions/5808afeb4372eb19547e90cf
userId required | string User unique identifier (like 56d0277a0261b53142a5cab5) |
subscriptionId required | string Company subscription unique identifier. |
{- "data": {
- "subscriptionId": "59396b2918f2e75c2bd3bb5b",
- "offerId": "58ff3cdc5b9f3e48ad4fb906",
- "offerName": "Conference",
- "offerDescription": "Rainbow Conference offer",
- "offerTechnicalDescription": "Conference offer for BP VAD",
- "offerReference": "RB-Conference",
- "profileId": "58ff3cdb5b9f3e48ad4fb903",
- "profileName": "Conference",
- "status": "active",
- "isDefault": false,
- "businessModel": "usage",
- "isExclusive": false,
- "assignationDate": "2016-10-24T14:11:50.800Z",
- "provisioningNeeded": [
- {
- "providerType": "PGI",
- "provisioningOngoing": true,
- "provisioningStartDate": "2017-06-14T13:48:25.924Z"
}
]
}
}
This API can be used to get a user's profiles.
superadmin
and support
can get profiles from any existing user in Rainbow.
bp_admin
and bp_finance
can only retrieve profiles of users being in End Customer companies linked to their BP company.
organization_admin
can only retrieve profiles of users being in companies under their organisation.
company_admin
can only get profiles of users being in their company.
Example: GET https://openrainbow.com/api/rainbow/admin/v1.0/users/56d0277a0261b53142a5cab5/profiles
userId required | string User unique identifier (like 56d0277a0261b53142a5cab5) |
accept required | string application/json |
{- "data": [
- {
- "subscriptionId": "5808b655a55a36d354f75cbe",
- "offerId": "58079ed2041fa586e92337cd",
- "offerName": "Essential",
- "offerReference": "RB-Essential",
- "profileId": "580777f56fbd22a442d4fb57",
- "profileName": "Essential",
- "status": "active",
- "isDefault": true,
- "isExclusive": false,
- "assignationDate": "2016-10-12T09:54:12.634Z"
}, - {
- "subscriptionId": "5808afeb4372eb19547e90cf",
- "offerId": "58072f646237427a3687dc90",
- "offerName": "Enterprise",
- "offerDescription": "Rainbow Enterprise offer",
- "offerTechnicalDescription": "Enterprise offer for BP VAD",
- "offerReference": "RB-Enterprise",
- "profileId": "57cd90ddc04fd92e232ae258",
- "profileName": "Enterprise",
- "status": "active",
- "isDefault": false,
- "businessModel": "nb_users",
- "isExclusive": true,
- "assignationDate": "2016-10-24T14:11:50.641Z"
}, - {
- "subscriptionId": "59396b2918f2e75c2bd3bb5b",
- "offerId": "58ff3cdc5b9f3e48ad4fb906",
- "offerName": "Conference",
- "offerDescription": "Rainbow Conference offer",
- "offerTechnicalDescription": "Conference offer for BP VAD",
- "profileId": "58ff3cdb5b9f3e48ad4fb903",
- "profileName": "Conference",
- "status": "active",
- "isDefault": false,
- "businessModel": "usage",
- "isExclusive": false,
- "assignationDate": "2016-10-24T14:11:50.800Z",
- "provisioningNeeded": [
- {
- "providerType": "PGI",
- "provisioningOngoing": false,
- "provisioningStartDate": "2017-06-14T13:48:25.924Z"
}
]
}
]
}
This API can be used to send a command to a ldap connector user.
BP Admin and BP Finance users can only control users being in a company linked to their BP company.
Admin users can only control users being in their own company. (superadmin, organization_admin, company_admin)
<message id="8413b42e-563c-4437-9a53-06f638b5ab69_0" type="management"
from="pcloud_enduser_1@openrainbow.com/172440802160413612281463752830017532"
to="5abb735b2d3c4e50adde276c50ec489c@@openrainbow.com"
xmlns="jabber:client">
<connectorcommand command="manual_synchro" commandId="xyz" xmlns="jabber:iq:configuration"
</message>
ldapId required | string ldap connector unique identifier (like 569ce8c8f9336c471b98eda1) |
command required | string Allows to specify a command to be performed by the ldap connector.
|
{- "command": "string"
}
{- "data": {
- "status": "Command to User 56c5c19f94141765119f896c successfully sent",
- "commandId": "sdfjkhdklmfklsdjfkdjsgfkldsgsdhgjhjksghk"
}
}
This API can be used to delete a ldap connector user.
BP Admin and BP Finance users can only delete users being in a company linked to their BP company.
Admin users can only delete users being in their own company. (superadmin, organization_admin, company_admin)
ldapId required | string ldap connector unique identifier (like 569ce8c8f9336c471b98eda1) |
accept required | string application/json |
{- "status": "User 56c5c19f94141765119f896c successfully deleted",
- "data": [ ]
}
This API can be used to delete a ldap connector config.
BP Admin and BP Finance users can only delete a ldap config being in a company linked to their BP company.
Admin users can only delete ldap config being in their own company. (superadmin, organization_admin, company_admin)
ldapConfigId required | string ldap connector unique identifier (like 569ce8c8f9336c471b98eda1) |
accept required | string application/json |
{- "status": "ldap config 56c5c19f94141765119f896c successfully deleted",
- "data": [ ]
}
This API allows to retrieve the configuration for the connector with the ldapConfigId.
A template is available : use GET /api/rainbow/admin/v1.0/connectors/ldaps/config/template.
Users with superadmin
, support
role can get the connectors configuration from any company.
Users with bp_admin
or bp_finance
role can only get the connectors configurationin companies being End Customers of their BP company
(i.e. all the companies having bpId equal to their companyId).
Users with admin
role can only get the connectors configuration in companies they can manage. That is to say:
ldapConfigId required | string ldap connector unique identifier (like 569ce8c8f9336c471b98eda1) |
accept required | string application/json |
content-type required | string application/json |
{- "data": {
- "id": "56c5c19f94141765119f896c",
- "type": "ldap_config",
- "companyId": "56c5c19f94141765119f896d",
- "name": "myConfig",
- "settings": {
- "massproFromLdap": {
- "loginEmail": "email",
- "ldap_id": "objectGUID",
- "firstName": "fn",
- "lastName": "sn",
- "departement": "department",
- "businessPhone0": "telephoneNumber"
}, - "company": {
- "login": "ldaplogin",
- "password": "newpassword",
- "baseDN": "dc=ldap,dc=com",
- "synchronizationTimeInterval": 6,
- "activeFlag": false,
- "enrollmentEmailEnable": false,
- "synchronisationDiffMode": false
}
}
}
}
This API allows update the configuration for the connector.
A template is available : use GET /api/rainbow/admin/v1.0/connectors/ldaps/config/template.
Users with superadmin
, support
role can update the connectors configuration from any company.
Users with bp_admin
or bp_finance
role can only update the connectors configurationin companies being End Customers of their BP company
(i.e. all the companies having bpId equal to their companyId).
Users with admin
role can only update the connectors configuration in companies they can manage. That is to say:
an organization_admin can update the connectors configuration only in a company he can manage (i.e. companies having organisationId equal to his organisationId)
a company_admin can only update the connectors configuration in his company.
the following XMPP message is sent to connector's jid_im to warn that the config has changed:
<message id="8413b42e-563c-4437-9a53-06f638b5ab69_0" type="management"
from="pcloud_enduser_1@openrainbow.com/172440802160413612281463752830017532"
to="5abb735b2d3c4e50adde276c50ec489c@@openrainbow.com"
xmlns="jabber:client">
<connectorconfig action="update" configId="56c5c19f94141765119f896c" xmlns="jabber:iq:configuration"
</message>
ldapConfigId required | string ldap connector unique identifier (like 569ce8c8f9336c471b98eda1) |
name required | string name of this configuration |
required | object |
strict | boolean Default: "false" Allows to specify if all the previous fields must be erased or just update/push new fields. |
{- "name": "string",
- "settings": {
- "company": {
- "activeFlag": true,
- "baseDN": "string",
- "enrollmentEmailEnable": true,
- "lastSynchronization": "2019-08-24T14:15:22Z",
- "login": "string",
- "nextSynchronization": "2019-08-24T14:15:22Z",
- "password": "string",
- "search_rule": "string",
- "softwareVersion": "string",
- "synchronisationDiffMode": true,
- "synchronizationTimeInterval": 1,
- "url": "string"
}, - "massproFromLdap": {
- "headerName": "string"
}
}, - "strict": "false"
}
{- "data": {
- "id": "56c5c19f94141765119f896c",
- "type": "ldap_config",
- "companyId": "56c5c19f94141765119f896d",
- "name": "myConfig",
- "settings": {
- "massproFromLdap": {
- "loginEmail": "email",
- "ldap_id": "objectGUID",
- "firstName": "fn",
- "lastName": "sn",
- "departement": "department",
- "businessPhone0": "telephoneNumber"
}, - "company": {
- "login": "ldaplogin",
- "password": "newpassword",
- "baseDN": "dc=ldap,dc=com",
- "synchronizationTimeInterval": 6,
- "activeFlag": false,
- "enrollmentEmailEnable": false,
- "synchronisationDiffMode": false
}
}
}
}
This API allows to retrieve the configurations list for the connector.
A template can be retrieve : use GET /api/rainbow/admin/v1.0/connectors/ldaps/config/template.
Only one config object type is allowed for a company
Users with superadmin
, support
role can retrieve the connectors configuration from any company.
Users with bp_admin
or bp_finance
role can only retrieve the connectors configurationin companies being End Customers of their BP company
(i.e. all the companies having bpId equal to their companyId).
Users with admin
role can only retrieve the connectors configuration in companies they can manage. That is to say:
companyId | string Allows to filter connectors config list on the companyId provided in this option.
|
accept required | string application/json |
content-type required | string application/json |
{- "data": [
- {
- "id": "56c5c19f94141765119f896c",
- "type": "ldap_config",
- "companyId": "56c5c19f94141765119f896d",
- "settings": {
- "massproFromLdap": {
- "loginEmail": "mail",
- "ldap_id": "objectGUID",
- "firstName": "givenName",
- "lastName": "sn",
- "departement": "department",
- "businessPhone0": "telephoneNumber"
}, - "company": {
- "login": "ldaplogin",
- "password": "ldappassword",
- "baseDN": "dc=ldap,dc=com",
- "synchronizationTimeInterval": 6,
- "activeFlag": false,
- "enrollmentEmailEnable": false,
- "synchronisationDiffMode": false
}
}
}
]
}
This API allows to retrieve all the configuration templates for the connector.
accept required | string application/json |
content-type required | string application/json |
""
This API allows administrators to retrieve all the ldap connectors.
Users with superadmin
, support
role can retrieve the connectors from any company.
Users with bp_admin
or bp_finance
role can only retrieve the connectors in companies being End Customers of their BP company
(i.e. all the companies having bpId equal to their companyId).
Users with admin
role can only retrieve the connectors in companies they can manage. That is to say:
This API can return more or less connector information using format option in query string arguments (default is small
).
Examples:
companyId | string Allows to filter connectors list on the companyIds provided in this option.
|
format | string Default: "small" Enum: "small" "medium" "full" Allows to retrieve more or less user details in response.
|
limit | number Default: 100 Allow to specify the number of users to retrieve. |
offset | number Allow to specify the position of first user to retrieve (first user if not specified). Warning: if offset > total, no results are returned. |
sortField | string Default: "displayName" Sort user list based on the given field. |
sortOrder | number Default: 1 Enum: -1 1 Specify order when sorting user list. |
accept required | string application/json |
{- "data": [
- {
- "id": "56c5c19f94141765119f896c",
- "loginEmail": "user1@company.com",
- "firstName": "Firstname",
- "lastName": "Lastname",
- "displayName": "Firstname Lastname",
- "companyId": "569ce8c8f9336c471b98eda1",
- "companyName": "My company",
- "isTerminated": false
}, - {
- "id": "56c5cb38e8078d7512c43985",
- "loginEmail": "user2@company.com",
- "firstName": "Firstname",
- "lastName": "Lastname",
- "displayName": "Firstname Lastname",
- "companyId": "569ce8c8f9336c471b98eda1",
- "companyName": "My company",
- "isTerminated": false
}
], - "total": 2,
- "limit": 100,
- "offset": 0
}
This API allows to retrieve the configuration for the connector.
A template can be retrieve : use GET /api/rainbow/admin/v1.0/connectors/ldaps/config/template.
Only one config object type is allowed for a company
Users with superadmin
, support
role can retrieve the connectors configuration from any company.
Users with bp_admin
or bp_finance
role can only retrieve the connectors configurationin companies being End Customers of their BP company
(i.e. all the companies having bpId equal to their companyId).
Users with admin
role can only retrieve the connectors configuration in companies they can manage. That is to say:
companyId | string Allows to filter connectors config list on the companyId provided in this option.
|
type | string Default: "ldap_config" Allows to filter connectors config list on the type provided in this option.
|
accept required | string application/json |
content-type required | string application/json |
{- "data": {
- "id": "56c5c19f94141765119f896c",
- "type": "ldap_config",
- "companyId": "56c5c19f94141765119f896d",
- "settings": {
- "massproFromLdap": {
- "loginEmail": "mail",
- "ldap_id": "objectGUID",
- "firstName": "givenName",
- "lastName": "sn",
- "departement": "department",
- "businessPhone0": "telephoneNumber"
}, - "company": {
- "login": "ldaplogin",
- "password": "ldappassword",
- "baseDN": "dc=ldap,dc=com",
- "synchronizationTimeInterval": 6,
- "activeFlag": false,
- "enrollmentEmailEnable": false,
- "synchronisationDiffMode": false
}
}
}
}
This API allows create configuration for the connector.
A template is available : use GET /api/rainbow/admin/v1.0/connectors/ldaps/config/template. This template will provide the list of settings that can be pushed.
Users with superadmin
, support
role can create the connectors configuration from any company.
Users with bp_admin
or bp_finance
role can only create the connectors configurationin companies being End Customers of their BP company
(i.e. all the companies having bpId equal to their companyId).
Users with admin
role can only create the connectors configuration in companies they can manage. That is to say:
an organization_admin can create the connectors configuration only in a company he can manage (i.e. companies having organisationId equal to his organisationId)
a company_admin can only create the connectors configuration in his company.
the following XMPP message is sent to connector's jid_im to warn that the config has changed:
<message id="8413b42e-563c-4437-9a53-06f638b5ab69_0" type="management"
from="pcloud_enduser_1@openrainbow.com/172440802160413612281463752830017532"
to="5abb735b2d3c4e50adde276c50ec489c@@openrainbow.com"
xmlns="jabber:client">
<connectorconfig action="update" configId="56c5c19f94141765119f896c" xmlns="jabber:iq:configuration"
</message>
companyId required | string Allows to specify for which company the connectors configuration is done.. |
name required | string name of this configuration |
required | object |
type | string Default: "ldap_config" specify for which type of synchronisation this config is .
|
{- "companyId": "string",
- "name": "string",
- "settings": {
- "company": {
- "activeFlag": "false",
- "baseDN": "string",
- "enrollmentEmailEnable": "false",
- "login": "string",
- "nextSynchronization": "2019-08-24T14:15:22Z",
- "password": "string",
- "search_rule": "string",
- "synchronisationDiffMode": "false",
- "synchronizationTimeInterval": 1,
- "url": "string"
}, - "massproFromLdap": {
- "headerName": "string"
}
}, - "type": "ldap_config"
}
{- "data": {
- "id": "56c5c19f94141765119f896c",
- "type": "ldap_config",
- "companyId": "56c5c19f94141765119f896d",
- "name": "myConfig",
- "settings": {
- "massproFromLdap": {
- "loginEmail": "mail",
- "ldap_id": "objectGUID",
- "firstName": "givenName",
- "lastName": "sn",
- "departement": "department",
- "businessPhone0": "telephoneNumber"
}, - "company": {
- "login": "ldaplogin",
- "password": "ldappassword",
- "baseDN": "dc=ldap,dc=com",
- "synchronizationTimeInterval": 6,
- "activeFlag": true,
- "enrollmentEmailEnable": false,
- "synchronisationDiffMode": false
}
}
}
}
This API allows to retrieve the configuration template for the connector.
type | string Default: "ldap_template" Allows to filter connectors config list on the type provided in this option.
|
accept required | string application/json |
content-type required | string application/json |
{- "data": {
- "id": "56c5c19f94141765119f896c",
- "type": "ldap_template",
- "name": "template",
- "settings": {
- "massproFromLdap": {
- "loginEmail": {
- "default": "mail",
- "mandatory": true
}, - "ldap_id": {
- "default": "objectGUID",
- "mandatory": true
}, - "firstName": {
- "default": "givenName",
- "mandatory": true
}, - "lastName": {
- "default": "sn",
- "mandatory": true
}, - "jobTitle": {
- "default": "title"
}, - "departement": {
- "default": "department"
}, - "businessPhone0": {
- "default": "telephoneNumber"
}, - "mobilePhone0": {
- "default": "mobile"
}, - "email0": {
- "default": "mail"
}, - "title": {
- "default": ""
}, - "country": {
- "default": ""
}, - "language": {
- "default": ""
}, - "timezone": {
- "default": ""
}, - "pbxShortNumber": {
- "default": ""
}, - "pbxInternalNumber": {
- "default": ""
}, - "number": {
- "default": ""
}, - "tags0": {
- "default": ""
}, - "tags1": {
- "default": ""
}, - "tags2": {
- "default": ""
}, - "tags3": {
- "default": ""
}, - "tags4": {
- "default": ""
}, - "userInfo1": {
- "default": ""
}, - "userInfo2": {
- "default": ""
}, - "businessPhone1": {
- "default": ""
}, - "mobilePhone1": {
- "default": ""
}, - "email1": {
- "default": ""
}
}, - "company": {
- "login": {
- "mandatory": true
}, - "password": {
- "mandatory": true
}, - "url": {
- "mandatory": true
}, - "domain": {
- "mandatory": false
}, - "baseDN": {
- "mandatory": true
}, - "synchronizationTimeInterval": {
- "default": 6,
- "mandatory": true
}, - "search_rule": {
- "default": "",
- "mandatory": true
}, - "activeFlag": {
- "default": "false",
- "mandatory": true
}, - "synchronisationDiffMode": {
- "default": "false",
- "mandatory": true
}, - "enrollmentEmailEnable": {
- "default": "false",
- "mandatory": true
}, - "nextSynchronization": {
- "mandatory": false
}, - "lastSynchronization": {
- "mandatory": false
}, - "softwareVersion": {
- "mandatory": false
}
}
}
}
}