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 has to be provided 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 retrieve users, companies or bots avatar.
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 512px:
Notes regarding bots avatar:
entityId
value to set in this URL corresponds to the field avatarId
of the related bot resource.avatarId
value depends on the fact that the bot's avatar is customized or not for logged in user's company.entityId required | string User, Company unique identifier or Bot avatarId. |
update required | string Specify MD5(lastAvatarUpdateDate[DateTime format]) value from the user, company or bot for which the avatar is requested to ensure retrieving the latest avatar image (avatars are cached). |
size required | number [ 1 .. 512 ] Default: 80 Specify avatar size in pixels (square size x size) |
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 |
{- "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.Only a superadmin is allowed to handle avatars for 'Default' and 'Terminated' companies.
To get the company's avatar, use the API GET /api/avatar/:entityId.
companyId required | string Company for which list of administrators is requested |
File to be sent
{- "status": "Avatar successfully set for company 56c5c19f94141765119f896c",
- "data": [ ]
}
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 :
Note that following data linked to the company will be deleted too:
companyId required | string Company unique identifier (like 569ce8c8f9336c471b98eda1) |
{- "status": "Company 5901d451faae4928ef13bb78 successfully disabled",
- "data": {
- "latin_name": "ter_1495051516804_test - acme central team",
- "name": "ter_1495051516804_test - ACME central team",
- "bpHasRightToConnect": false,
- "bpHasRightForBYOT": false,
- "preferredSipLoadBalancerId": null,
- "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",
- "csEmailList": [
- "cs.email@alcatel-lucent.com"
], - "seEmailList": [
- "se.email1@alcatel-lucent.com",
- "se.email2@alcatel-lucent.com"
], - "csmEmailList": [
- "csm.email@alcatel-lucent.com"
], - "kamEmailList": [
- "kam.email@alcatel-lucent.com"
], - "id": "5901d451faae4928ef13bb78"
}
}
Users with 'superadmin', 'support', 'customer_success_admin', 'sales_analytics' 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:
|
{- "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,
- "bpHasRightForBYOT": false,
- "preferredSipLoadBalancerId": "6081b92d597e371a0e896cf8",
- "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",
- "eLearningCustomisation": "enabled",
- "eLearningGamificationCustomisation": "enabled",
- "meetingRecordingCustomisation": "enabled",
- "useOtherPhoneMode": "enabled",
- "useComputerMode": "enabled",
- "useSoftPhoneMode": "enabled",
- "useTeamsMode": "disabled",
- "imPopupDuration": 3,
- "canAccessWhatsNew": "enabled",
- "canAccessFaqCustomisation": "enabled",
- "canAccessHelpCenterCustomisation": "enabled",
- "canAccessStoreCustomisation": "enabled",
- "canDownloadAppCustomisation": "enabled",
- "canUseTestConfigCustomisation": "enabled",
- "canUseSendReportCustomisation": "enabled",
- "canUseTaskCustomisation": "enabled",
- "canCallParticipantPbxNumberCustomisation": "enabled",
- "canSetInvisiblePresenceCustomisation": "enabled",
- "receivedFileCustomisation": "enabled",
- "defaultLicenseGroup": "Enterprise",
- "defaultOptionsGroups": [
- "Alert",
- "Dial-in per use"
], - "selectedTheme": {
- "light": null,
- "dark": "5ea304e4359c0e6815fc8b57",
- "isLockedByBp": true
}, - "selectedThemeCustomers": {
- "light": "60104754c8fada2ad4be3e48",
- "dark": "5ea304e4359c0e6815fc8b57",
- "locked": true
}, - "supervisionGroupMaxNumber": 5,
- "supervisionGroupMaxSize": 1500,
- "supervisionGroupMaxUsers": 30,
- "csEmailList": [
- "cs.email@alcatel-lucent.com"
], - "seEmailList": [
- "se.email1@alcatel-lucent.com",
- "se.email2@alcatel-lucent.com"
], - "csmEmailList": [
- "csm.email@alcatel-lucent.com"
], - "kamEmailList": [
- "kam.email@alcatel-lucent.com"
]
}
}
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) |
selectedThemeObj | boolean Allows to return selectedTheme attribute as an object:
|
adminAllowedUpdateSubscriptionsOps | string Enum: "all" "increase_only" "monthly" 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
|
adminHasTheRightToEnableDeskphoneFailover | boolean Default: false Superadmin allows admins of the company to select a given deskphone failover configuration for its cloudpbx devices. |
adminServiceNotificationsLevel | string Enum: "high" "medium" "low" Level of service notification that admin should see |
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. |
allowTeamsToDesktopSso | boolean Default: true Superadmin allows if Teams add-in uses sso to login in desktop app for all company users |
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). |
allowedProviderIds | Array of strings A list of Provider Id that can be used company users to send sms. Only superddmin and bp_admin can set this field. |
autoAcceptUserInvitations | boolean Default: true Allow to enable or disable the auto-acceptation of user invitations between users of this company (default true: enabled) |
autoAddToUserNetwork | boolean Default: false Allow to enable or disable the auto addition to user's network between users of this company (default false: disabled) |
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
|
bpHasRightForBYOT | boolean When True, the BP can create a SIP Hybrid Trunk for its managed companies (means that Bring Your Own Trunk feature is available for the BP). So when False, the "hybrid trunk" tab should be removed from the admin GUI
|
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
|
object Set the business data of the company. Only settable by superadmin or business_admin.
| |
businessSpecific | string Value: "UGAP" Allow to specify if company has access to specific offers. Only settable by superadmin or business_admin. |
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 |
cloudPbxVoicemailToEmail | string Default: "none" Enum: "none" "simple" "complete" Cloudpbx email notification type when receiving a voicemail |
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 |
contentPolicyLifeTime | boolean Default: false When different from -1 it activates content removal for all user of this companies with a content lifetime equals to contentPolicyLifeTime in minutes |
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 |
csEmailList | Array of strings A list of Customer Success email addresses (maximum length : 10) |
csmEmailList | Array of strings A list of Channel Sales Manager email addresses (maximum length : 10) |
currency | string 3 characters Enum: "USD" "EUR" "CNY" Company currency, for payment of premium offers (ISO 4217 format)
|
customData | object Company's custom data.
Company customData can only be created/updated by:
|
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 ...) |
delegatedCallPushDisable | boolean Default: false This setting allows to avoid disabling telephony events on manager when call delegation is enabled in manager_assistant supervision group belonging to this company.
|
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.
|
displayIdrFiles | boolean Indicates if IDR files should be displayed to BP on Web Admin (invoices view). Only settable by superadmin or business_admin. |
documentGracePeriod | boolean Default: false When content removal is active for the organisation it represents the period in minutes where a document is still available event if it's content policy lifetime has expired |
economicActivityClassification | string Enum: "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N" "O" "P" "Q" "R" "S" "T" "U"
|
Array of objects (putCompaniesEndOfConferenceBehavior) Behavior settings after the end of conference. | |
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) |
hideContractInfo | boolean Superadmin and Business_admin can update this field. If true, the 4 contractual documents for BP are hidden. |
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) |
kamEmailList | Array of strings A list of Key Account Manager email addresses (maximum length : 10)
|
mobilePermanentConnectionMode | boolean Default: false deactivate push mode for mobile devices. |
name required | string [ 1 .. 255 ] characters Company name |
offerType | string Enum: "freemium" "premium" Company offer type.
|
postalCode | string [ 0 .. 64 ] characters Company postal code |
preferredSipLoadBalancerId | string Indicates the identifier of the preferred SIP Load Balancer (Rainbow Hub context ; used for HybridTrunks of associated ECs)
|
salesforceAccountId | string [ 0 .. 64 ] characters Customer's Salesforce reference.
|
salesforceAccountName | string [ 0 .. 64 ] characters Customer's Salesforce account name.
|
salesforceAccountOwner | string [ 0 .. 64 ] characters Customer's Salesforce account owner.
|
seEmailList | Array of strings A list of System Engineer email addresses (maximum length : 10) |
selectedDeviceFirmware | string Default: "released" Enum: "released" "latest" Cloudpbx default device firmware
|
object Set the selected theme(s) for users of the company. | |
object Set the selected theme(s) for customers of this BP company.
| |
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 |
supervisionGroupMaxNumber | number [ 0 .. 50 ] Default: 5 Maximum number of supervision groups a supervisor can belong to |
supervisionGroupMaxSize | number [ 0 .. 10000 ] Default: 1500 Maximum number of users a company can supervise |
supervisionGroupMaxUsers | number [ 0 .. 300 ] Default: 30 Maximum number of users in a supervision group (supervisor included) |
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 |
teamsPresenceOnRainbowBusyPhone | string Default: "Busy" Enum: "DoNotDisturb" "Busy" teams presence status configured when rainbow user has activated teams synchronisation and is busy |
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,
- "adminHasTheRightToEnableDeskphoneFailover": false,
- "adminServiceNotificationsLevel": "high",
- "alertNotificationReception": "disabled",
- "alertNotificationSending": "disabled",
- "allowCloudPbxRecording": false,
- "allowDeviceFirmwareSelection": false,
- "allowPhoneNumbersVisibility": false,
- "allowTeamsToDesktopSso": true,
- "allowUsersSelectPublicTheme": true,
- "allowUsersSelectTheme": true,
- "allowedProviderIds": [
- "string"
], - "autoAcceptUserInvitations": true,
- "autoAddToUserNetwork": false,
- "avatarShape": "square",
- "billingModel": "monthly",
- "bpApplicantNumber": "string",
- "bpBusinessModel": "referral",
- "bpBusinessType": [
- "voice_by_partner"
], - "bpCRDid": "string",
- "bpHasRightForBYOT": true,
- "bpHasRightToConnect": true,
- "bpHasRightToSell": true,
- "bpId": "string",
- "bpIsContractAccepted": false,
- "bpType": "IR",
- "businessData": {
- "area": "string",
- "cluster": "string",
- "commercialProgram": "string",
- "country": "string",
- "family": "string",
- "instance": "string",
- "region": "string",
- "type": "string"
}, - "businessSpecific": "UGAP",
- "catalogId": "string",
- "city": "string",
- "cloudPbxRecordingInboundOnly": true,
- "cloudPbxVoicemailToEmail": "none",
- "companyCallNumber": "string",
- "companyContactId": "string",
- "contentPolicyLifeTime": false,
- "country": "FRA",
- "csEmailList": [
- "string"
], - "csmEmailList": [
- "string"
], - "currency": "USD",
- "customData": { },
- "ddiReadOnly": true,
- "defaultLicenseGroup": "string",
- "defaultOptionsGroups": [
- "string"
], - "delegatedCallPushDisable": false,
- "description": "string",
- "disableCCareAdminAccess": true,
- "disableCCareAdminAccessCustomers": true,
- "disableCCareAdminAccessResellers": true,
- "displayIdrFiles": true,
- "documentGracePeriod": false,
- "economicActivityClassification": "A",
- "endOfConferenceBehavior": [
- {
- "behavior": "rainbow",
- "customUrl": "string"
}
], - "externalReference": "string",
- "externalReference2": "string",
- "giphyEnabled": true,
- "hideContractInfo": true,
- "isBP": true,
- "isCentrex": true,
- "kamEmailList": [
- "string"
], - "mobilePermanentConnectionMode": false,
- "name": "string",
- "offerType": "freemium",
- "postalCode": "string",
- "preferredSipLoadBalancerId": "string",
- "salesforceAccountId": "string",
- "salesforceAccountName": "string",
- "salesforceAccountOwner": "string",
- "seEmailList": [
- "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",
- "supervisionGroupMaxNumber": 5,
- "supervisionGroupMaxSize": 1500,
- "supervisionGroupMaxUsers": 30,
- "supportEmail": "string",
- "supportUrlFAQ": "string",
- "teamsPresenceOnRainbowBusyPhone": "Busy",
- "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",
- "autoAcceptUserInvitations": true,
- "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,
- "bpHasRightForBYOT": false,
- "preferredSipLoadBalancerId": "5703c52929778f618d5a4789",
- "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
}, - "allowTeamsToDesktopSso": true,
- "externalStorageAllowedAllUsers": false,
- "mainStorage": "Rainbow Storage",
- "rainbowStorageAllowedAllUsers": true,
- "useExternalStorage": "disabled",
- "useRainbowStorage": "enabled",
- "adminServiceNotificationsLevel": "high",
- "teamsPresenceOnRainbowBusyPhone": "DoNotDisturb",
- "allowedProviderIds": [
- "569ce8c8f9336c471b98eba2"
]
}
}
This API allows administrator to retrieve companies they can administrate.
Users with 'superadmin', 'support', 'customer_success_admin' 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.
|
businessSpecific | string Allows to filter companies list on businessSpecific.
|
salesEmail | string Allows to filter companies list on salesEmail
|
businessRegion | string Allows to filter companies list on region of business location
|
businessCluster | string Allows to filter companies list on cluster of business location
|
businessArea | string Allows to filter companies list on area of business location
|
businessCountry | string Allows to filter companies list on country of business location
|
isEdge | boolean Allows to return Edge companies. If not provided, Edge companies are not returned. |
limit | number [ 0 .. 1000 ] Default: 100 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 |
{- "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.
eLearningCustomisation - Activate/Deactivate the ability for a user to participate on an Elearning training.
eLearningGamificationCustomisation - Activate/Deactivate the ability for a user to earn badges for Elearning progress.
meetingRecordingCustomisation - Activate/Deactivate the ability for a user to record a meeting.
useOtherPhoneMode - Activate/Deactivate the ability for a user to be on other phone mode.
useComputerMode - Activate/Deactivate the ability for a user to be on computer mode.
useSoftPhoneMode - Activate/Force/Deactivate the ability for a user to be on softphone mode.
useTeamsMode - Activate/Deactivate the ability for a user to be on Teams mode.
imPopupDuration - Defines the IM popup duration.
canAccessWhatsNew - Activate/Deactivate the ability for a user to access to what's new.
canAccessFaqCustomisation - Activate/Deactivate the ability for a user to access to FAQ.
canAccessHelpCenterCustomisation - Activate/Deactivate the ability for a user to access to help center.
canAccessStoreCustomisation - Activate/Deactivate the ability for a user to access to Rainbow store.
canDownloadAppCustomisation - Activate/Deactivate the ability for a user to download Rainbow application.
canUseTestConfigCustomisation - Activate/Deactivate the ability for a user to test the configuration.
canUseSendReportCustomisation - Activate/Deactivate the ability for a user to send report feature.
canUseTaskCustomisation - Activate/Deactivate the ability for a user to use task.
canCallParticipantPbxNumberCustomisation - Select the kind of number with what a user can call a participant.
canSetInvisiblePresenceCustomisation - Activate/Deactivate the ability for a user to set invisible presence.
receivedFileCustomisation: to restrict the receiving of files and protect from data coming from a foreign user of the company
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.
selectedThemeObj | boolean Allows to return selectedTheme attribute as an object:
|
adminAllowedUpdateSubscriptionsOps | string Enum: "all" "increase_only" "monthly" 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
|
adminHasTheRightToEnableDeskphoneFailover | boolean Default: false Superadmin allows admins of the company to select a given deskphone failover configuration for its cloudpbx devices. |
adminServiceNotificationsLevel | string Enum: "high" "medium" "low" Level of service notification that admin should see |
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. |
allowTeamsToDesktopSso | boolean Default: true Superadmin allows if Teams add-in uses sso to login in desktop app for all company users |
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). |
allowedProviderIds | Array of strings A list of Provider Id that can be used company users to send sms. Only superddmin and bp_admin can set this field. |
autoAcceptUserInvitations | boolean Default: true Allow to enable or disable the auto-acceptation of user invitations between users of this company (default true: enabled) |
autoAddToUserNetwork | boolean Default: false Allow to enable or disable the auto addition to user's network between users of this company (default false: disabled) |
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
|
bpHasRightForBYOT | boolean When True, the BP can create a SIP Hybrid Trunk for its managed companies (means that Bring Your Own Trunk feature is available for the BP). So when False, the "hybrid trunk" tab should be removed from the admin GUI
|
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
|
object Set the business data of the company. Only settable by superadmin or business_admin.
| |
businessSpecific | string Value: "UGAP" Allow to specify if company has access to specific offers. Only settable by superadmin or business_admin. |
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 |
cloudPbxVoicemailToEmail | string Default: "none" Enum: "none" "simple" "complete" Cloudpbx email notification type when receiving a voicemail |
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 |
contentPolicyLifeTime | boolean Default: false When different from -1 it activates content removal for all user of this companies with a content lifetime equals to contentPolicyLifeTime in minutes |
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 |
csEmailList | Array of strings A list of Customer Success e-mail addresses (maximum length : 10) |
csmEmailList | Array of strings A list of Channel Sales Manager e-mail addresses (maximum length : 10) |
currency | string 3 characters Enum: "USD" "EUR" "CNY" Company currency, for payment of premium offers (ISO 4217 format)
|
customData | object Company's custom data.
Company customData can only be created/updated by:
|
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 ...) |
delegatedCallPushDisable | boolean Default: false This setting allows to avoid disabling telephony events on manager when call delegation is enabled in manager_assistant supervision group belonging to this company.
|
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.
|
documentGracePeriod | boolean Default: false When content removal is active for the organisation it represents the period in minutes where a document is still available event if it's content policy lifetime has expired |
economicActivityClassification | string Enum: "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N" "O" "P" "Q" "R" "S" "T" "U"
|
Array of objects (postCompaniesEndOfConferenceBehavior) Behavior settings after the end of conference. | |
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) |
hideContractInfo | boolean Superadmin and Business_admin can update this field. If true, the 4 contractual documents for BP are hidden. |
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) |
isEdge | boolean Indicates if company is an Edge company. |
kamEmailList | Array of strings A list of Key Account Manager e-mail addresses (maximum length : 10)
|
mobilePermanentConnectionMode | boolean Default: false deactivate push mode for mobile devices. |
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 |
preferredSipLoadBalancerId | string Indicates the identifier of the preferred SIP Load Balancer (Rainbow Hub context ; used for HybridTrunks of associated ECs)
|
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 Customer's Salesforce reference.
|
salesforceAccountName | string [ 0 .. 64 ] characters Customer's Salesforce account name.
|
salesforceAccountOwner | string [ 0 .. 64 ] characters Customer's Salesforce account owner.
|
seEmailList | Array of strings A list of System Engineer e-mail addresses (maximum length : 10) |
selectedDeviceFirmware | string Default: "released" Enum: "released" "latest" Cloudpbx default device firmware
|
object Set the selected theme(s) for users of the company. | |
object Set the selected theme(s) for customers of this BP company.
| |
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 |
teamsPresenceOnRainbowBusyPhone | string Enum: "DoNotDisturb" "Busy" teams presence status to configure when rainbow user has activated teams synchronisation and is busy |
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,
- "adminHasTheRightToEnableDeskphoneFailover": false,
- "adminServiceNotificationsLevel": "high",
- "alertNotificationReception": "disabled",
- "alertNotificationSending": "disabled",
- "allowDeviceFirmwareSelection": false,
- "allowTeamsToDesktopSso": true,
- "allowUsersSelectPublicTheme": true,
- "allowUsersSelectTheme": true,
- "allowedProviderIds": [
- "string"
], - "autoAcceptUserInvitations": true,
- "autoAddToUserNetwork": false,
- "avatarShape": "square",
- "billingModel": "monthly",
- "bpApplicantNumber": "string",
- "bpBusinessModel": "referral",
- "bpBusinessType": [
- "voice_by_partner"
], - "bpCRDid": "string",
- "bpHasRightForBYOT": true,
- "bpHasRightToConnect": true,
- "bpHasRightToSell": true,
- "bpId": "string",
- "bpIsContractAccepted": false,
- "bpType": "IR",
- "businessData": {
- "area": "string",
- "cluster": "string",
- "commercialProgram": "string",
- "country": "string",
- "family": "string",
- "instance": "string",
- "region": "string",
- "type": "string"
}, - "businessSpecific": "UGAP",
- "catalogId": "string",
- "city": "string",
- "cloudPbxVoicemailToEmail": "none",
- "companyCallNumber": "string",
- "companyContactId": "string",
- "contentPolicyLifeTime": false,
- "country": "FRA",
- "csEmailList": [
- "string"
], - "csmEmailList": [
- "string"
], - "currency": "USD",
- "customData": { },
- "ddiReadOnly": true,
- "defaultLicenseGroup": "string",
- "defaultOptionsGroups": [
- "string"
], - "delegatedCallPushDisable": false,
- "description": "string",
- "disableCCareAdminAccess": true,
- "disableCCareAdminAccessCustomers": true,
- "disableCCareAdminAccessResellers": true,
- "documentGracePeriod": false,
- "economicActivityClassification": "A",
- "endOfConferenceBehavior": [
- {
- "behavior": "rainbow",
- "customUrl": "string"
}
], - "externalReference": "string",
- "externalReference2": "string",
- "giphyEnabled": true,
- "hideContractInfo": true,
- "isBP": true,
- "isCentrex": true,
- "isEdge": true,
- "kamEmailList": [
- "string"
], - "mobilePermanentConnectionMode": false,
- "name": "string",
- "offerType": "freemium",
- "postalCode": "string",
- "preferredSipLoadBalancerId": "string",
- "privateDC": "string",
- "salesforceAccountId": "string",
- "salesforceAccountName": "string",
- "salesforceAccountOwner": "string",
- "seEmailList": [
- "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",
- "teamsPresenceOnRainbowBusyPhone": "DoNotDisturb",
- "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",
- "autoAcceptUserInvitations": true,
- "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,
- "bpHasRightForBYOT": false,
- "preferredSipLoadBalancerId": "5703c52929778f618d5a4789",
- "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
}, - "allowTeamsToDesktopSso": true,
- "externalStorageAllowedAllUsers": false,
- "mainStorage": "Rainbow Storage",
- "rainbowStorageAllowedAllUsers": true,
- "useExternalStorage": "disabled",
- "useRainbowStorage": "enabled",
- "adminServiceNotificationsLevel": "high",
- "teamsPresenceOnRainbowBusyPhone": "DoNotDisturb",
- "allowedProviderIds": [
- "569ce8c8f9336c471b98eba2"
]
}
}
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. |
{- "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 |
{- "errorCode": 400,
- "errorMsg": "Bad Request",
- "errorDetails": [
- {
- "param": "companyId",
- "msg": "Invalid resource identifiers, expected UUID: identifier must be alpha-numeric and have a length of 24 chars",
- "value": "1"
}
], - "errorDetailsCode": 400000
}
companyId required | string Company for which list of custom elements is requested. |
{- "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. |
{- "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:
|
{- "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",
- "autoAcceptUserInvitations": true,
- "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,
- "bpHasRightForBYOT": false,
- "preferredSipLoadBalancerId": "5703c52929778f618d5a4789",
- "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
}, - "allowTeamsToDesktopSso": true,
- "externalStorageAllowedAllUsers": false,
- "mainStorage": "Rainbow Storage",
- "rainbowStorageAllowedAllUsers": true,
- "useExternalStorage": "disabled",
- "useRainbowStorage": "enabled",
- "adminServiceNotificationsLevel": "high",
- "teamsPresenceOnRainbowBusyPhone": "DoNotDisturb",
- "allowedProviderIds": [
- "569ce8c8f9336c471b98eba2"
]
}
}
This API allows administrators to update properties for all company users (that could be categorized by using specific tag) among :
companyId required | string Company for which service description file is requested |
tags | string[] Tags to categorize a subset of company users for which modification should applied |
isActive required | boolean isActive property of a user to modify |
{- "isActive": true
}
{- "total": 15,
- "updated": 10
}
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 |
{- "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.Only a superadmin is allowed to handle avatars for 'Default' and 'Terminated' companies.
To get the company's avatar, use the API GET /api/avatar/:entityId.
companyId required | string Company for which list of administrators is requested |
File to be sent
{- "status": "Avatar successfully set for company 56c5c19f94141765119f896c",
- "data": [ ]
}
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 |
{- "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 |
File to be sent
{- "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 [ 1 .. 512 ] Default: 80 Specify avatar size in pixels (square size x size) |
This API can be used to retrieve company's background (logo).
Example: GET https://openrainbow.com/api/backgrounds/625eace8edc658748e53c2d2?size=128
Client can request backgrounds in a given size by specifying size query string parameter.
Background file can be resized from 1px to its original resolution, with a maximum of 2048px:
backgroundId required | string Background unique identifier(like 625eace8edc658748e53c2ef) |
size required | number [ 1 .. 512 ] Default: 80 Specify background size in pixels (square size x size) |
This API allows to delete a Calendar.
calendarId required | string Unique identifier of the Calendar to delete |
companyId required | string Company unique identifier (like 569ce8c8f9336c471b98eda1) |
{- "status": "Calendar 56c5c19f94141765119f896c successfully deleted",
- "data": [ ]
}
This API allows to get a calendar for a given company
Example: GET https://openrainbow.com/api/rainbow/admin/v1.0/companies/5cd545b3a07de465fb123456/calendars/5cd545b3a07de465fb185969
calendarId required | string Unique identifier of the calendar to update |
companyId required | string Company unique identifier (like 569ce8c8f9336c471b98eda1) |
{- "data": {
- "id": "5cd545b3a07de465fbc3fcda",
- "name": "Calendar_1",
- "timezone": "Europe/Paris",
- "manualMode": {
- "mode": "default",
- "startDate": null,
- "endDate": null
}, - "officehours": {
- "openhours": [
- [
- [
- "00:00",
- "23:59"
]
], - [
- [
- "5:30",
- "12:30"
], - [
- "15:30",
- "18:30"
]
], - [ ],
- [
- [
- "5:30",
- "12:30"
], - [
- "15:30",
- "18:30"
]
], - [ ],
- [
- [
- "5:30",
- "12:30"
], - [
- "15:30",
- "18:30"
]
], - [
- [
- "6:00",
- "12:30"
]
]
], - "exceptions": [
- {
- "year": 2021,
- "month": 3,
- "mday": 9,
- "periods": [
- [
- "00:00",
- "23:59"
]
], - "open": false
}, - {
- "year": 2021,
- "month": 3,
- "mday": 10,
- "periods": [
- [
- "00:00",
- "23:59"
]
], - "open": true
}, - {
- "year": 2021,
- "month": 3,
- "mday": 19,
- "periods": [
- [
- "08:00",
- "12:00"
], - [
- "14:00",
- "18:00"
]
], - "open": true
}
]
}
}
}
This API allows to modify settings of a Calendar.
Modification can be done on the following settings of a calendar:
calendarId required | string Unique identifier of the calendar to update |
companyId required | string Company unique identifier (like 569ce8c8f9336c471b98eda1) |
name | string Calendar name |
object |
{- "name": "string",
- "officehours": {
- "exceptions": [
- { }
], - "openhours": [
- { }
]
}
}
{- "data": {
- "id": "5cd545b3a07de465fbc3fcda",
- "name": "Calendar_1",
- "timezone": "Europe/Paris",
- "manualMode": {
- "mode": "default",
- "startDate": null,
- "endDate": null
}, - "officehours": {
- "openhours": [
- [
- [
- "00:00",
- "23:59"
]
], - [
- [
- "5:30",
- "12:30"
], - [
- "15:30",
- "18:30"
]
], - [ ],
- [
- [
- "5:30",
- "12:30"
], - [
- "15:30",
- "18:30"
]
], - [ ],
- [
- [
- "5:30",
- "12:30"
], - [
- "15:30",
- "18:30"
]
], - [
- [
- "6:00",
- "12:30"
]
]
], - "exceptions": [
- {
- "year": 2021,
- "month": 3,
- "mday": 9,
- "periods": [
- [
- "00:00",
- "23:59"
]
], - "open": false
}, - {
- "year": 2021,
- "month": 3,
- "mday": 10,
- "periods": [
- [
- "00:00",
- "23:59"
]
], - "open": true
}, - {
- "year": 2021,
- "month": 3,
- "mday": 19,
- "periods": [
- [
- "08:00",
- "12:00"
], - [
- "14:00",
- "18:00"
]
], - "open": true
}
]
}
}
}
This API allows to get all the calendars for a given company
companyId required | string Company unique identifier (like 569ce8c8f9336c471b98eda1) |
sortField | string Default: "name" Sort items list based on the given field |
name | string Filter calendars whose name contain the given filter |
limit | number [ 0 .. 1000 ] Default: 100 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. |
{- "data": [
- {
- "id": "5cd545b3a07de465fbc3fcda",
- "name": "Calendar_1"
}, - {
- "name": "Calendar_2",
- "id": "6311b808fec56c1edc7f6089"
}
], - "limit": 100,
- "offset": 0,
- "total": 2
}
This API allows to create a new Calendar.
companyId required | string Company unique identifier (like 569ce8c8f9336c471b98eda1) |
name required | string Calendar name |
{- "name": "string"
}
{- "data": {
- "id": "5cd545b3a07de465fbc3fcda",
- "name": "Calendar_1",
- "timezone": "Europe/Paris",
- "manualMode": {
- "mode": "default",
- "startDate": null,
- "endDate": null
}, - "officehours": {
- "openhours": [
- [
- [
- "00:00",
- "23:59"
]
], - [
- [
- "5:30",
- "12:30"
], - [
- "15:30",
- "18:30"
]
], - [ ],
- [
- [
- "5:30",
- "12:30"
], - [
- "15:30",
- "18:30"
]
], - [ ],
- [
- [
- "5:30",
- "12:30"
], - [
- "15:30",
- "18:30"
]
], - [
- [
- "6:00",
- "12:30"
]
]
], - "exceptions": [
- {
- "year": 2021,
- "month": 3,
- "mday": 9,
- "periods": [
- [
- "00:00",
- "23:59"
]
], - "open": false
}, - {
- "year": 2021,
- "month": 3,
- "mday": 10,
- "periods": [
- [
- "00:00",
- "23:59"
]
], - "open": true
}, - {
- "year": 2021,
- "month": 3,
- "mday": 19,
- "periods": [
- [
- "08:00",
- "12:00"
], - [
- "14:00",
- "18:00"
]
], - "open": true
}
]
}
}
}
This API allows to modify mode of a Calendar.
Modification will be forwarded to welcome services linked to it if the company have a Cloud PBX:
You can force to open when you're closed (at the time of the action) till the next open periods
Examples:
On Tuesdays the office hours are from 09:00(AM) to 12:30(PM) and from 14:00(PM) to 17:00(PM)
It's 11 o'clock and you have to go, you force the opening --> error you're already open
you force the closing --> will be closed from 11:00(AM) to 12:30(PM)
It's 12:31(PM), you force the closing --> error you're already closed
you force the opening --> will be open from 12:31(PM) to 14:00(PM)
It's 17:01(PM), you force the closing --> error you're already closed
you force the opening --> will be open from 17:01(PM) to the first Wenesday's open period
If mode is open and endDate is null --> always open, no open period found.
calendarId required | string Unique identifier of the calendar to update |
companyId required | string Company unique identifier (like 569ce8c8f9336c471b98eda1) |
mode required | string Enum: "open" "closed" "default" Force open if closed, or closed if open or default to go back to pre configured office hours |
{- "data": [
- {
- "endDate": "2019-08-24",
- "mode": "string",
- "startDate": "2019-08-24"
}
]
}
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)
or if he has the feature ADMIN_CAN_SET_CUSTOM_DATA
(if the feature is enabled, it overwrites the value of the company setting).companyId required | string Company unique identifier (like 569ce8c8f9336c471b98eda1) |
customData required | object Company's custom data.
Company customData can only be created/updated by:
|
{- "customData": { }
}
{- "data": {
- "id": "569ce8c8f9336c471b98eda1",
- "customData": {
- "key1ANumber": 123,
- "key2AString": "a string",
- "key3ABoolean": true,
- "key4AnObject": {
- "myKey": "My value"
}
}
}
}
This API allows to get all the groups of a Cloud PBX for a given company
companyId required | string Company unique identifier (like 569ce8c8f9336c471b98eda1) |
sortField | string Default: "name" Sort items list based on the given field |
name | string Filter groups whose name contain the given filter |
shortNumber | string Filter groups whose short phone number contain the given filter |
externalNumber | string Filter groups whose external number contain the given filter |
memberId | string Filter groups containing the given member |
type | string Filter groups according to its type (Can be one of the following values: call_queue, hunting_group, manager_assistant or a comma seperated list of these values) |
siteId | string Allows to filter users list on the siteIds provided in this option. |
limit | number [ 0 .. 1000 ] Default: 100 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. |
{- "data": [
- {
- "id": "5cd545b3a07de465fbc3fcda",
- "name": "Group_1",
- "type": "hunting_group",
- "subType": "hg_attendant",
- "policy": "serial",
- "shortNumber": 81002,
- "externalNumber": "+33298564112",
- "isRecordingActivated": false,
- "recordingProfile": "none",
- "isEmergencyGroup": false,
- "isEmptyAllowed": false,
- "isDDIUpdateByManagerAllowed": true,
- "companyId": "5dcd8dcec7e1620643a2045e",
- "systemId": "5de6a632c21aa17bab337347"
}, - {
- "type": "hunting_group",
- "subType": "manager_assistant",
- "isEmergencyGroup": false,
- "isRecordingActivated": false,
- "recordingProfile": "none",
- "isEmptyAllowed": true,
- "isDDIUpdateByManagerAllowed": true,
- "name": "POL_GP6_HG",
- "policy": "serial",
- "phoneNumberId": "6311b6e9fec56c1edc7f6086",
- "roomId": "6311babcfec56c1edc7f608a",
- "id": "6311b808fec56c1edc7f6089",
- "shortNumber": "90026",
- "externalNumber": null,
- "nbMembers": 3,
- "companyId": "5dcd8dcec7e1620643a2045e",
- "systemId": "5de6a632c21aa17bab337347"
}, - {
- "type": "manager_assistant",
- "isEmergencyGroup": false,
- "isRecordingActivated": false,
- "recordingProfile": "none",
- "isEmptyAllowed": true,
- "name": "POL_MA1",
- "id": "631200038bbd9b06452167c1",
- "nbMembers": 2,
- "companyId": "5dcd8dcec7e1620643a2045e",
- "systemId": "5de6a632c21aa17bab337347"
}
], - "limit": 100,
- "offset": 0,
- "total": 3
}
This API allows to get data of a Cloud PBX group
groupId required | string Unique identifier of the Cloud PBX group to retrieve |
companyId required | string Company unique identifier (like 569ce8c8f9336c471b98eda1) |
{- "data": {
- "id": "5cd545b3a07de465fbc3fcdf",
- "name": "Group_2",
- "type": "manager_assistant",
- "createdBy": "5cd5443fd9736d8431b5c185",
- "companyId": "5dcd8dcec7e1620643a2045e",
- "systemId": "5de6a632c21aa17bab337347",
- "members": [
- {
- "memberId": "5cd545b3a07de465fb123456",
- "displayName": "Alice Donner",
- "roles": [
- "assistant"
], - "status": "active"
}, - {
- "memberId": "5cd545b3a07de465fb123457",
- "displayName": "Bob the DIY man",
- "roles": [
- "assistant"
], - "status": "active"
}, - {
- "memberId": "5cd545b3a07de465fb123458",
- "displayName": "Carole Bouquet",
- "roles": [
- "manager"
], - "status": "active"
}
]
}
}
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. |
{- "data": [
- {
- "name": "ALE1",
- "id": "569ce8c8f9336c471b98eda1"
}, - {
- "name": "ALE2",
- "id": "569ce938f9336c471b98eda2"
}
], - "total": 2,
- "limit": 100,
- "offset": 0
}
This API allows an administrator to apply an application customisation template to a company or a user
superadmin
, bp_admin
and company_admin
can apply templates available for any company (public or private template)Each template has a type
:
It may have only one template of default_company and default_user type.
A default_company or default_user template is always public.
default_company is created by Rainbow team under name Full
.
default_user is a template used to reset user with default values. It is created by Rainbow team under name Same as company
. It is public too.
An 'other' template is public or private. If private
, it belongs to a company.
A private_default_company is private and belongs to a standalone company. It may have only one private_default_company
per company.
To apply a template, a template name
plus a companyId
or a userId
must be set. When both companyId or userId are set, an error occurs (400000).
You can find on which companies the template has been applied by using the API GET /api/rainbow/admin/v1.0/companies/?selectedAppCustomisationTemplate=:templateId.
The company field selectedAppCustomisationTemplate
is the last template applied for this company.
companyId required | string Company unique identifier |
name required | string [ 1 .. 64 ] characters Template name. |
userId required | string User unique identifier { "name" : "File storage deactivation", "companyId": "5749ab92245015fe0d36e96a" } |
{- "companyId": "string",
- "name": "string",
- "userId": "string"
}
{- "status": "Template 'File storage deactivation' successfully applied to company 5749ab92245015fe0d36e96a",
- "data": {
- "id": "5749ab92245015fe0d36e96a",
- "selectedAppCustomisationTemplate": "5d3704dc78ef1b101f69a01f",
- "instantMessagesCustomisation": "enabled",
- "useGifCustomisation": "enabled",
- "fileSharingCustomisation": "enabled",
- "fileStorageCustomisation": "disabled",
- "phoneMeetingCustomisation": "enabled",
- "useDialOutCustomisation": "enabled",
- "useChannelCustomisation": "enabled",
- "useRoomCustomisation": "enabled",
- "useScreenSharingCustomisation": "enabled",
- "useWebRTCAudioCustomisation": "enabled",
- "useWebRTCOnlyIfMobileLoggedCustomisation": "enabled",
- "useWebRTCVideoCustomisation": "enabled",
- "recordingConversationCustomisation": "enabled",
- "overridePresenceCustomisation": "enabled",
- "userProfileCustomisation": "enabled",
- "userTitleNameCustomisation": "enabled",
- "changeTelephonyCustomisation": "enabled",
- "changeSettingsCustomisation": "enabled",
- "fileCopyCustomisation": "enabled",
- "fileTransferCustomisation": "enabled",
- "forbidFileOwnerChangeCustomisation": "enabled",
- "readReceiptsCustomisation": "enabled",
- "useSpeakingTimeStatistics": "enabled",
- "eLearningCustomisation": "enabled",
- "eLearningGamificationCustomisation": "enabled",
- "meetingRecordingCustomisation": "enabled",
- "useOtherPhoneMode": "enabled",
- "useComputerMode": "enabled",
- "useSoftPhoneMode": "enabled",
- "useTeamsMode": "disabled",
- "imPopupDuration": 3,
- "canAccessWhatsNew": "enabled",
- "canAccessFaqCustomisation": "enabled",
- "canAccessHelpCenterCustomisation": "enabled",
- "canAccessStoreCustomisation": "enabled",
- "canDownloadAppCustomisation": "enabled",
- "canUseTestConfigCustomisation": "enabled",
- "canUseSendReportCustomisation": "enabled",
- "canUseTaskCustomisation": "enabled",
- "canCallParticipantPbxNumberCustomisation": "enabled",
- "canSetInvisiblePresenceCustomisation": "enabled",
- "receivedFileCustomisation": "enabled"
}
}
This API allows an administrator to create an application customisation template for the given company.
The name of the template must be unique among all of its belonging to the company.
The template is always private. So it has automatically private
visibility.
It can includes following items. When some of them are missing, the default value enabled
is used. So the body can include only items to set with the state disabled
.
instantMessagesCustomisation
: to activate or deactivate the capability for a user to use and receive instant messages.useGifCustomisation
: to activate or deactivate the ability for a user to Use GIFs in conversations.fileSharingCustomisation
: to activate or deactivate file sharing capability per company, per userfileStorageCustomisation
: to activate or deactivate the capability for a user to access to the Rainbow file storage.phoneMeetingCustomisation
: to activate or deactivate the capability for a user to use phone meetings (PSTN conference).useDialOutCustomisation
: to activate or deactivate the capability for a user to use dial out in phone meetings.useChannelCustomisation
: to activate or deactivate the capability for a user to use a channel.useRoomCustomisation
: to activate or deactivate the capability for a user to use bubbles.useScreenSharingCustomisation
: to activate or deactivate the capability for a user to share his screen.useWebRTCAudioCustomisation
: to activate or deactivate the capability for a user to switch to a Web RTC audio conversation.useWebRTCOnlyIfMobileLoggedCustomisation
to activate or deactivate the capability for a user to receive web RTC call if mobile app is signed in.useWebRTCVideoCustomisation
: to activate or deactivate the capability for a user to switch to a Web RTC video conversation.recordingConversationCustomisation
: to activate or deactivate the capability for a user to record a conversation.overridePresenceCustomisation
: to activate or deactivate the capability for a user to change manually his presence status.userProfileCustomisation
: to activate or deactivate the capability for a user to modify globally his profile and not only (title, firstName, lastName).userTitleNameCustomisation
: to activate or deactivate the capability for a user to modify a part of his profile (title, firstName, lastName)changeTelephonyCustomisation
: to activate or deactivate the ability for a user to modify telephony settings like forward activation....changeSettingsCustomisation
: to activate or deactivate the ability for a user to change all client general settings.fileCopyCustomisation
: to activate or deactivate the ability for a user to copy any file he receives in his personal cloud space.fileTransferCustomisation
: to activate or deactivate the ability for a user to copy a file from a conversation then share it inside another conversation.forbidFileOwnerChangeCustomisation
: to activate or deactivate the ability for a user to loose the ownership on one file.readReceiptsCustomisation
: to activate or deactivate the ability for a user to allow a sender to check if a chat message is read.useSpeakingTimeStatistics
: to activate or deactivate the ability for a user to see speaking time statistics.eLearningCustomisation
: to activate or deactivate the ability for a user to participate on an Elearning training.eLearningGamificationCustomisation
: to activate or deactivate the ability for a user to earn badges for Elearning progress.meetingRecordingCustomisation
: to activate or deactivate the ability for a user to record a meeting.useOtherPhoneMode
: to activate or deactivate the ability for a user to be on other phone mode.useComputerMode
: to activate or deactivate the ability for a user to be on computer mode.useSoftPhoneMode
: to activate, force or deactivate the ability for a user to be on computer mode.useTeamsMode
: to activate or deactivate the ability for a user to be on computer mode.canAccessWhatsNew
: to activate or deactivate the ability for a user to access to what's new.canAccessFaqCustomisation
: to activate or deactivate the ability for a user to access to FAQ.canAccessHelpCenterCustomisation
: to activate or deactivate the ability for a user to access to help center.canAccessStoreCustomisation
: to activate or deactivate the ability for a user to access to Rainbow store.canDownloadAppCustomisation
: to activate or deactivate the ability for a user to download Rainbow application.canUseTestConfigCustomisation
: to activate or deactivate the ability for a user to test the configuration.canUseSendReportCustomisation
: to activate or deactivate the ability for a user to send report feature.canUseTaskCustomisation
: to activate or deactivate the ability for a user to use task.canSetInvisiblePresenceCustomisation
: to activate or deactivate the ability for a user to set invisible presence.canCallParticipantPbxNumberCustomisation
: to select the kind of call participant PBX number. This item admits the values internal
and national
too.canSetInvisiblePresenceCustomisation
: to disable the capability for users to set their presence to "Invisible"receivedFileCustomisation
: to restrict the receiving of files and protect from data coming from a foreign user of the companySome template values can be defined as null. When they're applied , the value inherits from its company value :
imPopupDuration
: to define the IM popup duration.This API infers the logical value of all items from non-exhaustive information of the administrator and create a consistent custom template, according with latest constraints of Rainbow platform.
Some inconsistencies may lead to an error (403628)
fileSharingCustomisation
can't be enabled when fileStorageCustomisation
is disabledfileCopyCustomisation
can't be enabled when fileStorageCustomisation
is disabledfileTransferCustomisation
can't be enabled when fileCopyCustomisation
is disabled, as we have to make a copy of the file before sharing it.useWebRTCVideoCustomisation
can't be enabled when useWebRTCAudioCustomisation
is disabledinstantMessagesCustomisation
can't be enabled when fileStorageCustomisation
is disabledinstantMessagesCustomisation
can't be enabled when fileSharingCustomisation
is disabledcanAccessFaqCustomisation | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the capability for a user to access to FAQ.
|
canAccessHelpCenterCustomisation | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the capability for a user to access to help center.
|
canAccessStoreCustomisation | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the capability for a user to access to Rainbow store.
|
canAccessWhatsNew | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the capability for a user to access to what's new.
|
canCallParticipantPbxNumberCustomisation | string Default: "enabled" Enum: "enabled" "disabled" "internal" "national" Select the kind of call participant number.
|
canDownloadAppCustomisation | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the capability for a user to download Rainbow application.
|
canSetInvisiblePresenceCustomisation | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the capability for a user to set invisible presence
|
canUseSendReportCustomisation | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the capability for a user to use send report feature.
|
canUseTaskCustomisation | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the capability for a user to use task.
|
canUseTestConfigCustomisation | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the capability for a user to test the configuration.
|
changeSettingsCustomisation | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the ability for a user to change all client general settings.
|
changeTelephonyCustomisation | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the ability for a user to modify telephony settings.
|
eLearningCustomisation | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the ability for a user to participate on an Elearning training.
|
eLearningGamificationCustomisation | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the ability for a user to earn badges for Elearning progress.
|
fileCopyCustomisation | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the capability for a user to copy files
|
fileSharingCustomisation | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate file sharing capability per company
|
fileStorageCustomisation | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the capability for a user to access to Rainbow file storage.
|
fileTransferCustomisation | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the ability for a user to transfer files.
|
forbidFileOwnerChangeCustomisation | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the ability for a user to loose the ownership on one file.
|
imPopupDuration | number Default: null Defines the IM popup duration. |
instantMessagesCustomisation | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the capability for a user to use instant messages.
|
meetingRecordingCustomisation | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the capability for a user to record a meeting.
|
name required | string [ 1 .. 64 ] characters Template name. |
overridePresenceCustomisation | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the capability for a user to change manually his presence.
|
ownedByCompany required | string Identifier of the company owning the template. |
phoneMeetingCustomisation | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the capability for a user to use phone meetings (PSTN conference).
|
readReceiptsCustomisation | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the ability for a user to allow a sender to check if a chat message is read.
|
receivedFileCustomisation | string Default: "enabled" Enum: "enabled" "internalOnly" "disabled" Restrict data received.
|
recordingConversationCustomisation | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the capability for a user to record a conversation.
|
useChannelCustomisation | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the capability for a user to use a channel.
|
useComputerMode | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the capability for a user to be on computer mode.
|
useDialOutCustomisation | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the capability for a user to use dial out in phone meetings.
|
useGifCustomisation | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the ability for a user to Use GIFs in conversations.
|
useOtherPhoneMode | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the capability for a user to be on other phone mode.
|
useRoomCustomisation | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the capability for a user to use bubbles.
|
useScreenSharingCustomisation | string Enum: "enabled" "disabled" Activate/Deactivate the capability for a user to share a screen.
|
useSoftPhoneMode | string Default: "enabled" Enum: "enabled" "disabled" "forced" Activate/Force/Deactivate the capability for a user to be on softphone mode.
|
useSpeakingTimeStatistics | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the ability for a user to see speaking time statistics.
|
useTeamsMode | string Default: "disabled" Enum: "enabled" "disabled" Activate/Deactivate the capability for a user to be on Teams mode.
|
useWebRTCAudioCustomisation | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the capability for a user to switch to a Web RTC audio conversation.
|
useWebRTCOnlyIfMobileLoggedCustomisation | string Default: "disabled" Enum: "enabled" "disabled" Activate/Deactivate the capability for a user to receive web RTC call if mobile app is signed in.
|
useWebRTCVideoCustomisation | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the capability for a user to switch to a Web RTC video conversation.
|
userProfileCustomisation | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the capability for a user to modify his profile.
|
userTitleNameCustomisation | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the capability for a user to modify his profile (title, firstName, lastName) per company
|
visibleBy | Array of strings When visibility is private, list of companyIds that can access the template (other than the 'ownedByCompany' one). |
{- "canAccessFaqCustomisation": "enabled",
- "canAccessHelpCenterCustomisation": "enabled",
- "canAccessStoreCustomisation": "enabled",
- "canAccessWhatsNew": "enabled",
- "canCallParticipantPbxNumberCustomisation": "enabled",
- "canDownloadAppCustomisation": "enabled",
- "canSetInvisiblePresenceCustomisation": "enabled",
- "canUseSendReportCustomisation": "enabled",
- "canUseTaskCustomisation": "enabled",
- "canUseTestConfigCustomisation": "enabled",
- "changeSettingsCustomisation": "enabled",
- "changeTelephonyCustomisation": "enabled",
- "eLearningCustomisation": "enabled",
- "eLearningGamificationCustomisation": "enabled",
- "fileCopyCustomisation": "enabled",
- "fileSharingCustomisation": "enabled",
- "fileStorageCustomisation": "enabled",
- "fileTransferCustomisation": "enabled",
- "forbidFileOwnerChangeCustomisation": "enabled",
- "imPopupDuration": null,
- "instantMessagesCustomisation": "enabled",
- "meetingRecordingCustomisation": "enabled",
- "name": "string",
- "overridePresenceCustomisation": "enabled",
- "ownedByCompany": "string",
- "phoneMeetingCustomisation": "enabled",
- "readReceiptsCustomisation": "enabled",
- "receivedFileCustomisation": "enabled",
- "recordingConversationCustomisation": "enabled",
- "useChannelCustomisation": "enabled",
- "useComputerMode": "enabled",
- "useDialOutCustomisation": "enabled",
- "useGifCustomisation": "enabled",
- "useOtherPhoneMode": "enabled",
- "useRoomCustomisation": "enabled",
- "useScreenSharingCustomisation": "enabled",
- "useSoftPhoneMode": "enabled",
- "useSpeakingTimeStatistics": "enabled",
- "useTeamsMode": "disabled",
- "useWebRTCAudioCustomisation": "enabled",
- "useWebRTCOnlyIfMobileLoggedCustomisation": "disabled",
- "useWebRTCVideoCustomisation": "enabled",
- "userProfileCustomisation": "enabled",
- "userTitleNameCustomisation": "enabled",
- "visibleBy": [
- "string"
]
}
{- "data": {
- "id": "5d3704dc78ef1b101f69a01f",
- "name": "File storage deactivation",
- "visibility": "private",
- "visibleBy": [
- "5b59bda0281683e168077b58"
], - "type": "other",
- "createdBy": "5ea8718c372f250889a3177e",
- "creationDate": "2020-08-14T16:09:15.816Z",
- "ownedByCompany": "57dc0644f44a97c9155cd462",
- "instantMessagesCustomisation": "enabled",
- "useGifCustomisation": "enabled",
- "fileSharingCustomisation": "enabled",
- "fileStorageCustomisation": "enabled",
- "phoneMeetingCustomisation": "enabled",
- "useDialOutCustomisation": "enabled",
- "useChannelCustomisation": "enabled",
- "useRoomCustomisation": "enabled",
- "useScreenSharingCustomisation": "enabled",
- "useWebRTCAudioCustomisation": "enabled",
- "useWebRTCVideoCustomisation": "enabled",
- "recordingConversationCustomisation": "enabled",
- "overridePresenceCustomisation": "enabled",
- "userProfileCustomisation": "enabled",
- "userTitleNameCustomisation": "enabled",
- "changeTelephonyCustomisation": "enabled",
- "changeSettingsCustomisation": "enabled",
- "fileCopyCustomisation": "enabled",
- "fileTransferCustomisation": "enabled",
- "forbidFileOwnerChangeCustomisation": "enabled",
- "readReceiptsCustomisation": "enabled",
- "useSpeakingTimeStatistics": "enabled",
- "eLearningCustomisation": "enabled",
- "eLearningGamificationCustomisation": "enabled",
- "meetingRecordingCustomisation": "enabled",
- "useWebRTCOnlyIfMobileLoggedCustomisation": "disabled",
- "useOtherPhoneMode": "enabled",
- "useComputerMode": "enabled",
- "useSoftPhoneMode": "enabled",
- "useTeamsMode": "enabled",
- "imPopupDuration": 3,
- "canAccessWhatsNew": "enabled",
- "canAccessFaqCustomisation": "enabled",
- "canAccessHelpCenterCustomisation": "enabled",
- "canAccessStoreCustomisation": "enabled",
- "canDownloadAppCustomisation": "enabled",
- "canUseTestConfigCustomisation": "enabled",
- "canUseSendReportCustomisation": "enabled",
- "canUseTaskCustomisation": "enabled",
- "canCallParticipantPbxNumberCustomisation": "enabled",
- "canSetInvisiblePresenceCustomisation": "enabled",
- "receivedFileCustomisation": "enabled"
}
}
This API allows administrator to retrieve application customisation templates supported by a given company.
superadmin
and support
can get templates available for any company (the requested company has to be specified in
companyId
query parameter).
bp_admin
and company_admin
get templates for its own company (no need to specify companyId
parameter).
Example: GET https://openrainbow.com/api/rainbow/admin/v1.0/customisations/templates?companyId=5749aa51245015fe0d36e968
companyId | string Select a company other than the one the user belongs to (must be an admin of the company) |
format | string Default: "small" Enum: "small" "medium" "full" Allows to retrieve more or less templates details in response.
|
limit | number Default: 100 Allow to specify the number of templates to retrieve. |
offset | number Allow to specify the position of first templates to retrieve (first template if not specified). Warning: if offset > total, no results are returned. |
sortField | string Default: "name" Sort templates list based on the given field. |
sortOrder | number Default: 1 Enum: -1 1 Specify order when sorting templates list. |
{- "data": [
- {
- "visibility": "public",
- "visibleBy": [ ],
- "name": "Full",
- "type": "default_company",
- "createdBy": null,
- "creationDate": "2020-08-14T16:09:15.644Z",
- "id": "5f36b72b5e9d426552cee58f"
}, - {
- "visibility": "public",
- "visibleBy": [ ],
- "name": "Audio only",
- "type": "other",
- "createdBy": null,
- "creationDate": "2020-08-14T16:09:15.812Z",
- "id": "5f36b72b5e9d426552cee590"
}, - {
- "visibility": "public",
- "visibleBy": [ ],
- "name": "Phone calls only",
- "type": "other",
- "createdBy": null,
- "creationDate": "2020-08-14T16:09:15.959Z",
- "id": "5f36b72b5e9d426552cee592"
}, - {
- "visibility": "public",
- "visibleBy": [ ],
- "name": "Same as company",
- "type": "default_user",
- "createdBy": null,
- "creationDate": "2020-08-14T16:09:15.965Z",
- "id": "5f36b72b5e9d426552cee593"
}, - {
- "visibility": "public",
- "visibleBy": [ ],
- "name": "Chat and Audio",
- "type": "other",
- "createdBy": null,
- "creationDate": "2020-08-14T16:09:15.816Z",
- "id": "5f36b72b5e9d426552cee591"
}, - {
- "visibility": "private",
- "visibleBy": [ ],
- "type": "other",
- "name": "File storage deactivation",
- "ownedByCompany": "5ea98bcb05deb651f5952ec7",
- "createdBy": "5ea990a405deb651f5952ed7",
- "creationDate": "2020-08-16T16:54:19.033Z",
- "id": "5f3964bb7e32352500eec6e3"
}
], - "limit": 100,
- "offset": 0,
- "total": 6
}
This API allows an administrator to delete an application customisation template.
Users with superadmin
role can delete any private template.
Users with bp_admin
or admin
role can only delete template they owned.
The template to delete may have been applied to one or several companies. So, before the template deletion, we have to go back to the application of this template. A default template is applied instead (Full).
This is done automatically and it could be necessary to advice the administrator before deleting the template.
You can find on which companies the template has been applied by using the API GET /api/rainbow/admin/v1.0/companies/?selectedAppCustomisationTemplate=:templateId
The company field selectedAppCustomisationTemplate
is the last template applied for this company.
templateId required | string Application customisation templates unique identifier (e.g. 5e53a3ab98fb963c5068f176) |
{- "status": "Template 5d3704dc78ef1b101f69a01f successfully deleted",
- "data": {
- "id": "5d3704dc78ef1b101f69a01f",
- "name": "File storage deactivation",
- "visibility": "private",
- "visibleBy": [
- "5b59bda0281683e168077b58",
- "59df9e8d62b1a045af96dd32"
], - "type": "other",
- "createdBy": "5ea8718c372f250889a3177e",
- "creationDate": "2020-08-14T16:09:15.816Z",
- "ownedByCompany": "57dc0644f44a97c9155cd462",
- "instantMessagesCustomisation": "enabled",
- "useGifCustomisation": "enabled",
- "fileSharingCustomisation": "enabled",
- "fileStorageCustomisation": "disabled",
- "phoneMeetingCustomisation": "enabled",
- "useDialOutCustomisation": "enabled",
- "useChannelCustomisation": "enabled",
- "useRoomCustomisation": "enabled",
- "useScreenSharingCustomisation": "enabled",
- "useWebRTCAudioCustomisation": "enabled",
- "useWebRTCOnlyIfMobileLoggedCustomisation": "disabled",
- "useWebRTCVideoCustomisation": "enabled",
- "recordingConversationCustomisation": "enabled",
- "overridePresenceCustomisation": "enabled",
- "userProfileCustomisation": "enabled",
- "userTitleNameCustomisation": "enabled",
- "changeTelephonyCustomisation": "enabled",
- "changeSettingsCustomisation": "enabled",
- "fileCopyCustomisation": "enabled",
- "fileTransferCustomisation": "enabled",
- "forbidFileOwnerChangeCustomisation": "enabled",
- "readReceiptsCustomisation": "enabled",
- "useSpeakingTimeStatistics": "enabled",
- "eLearningCustomisation": "enabled",
- "eLearningGamificationCustomisation": "enabled",
- "meetingRecordingCustomisation": "enabled",
- "useOtherPhoneMode": "enabled",
- "useComputerMode": "enabled",
- "useSoftPhoneMode": "enabled",
- "useTeamsMode": "disabled",
- "imPopupDuration": 3,
- "canAccessWhatsNew": "enabled",
- "canAccessFaqCustomisation": "enabled",
- "canAccessHelpCenterCustomisation": "enabled",
- "canAccessStoreCustomisation": "enabled",
- "canDownloadAppCustomisation": "enabled",
- "canUseTestConfigCustomisation": "enabled",
- "canUseSendReportCustomisation": "enabled",
- "canUseTaskCustomisation": "enabled",
- "canCallParticipantPbxNumberCustomisation": "enabled",
- "canSetInvisiblePresenceCustomisation": "enabled",
- "receivedFileCustomisation": "enabled"
}
}
This API allows administrator to retrieve the requested application customisation template
Example: GET https://openrainbow.com/api/rainbow/admin/v1.0/customisations/templates/5d3704dc78ef1b101f69a01f
templateId required | string Application customisation templates unique identifier (e.g. 5e53a3ab98fb963c5068f176) |
{- "data": {
- "id": "5d3704dc78ef1b101f69a01f",
- "name": "File storage deactivation",
- "visibility": "private",
- "visibleBy": [
- "5b59bda0281683e168077b58",
- "59df9e8d62b1a045af96dd32"
], - "type": "other",
- "createdBy": "5ea8718c372f250889a3177e",
- "creationDate": "2020-08-14T16:09:15.816Z",
- "ownedByCompany": "57dc0644f44a97c9155cd462",
- "instantMessagesCustomisation": "enabled",
- "useGifCustomisation": "enabled",
- "fileSharingCustomisation": "enabled",
- "fileStorageCustomisation": "disabled",
- "phoneMeetingCustomisation": "enabled",
- "useDialOutCustomisation": "enabled",
- "useChannelCustomisation": "enabled",
- "useRoomCustomisation": "enabled",
- "useScreenSharingCustomisation": "enabled",
- "useWebRTCAudioCustomisation": "enabled",
- "useWebRTCOnlyIfMobileLoggedCustomisation": "disabled",
- "useWebRTCVideoCustomisation": "enabled",
- "recordingConversationCustomisation": "enabled",
- "overridePresenceCustomisation": "enabled",
- "userProfileCustomisation": "enabled",
- "userTitleNameCustomisation": "enabled",
- "changeTelephonyCustomisation": "enabled",
- "changeSettingsCustomisation": "enabled",
- "fileCopyCustomisation": "enabled",
- "fileTransferCustomisation": "enabled",
- "forbidFileOwnerChangeCustomisation": "enabled",
- "readReceiptsCustomisation": "enabled",
- "useSpeakingTimeStatistics": "enabled",
- "eLearningCustomisation": "enabled",
- "eLearningGamificationCustomisation": "enabled",
- "meetingRecordingCustomisation": "enabled",
- "useOtherPhoneMode": "enabled",
- "useComputerMode": "enabled",
- "useSoftPhoneMode": "enabled",
- "useTeamsMode": "disabled",
- "imPopupDuration": 3,
- "canAccessWhatsNew": "enabled",
- "canAccessFaqCustomisation": "enabled",
- "canAccessHelpCenterCustomisation": "enabled",
- "canAccessStoreCustomisation": "enabled",
- "canDownloadAppCustomisation": "enabled",
- "canUseTestConfigCustomisation": "enabled",
- "canUseSendReportCustomisation": "enabled",
- "canUseTaskCustomisation": "enabled",
- "canCallParticipantPbxNumberCustomisation": "enabled",
- "canSetInvisiblePresenceCustomisation": "enabled",
- "receivedFileCustomisation": "enabled"
}
}
This API allows an administrator to update an application customisation template.
A public template can't be updated using this API. Update is only allowed via a database migration.
Only changing values should be passed in the body.
instantMessagesCustomisation
: to activate or deactivate the capability for a user to use and receive instant messages.
useGifCustomisation
: to activate or deactivate the ability for a user to Use GIFs in conversations.
fileSharingCustomisation
: to activate or deactivate file sharing capability per company, per user
fileStorageCustomisation
: to activate or deactivate the capability for a user to access to the Rainbow file storage.
phoneMeetingCustomisation
: to activate or deactivate the capability for a user to use phone meetings (PSTN conference).
useDialOutCustomisation
: to activate or deactivate the capability for a user to use dial out in phone meetings.
useChannelCustomisation
: to activate or deactivate the capability for a user to use a channel.
useRoomCustomisation
: to activate or deactivate the capability for a user to use bubbles.
useScreenSharingCustomisation
: to activate or deactivate the capability for a user to share his screen.
useWebRTCAudioCustomisation
: to activate or deactivate the capability for a user to switch to a Web RTC audio conversation.
useWebRTCOnlyIfMobileLoggedCustomisation
to activate or deactivate the capability for a user to receive web RTC call if mobile app is signed in.
useWebRTCVideoCustomisation
: to activate or deactivate the capability for a user to switch to a Web RTC video conversation.
recordingConversationCustomisation
: to activate or deactivate the capability for a user to record a conversation.
overridePresenceCustomisation
: to activate or deactivate the capability for a user to change manually his presence status.
userProfileCustomisation
: to activate or deactivate the capability for a user to modify globally his profile and not only (title, firstName, lastName).
userTitleNameCustomisation
: to activate or deactivate the capability for a user to modify a part of his profile (title, firstName, lastName)
changeTelephonyCustomisation
: to activate or deactivate the ability for a user to modify telephony settings like forward activation.
changeSettingsCustomisation
: to activate or deactivate the ability for a user to change all client general settings.
fileCopyCustomisation
: to activate or deactivate the ability for a user to copy any file he receives in his personal cloud space.
fileTransferCustomisation
: to activate or deactivate the ability for a user to copy a file from a conversation then share it inside another conversation.
forbidFileOwnerChangeCustomisation
: to activate or deactivate the ability for a user to loose the ownership on one file.
readReceiptsCustomisation
: to activate or deactivate the ability for a user to allow if a chat message is read..
useSpeakingTimeStatistics
: to activate or deactivate the ability for a user to see speaking time statistics.
eLearningCustomisation
: to activate or deactivate the ability for a user to participate on an Elearning training.
eLearningGamificationCustomisation
: to activate or deactivate the ability for a user to earn badges for Elearning progress.
meetingRecordingCustomisation
: to activate or deactivate the ability for a user to record a meeting.
useOtherPhoneMode
: to activate or deactivate the ability for a user to be on other phone mode.
useComputerMode
: to activate or deactivate the ability for a user to be on computer mode.
useSoftPhoneMode
: to activate, force or deactivate the ability for a user to be on softphone mode.
useTeamsMode
: to activate or deactivate the ability for a user to be on Teams mode.
imPopupDuration
: to define the IM popup duration.
canAccessWhatsNew
: to activate or deactivate the ability for a user to access to what's new.
canAccessFaqCustomisation
: to activate or deactivate the ability for a user to access to FAQ.
canAccessHelpCenterCustomisation
: to activate or deactivate the ability for a user to access to help center.
canAccessStoreCustomisation
: to activate or deactivate the ability for a user to access to Rainbow store.
canDownloadAppCustomisation
: to activate or deactivate the ability for a user to download Rainbow application.
canUseTestConfigCustomisation
: to activate or deactivate the ability for a user to test the configuration.
canUseSendReportCustomisation
: to activate or deactivate the ability for a user to use send report feature.
canUseTaskCustomisation
: to activate or deactivate the ability for a user to use task.
canSetInvisiblePresenceCustomisation
: to activate or deactivate the ability for a user to set invisible presence.
canCallParticipantPbxNumberCustomisation
: to select the kind of call participant PBX number.
canSetInvisiblePresenceCustomisation
: to disable the capability for users to set their presence to "Invisible"
receivedFileCustomisation
: to restrict the receiving of files and protect from data coming from a foreign user of the company
Some inconsistencies may lead to an error (403628)
fileSharingCustomisation
can't be enabled when fileStorageCustomisation
is disabledfileCopyCustomisation
can't be enabled when fileStorageCustomisation
is disabledfileTransferCustomisation
can't be enabled when fileCopyCustomisation
is disabled, as we have to make a copy of the file before sharing it.useWebRTCVideoCustomisation
can't be enabled when useWebRTCAudioCustomisation
is disabledinstantMessagesCustomisation
can't be enabled when fileStorageCustomisation
is disabledinstantMessagesCustomisation
can't be enabled when fileSharingCustomisation
is disabledvisibleBy
array: when provided, it will be fully replaced by the newly provided array.
when modified, a custom profile is propagated to all users using this profile
templateId required | string Application customisation templates unique identifier (e.g. 5e53a3ab98fb963c5068f176) |
canAccessFaqCustomisation | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the capability for a user to access to FAQ.
|
canAccessHelpCenterCustomisation | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the capability for a user to access to help center.
|
canAccessStoreCustomisation | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the capability for a user to access to Rainbow store.
|
canAccessWhatsNew | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the capability for a user to access to what's new.
|
canCallParticipantPbxNumberCustomisation | string Default: "enabled" Enum: "enabled" "disabled" "internal" "national" Select the kind of call participant number.
|
canDownloadAppCustomisation | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the capability for a user to download Rainbow application.
|
canSetInvisiblePresenceCustomisation | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the capability for a user to set invisible presence
|
canUseSendReportCustomisation | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the capability for a user to use send report feature.
|
canUseTaskCustomisation | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the capability for a user to use task.
|
canUseTestConfigCustomisation | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the capability for a user to test the configuration.
|
changeSettingsCustomisation | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the ability for a user to change all client general settings.
|
changeTelephonyCustomisation | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the ability for a user to modify telephony settings.
|
eLearningCustomisation | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the ability for a user to participate on an Elearning training.
|
eLearningGamificationCustomisation | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the ability for a user to earn badges for Elearning progress.
|
fileCopyCustomisation | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the capability for a user to copy files
|
fileSharingCustomisation | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate file sharing capability per company
|
fileStorageCustomisation | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the capability for a user to access to Rainbow file storage.
|
fileTransferCustomisation | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the ability for a user to transfer files.
|
forbidFileOwnerChangeCustomisation | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the ability for a user to loose the ownership on one file.
|
imPopupDuration | number Default: null Defines the IM popup duration. |
instantMessagesCustomisation | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the capability for a user to use instant messages.
|
meetingRecordingCustomisation | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the capability for a user to record a meeting.
|
name | string [ 1 .. 64 ] characters Template name. |
overridePresenceCustomisation | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the capability for a user to change manually his presence.
|
phoneMeetingCustomisation | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the capability for a user to use phone meetings (PSTN conference).
|
readReceiptsCustomisation | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the ability for a user to allow a sender to check if a chat message is read.
|
receivedFileCustomisation | string Default: "enabled" Enum: "enabled" "internalOnly" "disabled" Restrict data received.
|
recordingConversationCustomisation | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the capability for a user to record a conversation.
|
useChannelCustomisation | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the capability for a user to use a channel.
|
useComputerMode | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the capability for a user to be on computer mode.
|
useDialOutCustomisation | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the capability for a user to use dial out in phone meetings.
|
useGifCustomisation | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the ability for a user to Use GIFs in conversations.
|
useOtherPhoneMode | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the capability for a user to be on other phone mode.
|
useRoomCustomisation | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the capability for a user to use bubbles.
|
useScreenSharingCustomisation | string Enum: "enabled" "disabled" Activate/Deactivate the capability for a user to share a screen.
|
useSoftPhoneMode | string Default: "enabled" Enum: "enabled" "disabled" "forced" Activate/Force/Deactivate the capability for a user to be on softphone mode.
|
useSpeakingTimeStatistics | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the ability for a user to see speaking time statistics.
|
useTeamsMode | string Default: "disabled" Enum: "enabled" "disabled" Activate/Deactivate the capability for a user to be on Teams mode.
|
useWebRTCAudioCustomisation | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the capability for a user to switch to a Web RTC audio conversation.
|
useWebRTCOnlyIfMobileLoggedCustomisation | string Default: "disabled" Enum: "enabled" "disabled" Activate/Deactivate the capability for a user to receive web RTC call if mobile app is signed in.
|
useWebRTCVideoCustomisation | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the capability for a user to switch to a Web RTC video conversation.
|
userProfileCustomisation | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the capability for a user to modify his profile.
|
userTitleNameCustomisation | string Default: "enabled" Enum: "enabled" "disabled" Activate/Deactivate the capability for a user to modify his profile (title, firstName, lastName) per company
|
visibleBy | Array of strings When visibility is private, list of companyIds that can access the template (other than the 'ownedByCompany' one). |
{- "canAccessFaqCustomisation": "enabled",
- "canAccessHelpCenterCustomisation": "enabled",
- "canAccessStoreCustomisation": "enabled",
- "canAccessWhatsNew": "enabled",
- "canCallParticipantPbxNumberCustomisation": "enabled",
- "canDownloadAppCustomisation": "enabled",
- "canSetInvisiblePresenceCustomisation": "enabled",
- "canUseSendReportCustomisation": "enabled",
- "canUseTaskCustomisation": "enabled",
- "canUseTestConfigCustomisation": "enabled",
- "changeSettingsCustomisation": "enabled",
- "changeTelephonyCustomisation": "enabled",
- "eLearningCustomisation": "enabled",
- "eLearningGamificationCustomisation": "enabled",
- "fileCopyCustomisation": "enabled",
- "fileSharingCustomisation": "enabled",
- "fileStorageCustomisation": "enabled",
- "fileTransferCustomisation": "enabled",
- "forbidFileOwnerChangeCustomisation": "enabled",
- "imPopupDuration": null,
- "instantMessagesCustomisation": "enabled",
- "meetingRecordingCustomisation": "enabled",
- "name": "string",
- "overridePresenceCustomisation": "enabled",
- "phoneMeetingCustomisation": "enabled",
- "readReceiptsCustomisation": "enabled",
- "receivedFileCustomisation": "enabled",
- "recordingConversationCustomisation": "enabled",
- "useChannelCustomisation": "enabled",
- "useComputerMode": "enabled",
- "useDialOutCustomisation": "enabled",
- "useGifCustomisation": "enabled",
- "useOtherPhoneMode": "enabled",
- "useRoomCustomisation": "enabled",
- "useScreenSharingCustomisation": "enabled",
- "useSoftPhoneMode": "enabled",
- "useSpeakingTimeStatistics": "enabled",
- "useTeamsMode": "disabled",
- "useWebRTCAudioCustomisation": "enabled",
- "useWebRTCOnlyIfMobileLoggedCustomisation": "disabled",
- "useWebRTCVideoCustomisation": "enabled",
- "userProfileCustomisation": "enabled",
- "userTitleNameCustomisation": "enabled",
- "visibleBy": [
- "string"
]
}
{- "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 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) |
{- "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) |
{- "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 [ 0 .. 1000 ] Default: 100 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. |
{- "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
}
}
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. |
{- "data": [
- {
- "name": "ALE international",
- "id": "57486e5d807a594145e510d6",
- "autoAcceptUserInvitations": false,
- "autoAddToUserNetwork": false,
- "contentPolicyLifeTime": 172000,
- "documentGracePeriod": 14400
}
], - "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) |
{- "data": {
- "id": "57486e5d807a594145e510d6",
- "creationDate": "2016-05-27T15:57:17.998Z",
- "name": "ALE international",
- "visibility": "private",
- "autoAcceptUserInvitations": false,
- "autoAddToUserNetwork": false,
- "contentPolicyLifeTime": 172000,
- "documentGracePeriod": 14400
}
}
Update organisation data
organisationId required | string Organisation unique identifier (like 569ce8c8f9336c471b98eda1) |
autoAcceptUserInvitations | boolean Default: false Allow to enable or disable the auto-acceptation of user invitations between users belonging to companies of this organisation (default false: disabled) |
autoAddToUserNetwork | number Default: null Allow to enable or disable the auto addition to user's network between users of this organisation (default false: disabled) |
contentPolicyLifeTime | boolean Default: false When different from -1 it activates content removal for all user of this organisation with a content lifetime equals to contentPolicyLifeTime in minutes |
documentGracePeriod | boolean Default: false When content removal is active for the organisation it represents the period in minutes where a document is still available event if it's content policy lifetime has expired |
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) |
{- "autoAcceptUserInvitations": false,
- "autoAddToUserNetwork": null,
- "contentPolicyLifeTime": false,
- "documentGracePeriod": false,
- "name": "string",
- "visibility": "private"
}
{- "data": {
- "id": "57486e5d807a594145e510d6",
- "creationDate": "2016-05-27T15:57:17.998Z",
- "name": "ALE international",
- "visibility": "private",
- "autoAcceptUserInvitations": false,
- "autoAddToUserNetwork": false,
- "contentPolicyLifeTime": 172000,
- "documentGracePeriod": 14400
}
}
Unlink the company to an organization
companyId required | string Company unique identifier (like 5749ab92245015fe0d36e96a) |
organisationId required | string Organisation unique identifier (like 569ce8c8f9336c471b98eda1) |
{- "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) |
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.
|
businessSpecific | string Allows to filter companies list on businessSpecific.
|
salesEmail | string Allows to filter companies list on salesEmail
|
businessRegion | string Allows to filter companies list on region of business location
|
businessCluster | string Allows to filter companies list on cluster of business location
|
businessArea | string Allows to filter companies list on area of business location
|
format | string Default: "small" Enum: "small" "medium" "full" Allows to retrieve more or less company details in response.
|
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 |
{- "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"
}
}
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) |
{- "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 visible sites linked to End Customer companies for which their bp_admin's company is the BP company.
organization_admin
can only get visible sites linked to companies under their organisation.
company_admin
can only get visible sites linked to their company.
site_admin
can only get the visible site they administrate.
Example: GET https://openrainbow.com/api/rainbow/admin/v1.0/sites/569d0ef3ef7816921f7e94fa
siteId required | string Site unique identifier (like 569ce8c8f9336c471b98eda1) |
{- "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).
Note : Site companyId update will be forbidden if site is still linked to CloudPBX system(s)
siteId required | string Site unique identifier (like 569ce8c8f9336c471b98eda1) |
companyId required | string Id of the company from which the site is linked. |
isVisibleByBP | boolean Site is visible by BP admin and admins, only for superadmin |
name | string [ 1 .. 255 ] characters Site name |
status | string [ 3 .. 255 ] characters Enum: "active" "alerting" "hold" "terminated" Site status |
{- "companyId": "string",
- "isVisibleByBP": true,
- "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
nbUsers | boolean Default: false Allow to retrieve number of users for each site. |
nbSystems | boolean Default: false Allow to retrieve number of systems linked for each site. |
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. |
isVisibleByBP | boolean Allows to filter sites list visible by admins, only for superadmin or support. |
{- "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"
}
}
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 |
{- "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" "cloud_pbx" "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). |
{- "data": [
- {
- "bpId": "null",
- "capabilityOxeBusy": true,
- "capabilityOxeOverflow": true,
- "capabilityWRGConvShift": true,
- "ccdPolicy": [
- {
- "ignoreVoipCalls": true,
- "onBusyCcdWithdraw": true,
- "onDndCcdWithdraw": true,
- "withdrawReason": 0
}
], - "connectionHistory": [
- {
- "eventDate": "2019-08-24T14:15:22Z",
- "eventType": "string"
}
], - "country": "string",
- "creationDate": "2019-08-24T14:15:22Z",
- "hasMediaPillar": true,
- "id": "string",
- "isCallFromPbxAuthorized": true,
- "isCallToPbxAuthorized": true,
- "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",
- "pbxLdapId": "string",
- "pbxMainBundlePrefix": [
- "string"
], - "pbxNationalPrefix": "string",
- "pbxNumberingTranslator": [
- {
- "description": "string",
- "regexpMatch": "string",
- "regexpReplace": "string"
}
], - "searchResultOrder": [
- "string"
], - "serverPingTimeout": 0,
- "siteId": [
- "string"
], - "status": "created",
- "statusUpdatedDate": "2019-08-24T14:15:22Z",
- "type": "oxo",
- "version": "string",
- "voipEmergencyCall": true
}
], - "usePbxMainBundlePrefix": true
}
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",
- "PERSONAL_DIRECTORY",
- "BUSINESS_DIRECTORY",
- "O365",
- "PBX"
], - "type": "oxe",
- "id": "57ab24af27fe23cc40fef473"
}
}
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) |
{- "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 |
{- "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",
- "PERSONAL_DIRECTORY",
- "BUSINESS_DIRECTORY",
- "O365",
- "PBX"
], - "isCallFromPbxAuthorized": false,
- "isCallToPbxAuthorized": false,
- "ccdPolicy": {
- "onBusyCcdWithdraw": true,
- "onDndCcdWithdraw": false,
- "ignoreVoipCalls": true,
- "withdrawReason": 0
}, - "voipEmergencyCall": true,
- "type": "oxe",
- "activatingTransactionId": "d182c8e122504350ab36008be1552518",
- "jid_pbxagent_password_activating": "9e5c326b10b54fcdbf50caf1951f17b7",
- "id": "58515f3df5eb9225650b64d8",
- "capabilityOxeOverflow": true,
- "capabilityOxeBusy": true,
- "capabilityWRGConvShift": true,
- "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.
|
Array of objects (putSystemsCcdPolicy) Indicates the cdd configuration of the PBX | |
country | string 3 characters System country (ISO 3166-1 alpha3 format) |
displaySecretIdentityService | boolean Default: false Used to inform Rainbow client before about the Secret Identity service can be displayed or not |
isCallFromPbxAuthorized | boolean Indicates a call from the PBX is authorized |
isCallToPbxAuthorized | boolean Indicates a call to the PBX is authorized |
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 |
pbxLdapId | string custom "pbxId" declared in an external DB (ldap), used to correlate to Rainbow pbxId. |
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 [] | |
reverseConsistentSecret | boolean Default: false Uses to revert secret identiy flag when OXE configuration demand it |
searchResultOrder | Array of strings Default: "RAINBOW,PERSONAL_DIRECTORY,BUSINESS_DIRECTORY,O365,PBX" List of directory types to search results for phone number resolution, the order in the Array gives the priority if a number match on several sources:
|
serverPingTimeout | number 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 |
voipEmergencyCall | boolean Default: false Uses PBX for emergency calls |
{- "bpId": "string",
- "ccdPolicy": [
- {
- "ignoreVoipCalls": true,
- "onBusyCcdWithdraw": true,
- "onDndCcdWithdraw": false,
- "withdrawReason": 0
}
], - "country": "str",
- "displaySecretIdentityService": false,
- "isCallFromPbxAuthorized": true,
- "isCallToPbxAuthorized": true,
- "isShared": true,
- "name": "string",
- "pbxInternationalPrefix": "string",
- "pbxLdapId": "string",
- "pbxMainBundlePrefix": "string",
- "pbxNationalPrefix": "string",
- "pbxNumberingTranslator": [
- {
- "description": "string",
- "regexpMatch": "string",
- "regexpReplace": "string"
}
], - "reverseConsistentSecret": false,
- "searchResultOrder": "RAINBOW,PERSONAL_DIRECTORY,BUSINESS_DIRECTORY,O365,PBX",
- "serverPingTimeout": 120,
- "siteId": "string",
- "type": "oxo",
- "usePbxMainBundlePrefix": true,
- "version": "string",
- "voipEmergencyCall": false
}
{- "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",
- "PERSONAL_DIRECTORY",
- "BUSINESS_DIRECTORY",
- "O365",
- "PBX"
], - "type": "oxe",
- "capabilityOxeOverflow": true,
- "capabilityOxeBusy": true,
- "capabilityWRGConvShift": true,
- "activatingTransactionId": "",
- "jid_pbxagent_password_activating": "",
- "voipEmergencyCall": true,
- "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" "cloud_pbx" "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). |
{- "data": [
- {
- "bpId": "null",
- "capabilityOxeBusy": true,
- "capabilityOxeOverflow": true,
- "capabilityWRGConvShift": true,
- "ccdPolicy": [
- {
- "ignoreVoipCalls": true,
- "onBusyCcdWithdraw": true,
- "onDndCcdWithdraw": true,
- "withdrawReason": 0
}
], - "connectionHistory": [
- {
- "eventDate": "2019-08-24T14:15:22Z",
- "eventType": "string"
}
], - "country": "string",
- "creationDate": "2019-08-24T14:15:22Z",
- "hasMediaPillar": true,
- "id": "string",
- "isCallFromPbxAuthorized": true,
- "isCallToPbxAuthorized": true,
- "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",
- "pbxLdapId": "string",
- "pbxMainBundlePrefix": [
- "string"
], - "pbxNationalPrefix": "string",
- "pbxNumberingTranslator": [
- {
- "description": "string",
- "regexpMatch": "string",
- "regexpReplace": "string"
}
], - "searchResultOrder": [
- "string"
], - "serverPingTimeout": 0,
- "siteId": [
- "string"
], - "status": "created",
- "statusUpdatedDate": "2019-08-24T14:15:22Z",
- "type": "oxo",
- "version": "string",
- "voipEmergencyCall": true
}
], - "usePbxMainBundlePrefix": true
}
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.
|
Array of objects (postSystemsCcdPolicy) Indicates the cdd configuration of the PBX | |
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 |
pbxLdapId | string custom "pbxId" declared in an external DB (ldap), used to correlate to Rainbow pbxId. |
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 Default: "RAINBOW,PERSONAL_DIRECTORY,BUSINESS_DIRECTORY,O365,PBX" List of directory types to search results for phone number resolution, the order in the Array gives the priority if a number match on several sources:
|
serverPingTimeout | number 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 |
voipEmergencyCall | boolean Default: false Use PBX for emergency calls. |
{- "activationCode": "string",
- "bpId": "string",
- "ccdPolicy": [
- {
- "ignoreVoipCalls": true,
- "onBusyCcdWithdraw": true,
- "onDndCcdWithdraw": false,
- "withdrawReason": 0
}
], - "country": "str",
- "isCentrex": false,
- "isOxoManaged": true,
- "isShared": false,
- "name": "string",
- "pbxId": "string",
- "pbxInternationalPrefix": "string",
- "pbxLdapId": "string",
- "pbxMainBundlePrefix": [
- "string"
], - "pbxNationalPrefix": "string",
- "pbxNumberingTranslator": [
- {
- "description": "string",
- "regexpMatch": "string",
- "regexpReplace": "string"
}
], - "searchResultOrder": "RAINBOW,PERSONAL_DIRECTORY,BUSINESS_DIRECTORY,O365,PBX",
- "serverPingTimeout": 120,
- "siteId": "string",
- "type": "oxo",
- "usePbxMainBundlePrefix": true,
- "version": "string",
- "voipEmergencyCall": false
}
{- "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 |
{- "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",
- "PERSONAL_DIRECTORY",
- "BUSINESS_DIRECTORY",
- "O365",
- "PBX"
], - "isCallFromPbxAuthorized": false,
- "isCallToPbxAuthorized": false,
- "ccdPolicy": {
- "onBusyCcdWithdraw": true,
- "onDndCcdWithdraw": false,
- "ignoreVoipCalls": true,
- "withdrawReason": 0
}, - "voipEmergencyCall": true,
- "type": "oxe",
- "activatingTransactionId": "d182c8e122504350ab36008be1552518",
- "jid_pbxagent_password_activating": "9e5c326b10b54fcdbf50caf1951f17b7",
- "id": "58515f3df5eb9225650b64d8",
- "capabilityOxeOverflow": true,
- "capabilityOxeBusy": true,
- "capabilityWRGConvShift": true,
- "connectionHistory": [
- {
- "eventType": "LOGOUT",
- "eventDate": "2022-04-04T13:08:00.885Z"
}, - {
- "eventType": "LOGIN",
- "eventDate": "2022-04-04T13:08:05.940Z"
}
]
}
}
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"
], - "isCallFromPbxAuthorized": false,
- "isCallToPbxAuthorized": false,
- "searchResultOrder": [
- "RAINBOW",
- "PERSONAL_DIRECTORY",
- "BUSINESS_DIRECTORY",
- "O365",
- "PBX"
], - "capabilityOxeOverflow": true,
- "capabilityOxeBusy": true,
- "capabilityWRGConvShift": true,
- "ccdPolicy": {
- "onBusyCcdWithdraw": true,
- "onDndCcdWithdraw": false,
- "ignoreVoipCalls": true,
- "withdrawReason": 0
}, - "voipEmergencyCall": true,
- "type": "oxe",
- "id": "58515f3df5eb9225650b64d8"
}
}
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 |
{- "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"
}
}
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 |
{- "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. |
{- "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. |
nameOrShortNumber | string Allow to filter phoneNumbers list on phoneNumbers having either firstName, lastName or shortNumber starting with the provided value.
|
deviceName | string Allow to filter phoneNumbers list on phoneNumbers having deviceName field equal to provided value. |
userType | string Enum: "CCD" "agent" "Pro" "ACD" Allow to filter phoneNumbers list on phoneNumbers having userType 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. |
{- "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",
- "redirectNumber": "0612345678",
- "isRedirectNumberEditable": true
}, - {
- "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) |
{- "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",
- "redirectNumber": "0612345678",
- "isRedirectNumberEditable": true
}
}
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.
CCD use cases:
In the case if the CCD feature, a user can have 2 phoneNumbers assigned (a main and a secondary phoneNumbers).
The first CCD phoneNumber assigned to a user becomes his main phoneNumber, the second CCD phoneNumber assigned becomes his secondary phoneNumber.
Depending on the CCD phoneNumbers assigned to the user, three use cases are defined:
CCD Default
:CCD Fixed
:CCD Mixed
:ccdRole
describes if the phoneNumber corresponds to the main
or secondary
phoneNumber of the user.ccdMode
describes which CCD use case is applied to the user (default
, fixed
or mixed
).TELEPHONY_CCD_AGENT_PROFILE
to be able to use the CCD Fixed or CCD Mixed use cases (the check done when assigning the secondary phoneNumber to the user)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) |
forceAttach | boolean Default: false In the case the phoneNumber is requested to be assigned to a user having already another phoneNumber assigned and
Details of use cases handled by forceAttach:
|
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) |
isRedirectNumberEditable | boolean Allows a user to edit its redirect phone number |
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, ...) |
redirectNumber | string User redirect phone number |
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,
- "isRedirectNumberEditable": true,
- "isVisibleByOthers": true,
- "lastName": "string",
- "number": "string",
- "redirectNumber": "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",
- "redirectNumber": "0612345678",
- "isRedirectNumberEditable": true
}
}
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 directoryNumber are got from this system two more data are available: "companyName", "companyPrefix".
These data are stored and it's now possible to get all "companyPrefix".
systemId required | string System unique identifier (like 569ce8c8f9336c471b98eda1) |
{- "data": [ ]
}
This API can be used to delete one programmable phone touch of a user or of a company's keys group.
Example: DELETE https://openrainbow.com/api/rainbow/admin/v1.0/systems/56d0277a0261b53142a5cab5/telephony-keys/60e45024c8da191a7051575c
Remaining telephony keys are returned as data.
A message stanza is sent to each user having selected this key. This is an asynchronous task!
<message type="management" id="1644ac58-c69c-4a15-879c-3faf5ee329a7_0"
to="ab353de6856e442b88f96f68e55f474a@francky1-all-in-one-rd-dev-1.opentouch.cloud" xmlns="jabber:client">
<telephony-key keyId="60e6bfeed32f29208298d209" xmlns="jabber:iq:configuration" action="delete">
<type>speedDialing</type>
<origin>personal</origin>
<locked>false</locked>
<name>Mom</name>
<number>0388000001</number>
</telephony-key>
</message>
systemId required | string System unique identifier (like 56d0277a0261b53142a5cab5) |
keyId required | string Telephony key unique identifier |
{- "status": "Telephony key 60e45024c8da191a7051575c successfully deleted",
- "data": {
- "sharedTelephonyKeys": [
- {
- "origin": "shared",
- "locked": true,
- "featureCodeSupportedTelStates": [ ],
- "type": "featureCode",
- "name": "VoiceMailWelcome1",
- "featureCodeSubType": "dtmf",
- "number": "8881",
- "id": "60e44e81c8da191a7051575b"
}
]
}
}
This API can be used to modify one programmable phone touch of a system, users or company's group linked with this system can share.
A message stanza is sent to each user having selected this key. This is an asynchronous task!
<message type="management" id="1644ac58-c69c-4a15-879c-3faf5ee329a7_0"
to="ab353de6856e442b88f96f68e55f474a@francky1-all-in-one-rd-dev-1.opentouch.cloud" xmlns="jabber:client">
<telephony-key keyId="60e6bfeed32f29208298d209" xmlns="jabber:iq:configuration" action="update">
<type>speedDialing</type>
<origin>shared</origin>
<locked>true</locked>
<active>true</active>
<name>CareTaker</name>
<number>0388000001</number>
</telephony-key>
</message>
systemId required | string System unique identifier (like 56d0277a0261b53142a5cab5) |
keyId required | string Telephony key unique identifier |
active | boolean This key can be used directly by a user. |
featureCodeSubType | string For featureCode key type only, this is the type of the field
|
featureCodeSupportedTelStates | Array of strings For featureCode key type only, this are supported telephony states [optional] The supported telephony state is the list of telephony state which are compatible with the feature code.
|
locked | boolean The key is created by an administrator and can't be updated by the end user |
name | string [ 1 .. 32 ] characters Label of the key |
number | string [ 1 .. 32 ] characters The key content for keys of type |
restrictedUse | boolean The key is created by an administrator for some users sharing the same system (PBX). It is assigned by an administrator only
|
type | string The type of the key
|
{- "active": true,
- "featureCodeSubType": "string",
- "featureCodeSupportedTelStates": [
- "string"
], - "locked": true,
- "name": "string",
- "number": "string",
- "restrictedUse": true,
- "type": "string"
}
{- "data": {
- "sharedTelephonyKeys": [
- {
- "locked": true,
- "active": true,
- "origin": "shared",
- "featureCodeSupportedTelStates": [ ],
- "type": "featureCode",
- "name": "VoiceMailWelcome1",
- "featureCodeSubType": "dtmf",
- "number": "8881",
- "id": "60e44e81c8da191a7051575b"
}, - {
- "locked": false,
- "active": false,
- "origin": "restricted_share",
- "featureCodeSupportedTelStates": [ ],
- "type": "featureCode",
- "name": "VoiceMailWelcome2",
- "featureCodeSubType": "dtmf",
- "number": "8882",
- "id": "60e45024c8da191a7051575c"
}
]
}
}
This API can be used to list all the programmable phone touch of a system.
This keys can be of different types:
All of them are managed by an administrator, and some of them can be locked to prevent the end user to override the content.
systemId required | string System unique identifier (like 56d0277a0261b53142a5cab5) |
{- "data": {
- "sharedTelephonyKeys": [
- {
- "origin": "shared",
- "locked": true,
- "featureCodeSupportedTelStates": [ ],
- "type": "featureCode",
- "name": "VoiceMailWelcome1",
- "featureCodeSubType": "dtmf",
- "number": "8881",
- "id": "60e44e81c8da191a7051575b"
}, - {
- "origin": "shared",
- "locked": true,
- "featureCodeSupportedTelStates": [ ],
- "type": "featureCode",
- "name": "VoiceMailWelcome2",
- "featureCodeSubType": "dtmf",
- "number": "8882",
- "id": "60e45024c8da191a7051575c"
}, - {
- "origin": "restricted_share",
- "locked": true,
- "featureCodeSupportedTelStates": [ ],
- "type": "featureCode",
- "name": "VoiceMailWelcome3",
- "featureCodeSubType": "dtmf",
- "number": "8882",
- "id": "60e45024c8da191a7051575d"
}
]
}
}
This API can be used to create one programmable phone touch of a system, users linked with this system can share.
This keys can be of different types:
By default shareable key are locked and active at creation.
systemId required | string System unique identifier (like 56d0277a0261b53142a5cab5) |
active | boolean This key can be used directly by a user. |
featureCodeSubType | string For featureCode key type only, this is the type of the field
|
featureCodeSupportedTelStates | Array of strings For featureCode key type only, this are supported telephony states [optional] The supported telephony state is the list of telephony state which are compatible with the feature code.
|
locked | boolean The key is created by an administrator and can't be updated by the end user |
name required | string [ 1 .. 32 ] characters Label of the key |
number | string [ 1 .. 32 ] characters The key content for keys of type |
restrictedUse | boolean The key is created by an administrator for some users sharing the same system (PBX). It is assigned by an administrator only |
type required | string The type of the key
|
{- "active": true,
- "featureCodeSubType": "string",
- "featureCodeSupportedTelStates": [
- "string"
], - "locked": true,
- "name": "string",
- "number": "string",
- "restrictedUse": true,
- "type": "string"
}
{- "data": {
- "sharedTelephonyKeys": [
- {
- "locked": true,
- "active": true,
- "origin": "shared",
- "featureCodeSupportedTelStates": [ ],
- "type": "featureCode",
- "name": "VoiceMailWelcome1",
- "featureCodeSubType": "dtmf",
- "number": "8881",
- "id": "60e44e81c8da191a7051575b"
}, - {
- "locked": false,
- "active": false,
- "origin": "restricted_share",
- "featureCodeSupportedTelStates": [ ],
- "type": "featureCode",
- "name": "VoiceMailWelcome2",
- "featureCodeSubType": "dtmf",
- "number": "8882",
- "id": "60e45024c8da191a7051575c"
}
]
}
}
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">
<no-store xmlns="urn:xmpp:hints"/>
<userterminated action="delete" xmlns="jabber:iq:configuration"/>
</message>
The following XMPP message is sent to all users being in deleted user's roster:
<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>
Only a migration script is planned to delete permanently a user 'terminated' after a legal delay time.
userId required | string User unique identifier (like 56c5c19f94141765119f896c) |
pendingTerminated | boolean Value: false Allows to pending the user account for 10 days before terminate it or restore it.
Notes:
|
{- "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",
- "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",
- "useExternalStorage": "same_than_company",
- "useRainbowStorage": "same_than_company",
- "mainStorage": "Rainbow Storage"
}
}
This API can be used to get a user.
Users with superadmin
, business_admin
, customer_success_admin
, support
role can retrieve any user whatever the company.
Users with sales_analytics
role can retrieve users from companies they manage as sales.
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.
|
{- "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
}
], - "msTeamsPresence": [
- {
- "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",
- "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",
- "useWebRTCOnlyIfMobileLoggedCustomisation": "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",
- "eLearningCustomisation": "enabled",
- "eLearningGamificationCustomisation": "enabled",
- "meetingRecordingCustomisation": "enabled",
- "mfaRainbowAuthPolicy": {
- "mfaRainbowPolicyId": "abc6b72b5e9d426552cee593",
- "mfaStatus": "init",
- "mfaTrustedApps": [ ]
}, - "rainbowPasswordlessPolicy": {
- "rainbowPasswordlessPolicyId": "645ba5b3a957ecd083ca7627",
- "sendToEmail": "user1@perso.com"
}, - "useExternalStorage": "same_than_company",
- "useRainbowStorage": "same_than_company",
- "mainStorage": "same_than_company",
- "useOtherPhoneMode": "enabled",
- "useComputerMode": "enabled",
- "useSoftPhoneMode": "enabled",
- "useTeamsMode": "disabled",
- "imPopupDuration": 3,
- "canAccessWhatsNew": "enabled",
- "canAccessFaqCustomisation": "enabled",
- "canAccessHelpCenterCustomisation": "enabled",
- "canAccessStoreCustomisation": "enabled",
- "canDownloadAppCustomisation": "enabled",
- "canUseTestConfigCustomisation": "enabled",
- "canUseSendReportCustomisation": "enabled",
- "canUseTaskCustomisation": "enabled",
- "canCallParticipantPbxNumberCustomisation": "enabled",
- "canSetInvisiblePresenceCustomisation": "enabled",
- "receivedFileCustomisation": "enabled"
}
}
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
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) |
adminType | string Enum: "organization_admin" "company_admin" "site_admin" Mandatory if roles array contains |
authenticationExternalUid | string User external authentication ID Allows to authenticate the user based on an external identifier (company's SSO server (SAML or OIDC), Teams, Outlook, ...) |
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 User's custom data.
User customData can only be created/updated by:
|
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).
|
object User phone number (used for login). | |
mfaRainbowPolicyId | string Rainbow multifactor policy unique identifier (only if authenticationType is RAINBOW) Note: specifically in the case of users with admin rights (superadmin, admin,, bp_admin), a mfaRainbowPolicyId can be set even if authenticationType is set to a SSO method (this mfaRainbowPolicyId will be used by the admin in case the Rainbow authentication is used instead of SSO (fallback mechanism)). |
nickName | string [ 1 .. 255 ] characters User nickName |
password | string [ 8 .. 64 ] characters User password. Rules:
|
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 | |
rainbowPasswordlessPolicyId | string Rainbow passwordless policy unique identifier (must correspond to a valid user's company's rainbowPasswordlessPolicies' passwordlessId).
|
rainbowPasswordlessPolicyName | string Rainbow passwordless policy name to set to the user (must correspond to a valid user's company's rainbowPasswordlessPolicies' passwordlessName).
|
rainbowPasswordlessPolicySendToEmail | string Optional email used to send passwordless code to the user (instead of his loginEmail address) when passwordless authentication is enabled and the associated company's passwordless policy has |
roles | Array of strings Default: ["user"] Items Enum: "guest" "user" "admin" "bp_admin" "bp_finance" "ec_analytics" "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. |
siteId | string User company site unique identifier (like 569ce8c8f9336c471b98eda2) |
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
|
{- "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",
- "loginPhone": {
- "E164": "string"
}, - "mfaRainbowPolicyId": "string",
- "nickName": "string",
- "password": "stringst",
- "phoneNumbers": [
- {
- "country": "str",
- "deviceType": "landline",
- "internalNumber": "string",
- "isVisibleByOthers": "string",
- "number": "string",
- "shortNumber": "string",
- "systemId": "string",
- "type": "home"
}
], - "rainbowPasswordlessPolicyId": "string",
- "rainbowPasswordlessPolicyName": "string",
- "rainbowPasswordlessPolicySendToEmail": "string",
- "roles": [
- "user"
], - "selectedDeviceFirmware": "same_as_company",
- "selectedTheme": "string",
- "siteId": "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",
- "loginPhone": {
- "isValidated": true,
- "E164": "+33312345678",
- "national": "0312345678",
- "nationalWithoutPrefix": "312345678",
- "E164WithoutPrefix": "33312345678",
- "E164WithNationalPrefix": "+330312345678",
- "E164WithNationalPrefixWithoutPrefix": "330312345678"
}, - "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",
- "redirectNumber": "0612345678",
- "isRedirectNumberEditable": true
}, - {
- "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",
- "selectedProgKeysGroupId": "21376dad81e063e01187dd24",
- "selectedManifestId": "574ffe07170a86f3297bc35b",
- "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
}, - "mfaRainbowAuth": {
- "mfaRainbowPolicyId": "abc6b72b5e9d426552cee593",
- "mfaStatus": "init",
- "mfaTrustedApps": [ ]
}, - "rainbowPasswordlessPolicy": {
- "rainbowPasswordlessPolicyId": "645ba5b3a957ecd083ca7627",
- "sendToEmail": "user1@perso.com"
}, - "useExternalStorage": "same_than_company",
- "useRainbowStorage": "same_than_company",
- "mainStorage": "Rainbow Storage"
}
Instead of deactivate a user account definitely, it is allowed to pending the user account for 10 days before terminate it or restore it.
DELETE /api/rainbow/admin/v1.0/users/:userId?pendingTermination=true
All Admin can restore this user to active state, during this grace period of 10 days, upon request to support, using this API.
When restored, the user recovers all information (IM, bubbles etc) he had before, but some services are not restored as Phone association, licenses, admin roles.
userId required | string User unique identifier (like 56c5c19f94141765119f896c) |
{- "status": "User 56c5c19f94141765119f896c successfully restored",
- "data": {
- "firstLoginDate": "2016-10-26T07:31:05.744Z",
- "activationDate": "2016-10-26T07:23:59.796Z",
- "companyName": "My Company",
- "initializationDate": "2016-10-26T07:31:33.651Z",
- "jid_password": "cf1c87a48b7f434fa4d1bdd2895330f8",
- "id": "58105a0f4b1748307345bf58",
- "loggedSince": "2016-10-26T13:57:47.991Z",
- "loginEmail": "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": "2016-12-25T08:12:42.254Z",
- "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": null,
- "loginEmail": null
}, - "createdByAdmin": {
- "userId": "57e3c0376f24fcf959676dba",
- "loginEmail": "admin5@ale-international.com"
}, - "adminType": "undefined",
- "creationDate": "2016-10-26T07:23:59.796Z",
- "isTerminated": false,
- "terminatedStatus": "none",
- "isActive": true,
- "userInfo1": "DPT_HR",
- "userInfo2": "CC_RECRUITMENT_SERVICE",
- "useExternalStorage": "same_than_company",
- "useRainbowStorage": "same_than_company",
- "mainStorage": "Rainbow Storage"
}
}
Instead of deactivate a user account definitely, it is allowed to pending the user account for 10 days before terminate it or restore it.
DELETE /api/rainbow/admin/v1.0/users/:userId?pendingTermination=true
All Admin can stop the grace period, upon request to support, using this API.
Then, the loginEmail is changed, and some user data are discarded.
No mail is sent to the enduser because it was already sent when the user account was set to "account_pending_termination" status.
userId required | string User unique identifier (like 56c5c19f94141765119f896c) |
{- "status": "User 56c5c19f94141765119f896c successfully disabled",
- "data": {
- "firstLoginDate": "2016-10-26T07:31:05.744Z",
- "activationDate": "2016-10-26T07:23:59.796Z",
- "companyName": "My Company",
- "initializationDate": "2016-10-26T07:31:33.651Z",
- "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,
- "terminatedStatus": "account_deactivated",
- "userInfo1": "DPT_HR",
- "userInfo2": "CC_RECRUITMENT_SERVICE",
- "useExternalStorage": "same_than_company",
- "useRainbowStorage": "same_than_company",
- "mainStorage": "Rainbow Storage"
}
}
This API allows administrators to list users.
Users with superadmin
, business_admin
, customer_success_admin
, support
role can retrieve users from any company.
Users with sales_analytics
role can retrieve users from companies they manage as sales.
Users with support
role can retrieve lastLoginIOSDate and lastLoginAndroidDate providing format option full
.
Users with bp_admin
, sales_analytics
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.
phoneNumbers | number Allows to filter users list on the given number(s) on their phoneNumbers on the following fields (exact match):
|
phoneNumber | number Allows to filter users list on the given number(s) on field phoneNumbers.internalNumber (number starts with requested string). |
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.
|
siteId | string Allows to filter users list on the siteIds 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. |
includePendingTermination | string Default: "false" Specifies that the users being terminated but still with the status Notes:
|
isTerminated | string Default: "false" Allows to filter users list on the status 'isTerminated'. By default, terminated users are not listed. Notes:
|
terminatedStatus | string Enum: "account_pending_termination" "account_deactivated" "account_anonymized" Allows to filter users on their terminatedStatus.
Notes:
|
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) |
useWebRTCOnlyIfMobileLoggedCustomisation | string Allows to filter users list on receive web RTC call if mobile app is signed in (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. |
eLearningCustomisation | string Allows to filter users by the ability to participate on an Elearning training. |
eLearningGamificationCustomisation | string Allows to filter users by the ability to earn badges for Elearning progress. |
meetingRecordingCustomisation | string Allows to filter users by the ability to record a meeting. |
selectedAppCustomisationTemplate | string Allows to filter users by the last application customisation template applied. |
useOtherPhoneMode | string Allows to filter users by the other phone mode usage. |
useComputerMode | string Allows to filter users by the computer mode usage. |
canCallParticipantPbxNumberCustomisation | string Allows to filter users by the kind of call participant PBX number. |
canSetInvisiblePresenceCustomisation | string Allows to filter users by the restriction to receive file to protect from data coming from a foreign user of the company |
receivedFileCustomisation | string Allows to filter users by the ability to set invisible presence. |
withFeature | string Allows to filter users by profiles supporting the given feature. |
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.
|
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. |
{- "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 companyadminType | string Enum: "organization_admin" "company_admin" "site_admin" Mandatory if roles array contains |
authenticationExternalUid | string User external authentication ID Allows to authenticate the user based on an external identifier (company's SSO server (SAML or OIDC), Teams, Outlook, ...) |
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 User's custom data.
User customData can only be created/updated by:
|
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).
|
object User phone number (used for login). | |
mfaRainbowPolicyId | string Rainbow multifactor policy unique identifier (only if authenticationType is RAINBOW) Note: specifically in the case of users with admin rights (superadmin, admin,, bp_admin), a mfaRainbowPolicyId can be set even if authenticationType is set to a SSO method (this mfaRainbowPolicyId will be used by the admin in case the Rainbow authentication is used instead of SSO (fallback mechanism)). |
nickName | string [ 1 .. 255 ] characters User nickName |
password | string [ 8 .. 64 ] characters User password. Rules:
If password is not set, the user will have to use the reset-password feature to define his password so that he can login to Rainbow (except if the user is configured to use a Single Sign On method (SAML or OIDC)). |
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 | |
rainbowPasswordlessPolicyId | string Rainbow passwordless policy unique identifier (must correspond to a valid user's company's rainbowPasswordlessPolicies' passwordlessId).
|
rainbowPasswordlessPolicyName | string Rainbow passwordless policy name to set to the user (must correspond to a valid user's company's rainbowPasswordlessPolicies' passwordlessName).
|
rainbowPasswordlessPolicySendToEmail | string Optional email used to send passwordless code to the user (instead of his loginEmail address) when passwordless authentication is enabled and the associated company's passwordless policy has |
roles | Array of strings Default: ["user"] Items Enum: "guest" "user" "admin" "bp_admin" "bp_finance" "ec_analytics" "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. |
siteId | string User company site unique identifier (like 569ce8c8f9336c471b98eda2) |
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
|
{- "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",
- "loginPhone": {
- "E164": "string"
}, - "mfaRainbowPolicyId": "string",
- "nickName": "string",
- "password": "stringst",
- "phoneNumbers": [
- {
- "country": "str",
- "deviceType": "landline",
- "isVisibleByOthers": "true",
- "number": "string",
- "type": "home"
}
], - "rainbowPasswordlessPolicyId": "string",
- "rainbowPasswordlessPolicyName": "string",
- "rainbowPasswordlessPolicySendToEmail": "string",
- "roles": [
- "user"
], - "selectedTheme": "string",
- "siteId": "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",
- "profiles": [
- {
- "isDefault": true,
- "status": "active",
- "assignationDate": "2018-07-02T08:23:58.289Z",
- "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",
- "mfaRainbowAuth": {
- "mfaRainbowPolicyId": "abc6b72b5e9d426552cee593",
- "mfaStatus": "init",
- "mfaTrustedApps": [ ]
}, - "rainbowPasswordlessPolicy": {
- "rainbowPasswordlessPolicyId": "645ba5b3a957ecd083ca7627",
- "sendToEmail": "john.doe@perso.com"
}, - "useExternalStorage": "same_than_company",
- "useRainbowStorage": "same_than_company",
- "mainStorage": "Rainbow Storage"
}
}
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) |
{- "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) |
{- "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. |
{- "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"
}
}
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) |
{- "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"
}
]
}
This API can be used to delete one programmable phone touch of a user.
Example: DELETE https://openrainbow.com/api/rainbow/admin/v1.0/users/56d0277a0261b53142a5cab5/telephony-keys/60e45024c8da191a7051575c
Remaining telephony keys are returned as data.
A message stanza is sent to the end user
<message type="management" id="1644ac58-c69c-4a15-879c-3faf5ee329a7_0"
to="ab353de6856e442b88f96f68e55f474a@francky1-all-in-one-rd-dev-1.opentouch.cloud" xmlns="jabber:client">
<telephony-key keyId="60e6bfeed32f29208298d209" xmlns="jabber:iq:configuration" action="delete">
<position>1</position>
<type>speedDialing</type>
<origin>personal</origin>
<locked>false</locked>
<name>Mom</name>
<number>0388000001</number>
</telephony-key>
</message>
userId required | string User unique identifier (like 56d0277a0261b53142a5cab5) |
keyId required | string Telephony key unique identifier |
{- "status": "Telephony key 60e45024c8da191a7051575c successfully deleted",
- "data": {
- "telephonyKeys": [
- {
- "position": 0,
- "origin": "personal",
- "locked": false,
- "featureCodeSupportedTelStates": [ ],
- "type": "speedDialing",
- "name": "Brice De Nice",
- "number": "21777806",
- "id": "60e44e81c8da191a7051575b"
}
]
}
}
This API can be used to modify a programmable phone touch of a user. For example to lock or unlock a key.
It's also possible to only modify the position of a key in the user's list.
So it’s allowed to both update a key content and it’s position. Use the url parameter position
.
Note however that in the case a telephony keys group is assigned to the user, the position of keys coming from this group (origin=group
) can't be modified with this API:
personal
or origin=shared
can be modified, and they can't be set to a position in the range of the keys with origin=group
.If the type of the telephony key is changed while the key is active or when it is set to active state, then the feature keys bellow are taken into account before allowing a programmable key update. (errorDetailCode: 403620)
A message stanza is sent to the end user
<message type="management" id="1644ac58-c69c-4a15-879c-3faf5ee329a7_0"
to="ab353de6856e442b88f96f68e55f474a@francky1-all-in-one-rd-dev-1.opentouch.cloud" xmlns="jabber:client">
<telephony-key keyId="60e6bfeed32f29208298d209" xmlns="jabber:iq:configuration" action="update">
<position>1</position>
<type>speedDialing</type>
<origin>personal</origin>
<locked>false</locked>
<active>false</active>
<name>Mom</name>
<number>0388000001</number>
</telephony-key>
</message>
userId required | string User unique identifier (like 56d0277a0261b53142a5cab5) |
keyId required | string Telephony key unique identifier |
position | integer <int32> By default the key is created in the end of the list. It's possible to move it in another place. |
active | boolean This key can be used directly by a user. |
featureCodeSubType | string For featureCode key type only, this is the type of the field
|
featureCodeSupportedTelStates | Array of strings For featureCode key type only, this are supported telephony states [optional] The supported telephony state is the list of telephony state which are compatible with the feature code.
|
locked | boolean The key is created by an administrator and can't be updated by the end user |
name | string [ 1 .. 32 ] characters Label of the key |
number | string [ 1 .. 32 ] characters The key content for keys of type |
restrictedUse | boolean The key is created by an administrator for some users sharing the same system (PBX). It is assigned by an administrator only
|
type | string The type of the key
|
{- "active": true,
- "featureCodeSubType": "string",
- "featureCodeSupportedTelStates": [
- "string"
], - "locked": true,
- "name": "string",
- "number": "string",
- "restrictedUse": true,
- "type": "string"
}
{- "data": {
- "telephonyKeys": [
- {
- "position": 0,
- "origin": "group",
- "locked": true,
- "active": true,
- "featureCodeSupportedTelStates": [ ],
- "type": "speedDialing",
- "name": "Brice De Nice",
- "number": "21777806",
- "id": "60e44e81c8da191a7051575b"
}, - {
- "position": 1,
- "origin": "personal",
- "locked": true,
- "active": true,
- "featureCodeSupportedTelStates": [ ],
- "type": "featureCode",
- "name": "VoiceMailWelcome",
- "featureCodeSubType": "dtmf",
- "number": "8882",
- "id": "60e45024c8da191a7051575c"
}
]
}
}
This API can be used to list all the programmable phone touch of a user.
Users with a paid Rainbow license (business or enterprise) can manage and use programmable keys for their softphone.
This keys can be of different types:
All of them can be managed by an administrator, and some of them can be locked to prevent the end user to override the content.
note: If the user is associated to a company's group, the keys of the group are prepend in the list
by respected the user limits.
This API returns always an empty set of programmable keys when the user haven't the right license.
userId required | string User unique identifier (like 56d0277a0261b53142a5cab5) |
{- "data": {
- "telephonyKeys": [
- {
- "position": 0,
- "origin": "group",
- "locked": true,
- "active": true,
- "featureCodeSupportedTelStates": [ ],
- "type": "speedDialing",
- "name": "Brice De Nice",
- "number": "21777806",
- "id": "60e44e81c8da191a7051575b"
}, - {
- "position": 1,
- "origin": "personal",
- "locked": false,
- "active": true,
- "featureCodeSupportedTelStates": [ ],
- "type": "featureCode",
- "name": "VoiceMailWelcome",
- "featureCodeSubType": "dtmf",
- "number": "8882",
- "id": "60e45024c8da191a7051575c"
}
]
}
}
This API can be used to create one programmable phone touch of a user.
This keys can be of different types:
It can be locked at creation.
By default the key is not locked and active at creation.
Feature keys bellow are taken into account before allowing a programmable key creation. (errorDetailCode: 403620)
A message stanza is sent to the end user
<message type="management" id="1644ac58-c69c-4a15-879c-3faf5ee329a7_0"
to="ab353de6856e442b88f96f68e55f474a@francky1-all-in-one-rd-dev-1.opentouch.cloud" xmlns="jabber:client">
<telephony-key keyId="60e6bfeed32f29208298d209" xmlns="jabber:iq:configuration" action="create">
<position>1</position>
<type>speedDialing</type>
<origin>personal</origin>
<locked>false</locked>
<active>true</active>
<name>Mom</name>
<number>0388000001</number>
</telephony-key>
</message>
userId required | string User unique identifier (like 56d0277a0261b53142a5cab5) |
position | integer <int32> By default the key is created in the end of the list. It's possible to insert it in another place. |
active | boolean This key can be used directly by a user. |
featureCodeSubType | string For featureCode key type only, this is the type of the field
|
featureCodeSupportedTelStates | Array of strings For featureCode key type only, this are supported telephony states [optional] The supported telephony state is the list of telephony state which are compatible with the feature code.
|
locked | boolean The key is created by an administrator and can't be updated by the end user |
name required | string [ 1 .. 32 ] characters Label of the key |
number | string [ 1 .. 32 ] characters The key content for keys of type |
restrictedUse | boolean The key is created by an administrator for some users sharing the same system (PBX). It is assigned by an administrator only |
type required | string The type of the key
|
{- "active": true,
- "featureCodeSubType": "string",
- "featureCodeSupportedTelStates": [
- "string"
], - "locked": true,
- "name": "string",
- "number": "string",
- "restrictedUse": true,
- "type": "string"
}
{- "data": {
- "telephonyKeys": [
- {
- "position": 0,
- "origin": "group",
- "locked": true,
- "active": true,
- "featureCodeSupportedTelStates": [ ],
- "type": "speedDialing",
- "name": "Brice De Nice",
- "number": "21777806",
- "id": "60e44e81c8da191a7051575b"
}, - {
- "position": 1,
- "origin": "personal",
- "locked": true,
- "active": true,
- "featureCodeSupportedTelStates": [ ],
- "type": "featureCode",
- "name": "VoiceMailWelcome",
- "featureCodeSubType": "dtmf",
- "number": "8882",
- "id": "60e45024c8da191a7051575c"
}
]
}
}