openapi: 3.0.3
info:
title: RingCentral Adaptive Cards Call Control API
description: RingCentral API specification
version: 1.0.58-20240529-47eda8bd
contact:
name: RingCentral Developers Support
url: https://developers.ringcentral.com/support
termsOfService: https://www.ringcentral.com/legal/apilitos.html
license:
name: RingCentral API License Agreement
url: https://www.ringcentral.com/legal/apilitos.html
servers:
- url: https://platform.ringcentral.com
description: Production API entry point
- url: https://media.ringcentral.com
description: Production Media entry point
- url: https://platform.devtest.ringcentral.com
description: Developer sandbox API entry point
- url: https://platform.devtest.ringcentral.com
description: Developer sandbox Media entry point
security:
- OAuth2: []
tags:
- name: Call Control
paths:
/restapi/v1.0/account/{accountId}/telephony/call-out:
post:
tags:
- Call Control
summary: Make CallOut
description: Creates a new outbound call out session. Currently this method is supported for Softphone/Hardphone only, since device IDs for WebRTC/Mobile apps cannot be obtained.
operationId: createCallOutCallSession
parameters:
- $ref: '#/components/parameters/AccountId'
requestBody:
description: JSON body
content:
application/json:
schema:
$ref: '#/components/schemas/MakeCallOutRequest'
required: true
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/CallSession'
'503':
$ref: '#/components/responses/ServiceNotAvailable'
x-throttling-group: Heavy
x-app-permission: CallControl
/restapi/v1.0/account/{accountId}/telephony/conference:
post:
tags:
- Call Control
summary: Start Conference Call Session
description: Initiates a conference call session.
operationId: createConferenceCallSession
parameters:
- $ref: '#/components/parameters/AccountId'
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/CallSession'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'409':
$ref: '#/components/responses/Conflict'
'500':
$ref: '#/components/responses/InternalError'
'503':
$ref: '#/components/responses/ServiceNotAvailable'
x-throttling-group: Heavy
x-app-permission: CallControl
/restapi/v1.0/account/{accountId}/telephony/sessions/{telephonySessionId}:
get:
tags:
- Call Control
summary: Get Call Session Status
description: Returns the status of a call session by ID.
operationId: readCallSessionStatus
parameters:
- $ref: '#/components/parameters/AccountId'
- $ref: '#/components/parameters/TelephonySessionId'
- name: timestamp
in: query
description: The date and time of a call session latest change
schema:
type: string
- name: timeout
in: query
description: 'The time frame of awaiting for a status change before sending
the resulting one in response
'
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/CallSessionObject'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalError'
'503':
$ref: '#/components/responses/ServiceNotAvailable'
x-throttling-group: Light
x-app-permission: CallControl
x-notifications:
- $ref: '#/components/schemas/AccountTelephonySessionsEvent'
- $ref: '#/components/schemas/ExtensionTelephonySessionsEvent'
delete:
tags:
- Call Control
summary: Drop Call Session
description: Drops a call session.
operationId: deleteCallSession
parameters:
- $ref: '#/components/parameters/AccountId'
- $ref: '#/components/parameters/TelephonySessionId'
responses:
'204':
description: No Content
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalError'
'503':
$ref: '#/components/responses/ServiceNotAvailable'
x-throttling-group: Light
x-app-permission: CallControl
/restapi/v1.0/account/{accountId}/telephony/sessions/{telephonySessionId}/parties/bring-in:
post:
tags:
- Call Control
summary: Bring-In Call Party
description: 'Adds a new party to the call session by bringing in an established
SIP call connection. The maximum number of parties to bring in is 10; only
1 call party can be added per request. Currently, the method is supported for
sessions of the `Conference` origin only.
'
operationId: createCallPartyWithBringIn
parameters:
- $ref: '#/components/parameters/AccountId'
- $ref: '#/components/parameters/TelephonySessionId'
requestBody:
description: JSON body
content:
application/json:
schema:
$ref: '#/components/schemas/AddPartyRequest'
required: true
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/CallParty'
'400':
$ref: '#/components/responses/InvalidRequest'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'409':
$ref: '#/components/responses/Conflict'
'500':
$ref: '#/components/responses/InternalError'
'503':
$ref: '#/components/responses/ServiceNotAvailable'
x-throttling-group: Light
x-app-permission: CallControl
/restapi/v1.0/account/{accountId}/telephony/sessions/{telephonySessionId}/parties/{partyId}:
get:
tags:
- Call Control
summary: Get Call Party Status
description: Returns a call party status by ID.
operationId: readCallPartyStatus
parameters:
- $ref: '#/components/parameters/AccountId'
- $ref: '#/components/parameters/TelephonySessionId'
- $ref: '#/components/parameters/TelephonySessionPartyId'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/CallParty'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalError'
'503':
$ref: '#/components/responses/ServiceNotAvailable'
x-throttling-group: Light
x-app-permission: CallControl
delete:
tags:
- Call Control
summary: Delete Call Party
description: Deletes a party from a call session by ID. A party can be deleted only if supervised or parked. It is possible to delete only one conference participant per request.
operationId: deleteCallParty
parameters:
- $ref: '#/components/parameters/AccountId'
- $ref: '#/components/parameters/TelephonySessionId'
- $ref: '#/components/parameters/TelephonySessionPartyId'
responses:
'204':
description: No Content
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalError'
'503':
$ref: '#/components/responses/ServiceNotAvailable'
x-throttling-group: Light
x-app-permission: CallControl
patch:
tags:
- Call Control
summary: Update Call Party
description: Modifies a call party by ID. There is a known limitation for Mute scenario - mute via REST API doesn't work with mute placed via RingCentral apps or HardPhone. It means that if you muted participant via Call Control API and RingCentral Desktop app you need to unmute both endpoints to bring the media back.
operationId: updateCallParty
parameters:
- $ref: '#/components/parameters/AccountId'
- $ref: '#/components/parameters/TelephonySessionId'
- $ref: '#/components/parameters/TelephonySessionPartyId'
requestBody:
description: JSON body
content:
application/json:
schema:
$ref: '#/components/schemas/PartyUpdateRequest'
required: true
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/CallParty'
'400':
$ref: '#/components/responses/InvalidRequest'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'409':
$ref: '#/components/responses/Conflict'
'500':
$ref: '#/components/responses/InternalError'
'503':
$ref: '#/components/responses/ServiceNotAvailable'
x-throttling-group: Light
x-app-permission: CallControl
/restapi/v1.0/account/{accountId}/telephony/sessions/{telephonySessionId}/parties/{partyId}/unhold:
post:
tags:
- Call Control
summary: Un-hold Call Party
description: Brings a party back into a call and stops to play Hold Music. There is a known limitation for Hold API - hold via REST API doesn't work with hold placed via RingCentral apps or HardPhone. It means that if you muted participant via Call Control API and RingCentral Desktop app, then you need to un-hold both endpoints to remove Hold Music and bring media back.
operationId: unholdCallParty
parameters:
- $ref: '#/components/parameters/AccountId'
- $ref: '#/components/parameters/TelephonySessionId'
- $ref: '#/components/parameters/TelephonySessionPartyId'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/CallParty'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'409':
$ref: '#/components/responses/Conflict'
'500':
$ref: '#/components/responses/InternalError'
'503':
$ref: '#/components/responses/ServiceNotAvailable'
x-throttling-group: Light
x-app-permission: CallControl
/restapi/v1.0/account/{accountId}/telephony/sessions/{telephonySessionId}/parties/{partyId}/park:
post:
tags:
- Call Control
summary: Call Park
description: Parks a call to a virtual location from where it can further be retrieved by any user from any phone of the system. The call session and call party identifiers should be specified in path. Currently, the users can park only their own incoming calls. Up to 50 calls can be parked simultaneously. Park location starts with asterisk (*) and ranges 801-899.
operationId: callParkParty
parameters:
- $ref: '#/components/parameters/AccountId'
- $ref: '#/components/parameters/TelephonySessionId'
- $ref: '#/components/parameters/TelephonySessionPartyId'
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/CallParty'
'400':
$ref: '#/components/responses/InvalidRequest'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'409':
$ref: '#/components/responses/Conflict'
'500':
$ref: '#/components/responses/InternalError'
'503':
$ref: '#/components/responses/ServiceNotAvailable'
x-throttling-group: Light
x-app-permission: CallControl
/restapi/v1.0/account/{accountId}/telephony/sessions/{telephonySessionId}/parties/{partyId}/flip:
post:
tags:
- Call Control
summary: Call Flip on Party
description: Performs call flip procedure by holding opposite party and calling to the specified target
operationId: callFlipParty
parameters:
- $ref: '#/components/parameters/AccountId'
- $ref: '#/components/parameters/TelephonySessionId'
- $ref: '#/components/parameters/TelephonySessionPartyId'
requestBody:
description: JSON body
content:
application/json:
schema:
$ref: '#/components/schemas/CallPartyFlip'
required: true
responses:
'200':
description: Success
'400':
$ref: '#/components/responses/InvalidRequest'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'409':
$ref: '#/components/responses/Conflict'
'500':
$ref: '#/components/responses/InternalError'
'503':
$ref: '#/components/responses/ServiceNotAvailable'
x-throttling-group: Light
x-app-permission: CallControl
/restapi/v1.0/account/{accountId}/telephony/sessions/{telephonySessionId}/parties/{partyId}/reply:
post:
tags:
- Call Control
summary: Reply with Text
description: Replies with text/pattern without picking up a call.
operationId: replyParty
parameters:
- $ref: '#/components/parameters/AccountId'
- $ref: '#/components/parameters/TelephonySessionId'
- $ref: '#/components/parameters/TelephonySessionPartyId'
requestBody:
description: JSON body
content:
application/json:
schema:
$ref: '#/components/schemas/CallPartyReply'
required: true
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/ReplyParty'
'400':
$ref: '#/components/responses/InvalidRequest'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'409':
$ref: '#/components/responses/Conflict'
'500':
$ref: '#/components/responses/InternalError'
'503':
$ref: '#/components/responses/ServiceNotAvailable'
x-throttling-group: Light
x-app-permission: CallControl
/restapi/v1.0/account/{accountId}/telephony/sessions/{telephonySessionId}/parties/{partyId}/bridge:
post:
tags:
- Call Control
summary: Bridge Call Party
description: 'Allows the user to connect multiple call session participants over a conference call bridge.
The current active call session ID and party ID of the user within this session should be specified
in path; the bridged call session ID and party ID of the user within that session should be specified
in request body. Thus, the user connects participants of two sessions into the one conference call
using his/her own party IDs from both sessions."
'
operationId: bridgeCallParty
parameters:
- $ref: '#/components/parameters/AccountId'
- $ref: '#/components/parameters/TelephonySessionId'
- $ref: '#/components/parameters/TelephonySessionPartyId'
requestBody:
description: Defines target call session and call party to be bridged
content:
application/json:
schema:
$ref: '#/components/schemas/BridgeTargetRequest'
required: true
responses:
'200':
description: Bridged Call Info
content:
application/json:
schema:
$ref: '#/components/schemas/CallParty'
'400':
$ref: '#/components/responses/InvalidRequest'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'409':
$ref: '#/components/responses/Conflict'
'500':
$ref: '#/components/responses/InternalError'
'503':
$ref: '#/components/responses/ServiceNotAvailable'
x-throttling-group: Light
x-app-permission: CallControl
/restapi/v1.0/account/{accountId}/telephony/sessions/{telephonySessionId}/parties/{partyId}/ignore:
post:
tags:
- Call Control
summary: Ignore Call in Queue
description: Ignores a call to a call queue agent in `Setup` or `Proceeding` state.
operationId: ignoreCallInQueue
parameters:
- $ref: '#/components/parameters/AccountId'
- $ref: '#/components/parameters/TelephonySessionId'
- $ref: '#/components/parameters/TelephonySessionPartyId'
requestBody:
description: JSON body
content:
application/json:
schema:
$ref: '#/components/schemas/IgnoreRequestBody'
required: true
responses:
'204':
description: No Content
'400':
$ref: '#/components/responses/InvalidRequest'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'409':
$ref: '#/components/responses/Conflict'
'500':
$ref: '#/components/responses/InternalError'
'503':
$ref: '#/components/responses/ServiceNotAvailable'
x-throttling-group: Light
x-app-permission: CallControl
/restapi/v1.0/account/{accountId}/telephony/sessions/{telephonySessionId}/parties/{partyId}/supervise:
post:
tags:
- Call Control
summary: Supervise Call Party
description: 'Allows to monitor a call party in ''Listen'' mode. Input parameters
are extension number of a monitored user and internal identifier of a supervisor''s
device. Call session and party identifiers should be specified in path. Please
note that for this method dual channel audio flow is supported, which means
that you need to make one more request for monitoring the second participant
of a call. And as a result of each monitoring request the client receives
SIP invite with the following header `p-rc-api-monitoring-ids` containing
IDs of the monitored party and session. The flow is supported for calls with
no more than 2 participants. Currently, this method is supported for Softphone/Hardphone devices
only, since device IDs for WebRTC/Mobile apps cannot be obtained.
'
operationId: superviseCallParty
parameters:
- $ref: '#/components/parameters/AccountId'
- $ref: '#/components/parameters/TelephonySessionId'
- $ref: '#/components/parameters/TelephonySessionPartyId'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PartySuperviseRequest'
required: true
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/PartySuperviseResponse'
'400':
$ref: '#/components/responses/InvalidRequest'
'404':
$ref: '#/components/responses/NotFound'
'409':
$ref: '#/components/responses/Conflict'
'500':
$ref: '#/components/responses/InternalError'
'503':
$ref: '#/components/responses/ServiceNotAvailable'
x-throttling-group: Light
x-app-permission: CallControl
/restapi/v1.0/account/{accountId}/telephony/sessions/{telephonySessionId}/parties/{partyId}/reject:
post:
tags:
- Call Control
summary: Reject Call Party
description: Rejects an inbound call in a "Setup" or "Proceeding" state
operationId: rejectParty
parameters:
- $ref: '#/components/parameters/AccountId'
- $ref: '#/components/parameters/TelephonySessionId'
- $ref: '#/components/parameters/TelephonySessionPartyId'
responses:
'204':
description: No Content
'400':
$ref: '#/components/responses/InvalidRequest'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'409':
$ref: '#/components/responses/Conflict'
'500':
$ref: '#/components/responses/InternalError'
'503':
$ref: '#/components/responses/ServiceNotAvailable'
x-throttling-group: Light
x-app-permission: CallControl
/restapi/v1.0/account/{accountId}/telephony/sessions/{telephonySessionId}/parties/{partyId}/recordings:
post:
tags:
- Call Control
summary: Create Recording
description: Starts a new call recording for the party
operationId: startCallRecording
parameters:
- $ref: '#/components/parameters/AccountId'
- $ref: '#/components/parameters/TelephonySessionId'
- $ref: '#/components/parameters/TelephonySessionPartyId'
responses:
'201':
description: Created
'400':
$ref: '#/components/responses/InvalidRequest'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'409':
$ref: '#/components/responses/Conflict'
'500':
$ref: '#/components/responses/InternalError'
'503':
$ref: '#/components/responses/ServiceNotAvailable'
x-throttling-group: Light
x-app-permission: CallControl
/restapi/v1.0/account/{accountId}/telephony/sessions/{telephonySessionId}/parties/{partyId}/recordings/{recordingId}:
patch:
tags:
- Call Control
summary: Pause/Resume Recording
description: Pause/resume recording
operationId: pauseResumeCallRecording
parameters:
- name: brandId
in: query
description: Identifies a brand of a logged-in user or a brand of a sign-up session
required: true
schema:
type: string
default: '~'
- $ref: '#/components/parameters/AccountId'
- $ref: '#/components/parameters/TelephonySessionId'
- $ref: '#/components/parameters/TelephonySessionPartyId'
- name: recordingId
in: path
description: Internal identifier of a recording
required: true
schema:
type: string
requestBody:
description: JSON body
content:
application/json:
schema:
$ref: '#/components/schemas/CallRecordingUpdate'
required: true
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/CallRecording'
'400':
$ref: '#/components/responses/InvalidRequest'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'409':
$ref: '#/components/responses/Conflict'
'500':
$ref: '#/components/responses/InternalError'
'503':
$ref: '#/components/responses/ServiceNotAvailable'
x-throttling-group: Light
x-app-permission: CallControl
/restapi/v1.0/account/{accountId}/telephony/sessions/{telephonySessionId}/parties/{partyId}/answer:
post:
tags:
- Call Control
summary: Answer Call Party
description: Answers a call on a certain device by passing the corresponding device ID in request body. Supported for call forwarding, call transfer, call flip and call queues.
operationId: answerCallParty
parameters:
- $ref: '#/components/parameters/AccountId'
- $ref: '#/components/parameters/TelephonySessionId'
- $ref: '#/components/parameters/TelephonySessionPartyId'
requestBody:
description: Distributes a non-answered call to the defined target. Only a single target is allowed
content:
application/json:
schema:
$ref: '#/components/schemas/AnswerTarget'
required: true
responses:
'200':
description: Call Session Information
content:
application/json:
schema:
$ref: '#/components/schemas/CallParty'
'400':
$ref: '#/components/responses/InvalidRequest'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'409':
$ref: '#/components/responses/Conflict'
'500':
$ref: '#/components/responses/InternalError'
'503':
$ref: '#/components/responses/ServiceNotAvailable'
x-throttling-group: Light
x-app-permission: CallControl
/restapi/v1.0/account/{accountId}/telephony/sessions/{telephonySessionId}/parties/{partyId}/transfer:
post:
tags:
- Call Control
summary: Transfer Call Party
description: Transfers an answered call to the specified call party. Applicable for a call session in "Answered" or "Hold" state.
operationId: transferCallParty
parameters:
- $ref: '#/components/parameters/AccountId'
- $ref: '#/components/parameters/TelephonySessionId'
- $ref: '#/components/parameters/TelephonySessionPartyId'
requestBody:
description: Specifies a call party to which the call will be transferred. Only a single call party is allowed.
content:
application/json:
schema:
$ref: '#/components/schemas/TransferTarget'
required: true
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/CallParty'
'400':
$ref: '#/components/responses/InvalidRequest'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'409':
$ref: '#/components/responses/Conflict'
'500':
$ref: '#/components/responses/InternalError'
'503':
$ref: '#/components/responses/ServiceNotAvailable'
x-throttling-group: Light
x-app-permission: CallControl
/restapi/v1.0/account/{accountId}/telephony/sessions/{telephonySessionId}/parties/{partyId}/hold:
post:
tags:
- Call Control
summary: Hold Call Party
description: Puts the party to stand-alone mode and starts to play Hold Music according to configuration & state to peers. There is a known limitation for Hold API - hold via REST API doesn't work with hold placed via RingCentral apps or HardPhone. It means that if you muted participant via Call Control API and RingCentral Desktop app, then you need to un-hold both endpoints to remove Hold Music and bring media back.
operationId: holdCallParty
parameters:
- $ref: '#/components/parameters/AccountId'
- $ref: '#/components/parameters/TelephonySessionId'
- $ref: '#/components/parameters/TelephonySessionPartyId'
requestBody:
description: JSON body
content:
application/json:
schema:
$ref: '#/components/schemas/HoldCallPartyRequest'
required: false
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/CallParty'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'409':
$ref: '#/components/responses/Conflict'
'500':
$ref: '#/components/responses/InternalError'
'503':
$ref: '#/components/responses/ServiceNotAvailable'
x-throttling-group: Light
x-app-permission: CallControl
/restapi/v1.0/account/{accountId}/telephony/sessions/{telephonySessionId}/parties/{partyId}/pickup:
post:
tags:
- Call Control
summary: Pickup Call
description: Picks up a call parked to the specified park location.
operationId: pickupCallParty
parameters:
- $ref: '#/components/parameters/AccountId'
- $ref: '#/components/parameters/TelephonySessionId'
- $ref: '#/components/parameters/TelephonySessionPartyId'
requestBody:
description: Distributes a non-answered call to the defined target. Only a single target is allowed
content:
application/json:
schema:
$ref: '#/components/schemas/PickupTarget'
required: true
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/CallParty'
'400':
$ref: '#/components/responses/InvalidRequest'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'409':
$ref: '#/components/responses/Conflict'
'500':
$ref: '#/components/responses/InternalError'
'503':
$ref: '#/components/responses/ServiceNotAvailable'
x-throttling-group: Light
x-app-permission: CallControl
/restapi/v1.0/account/{accountId}/telephony/sessions/{telephonySessionId}/parties/{partyId}/forward:
post:
tags:
- Call Control
summary: Forward Call Party
description: Forwards a non-answered incoming call to the specified call party. Applicable for a call session in "Setup" or "Proceeding" state.
operationId: forwardCallParty
parameters:
- $ref: '#/components/parameters/AccountId'
- $ref: '#/components/parameters/TelephonySessionId'
- $ref: '#/components/parameters/TelephonySessionPartyId'
requestBody:
description: Specifies a call party to which the call will be forwarded. Only a single call party is allowed.
content:
application/json:
schema:
$ref: '#/components/schemas/ForwardTarget'
required: true
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/ForwardCallPartyResponse'
'400':
$ref: '#/components/responses/InvalidRequest'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'409':
$ref: '#/components/responses/Conflict'
'500':
$ref: '#/components/responses/InternalError'
'503':
$ref: '#/components/responses/ServiceNotAvailable'
x-throttling-group: Light
x-app-permission: CallControl
/restapi/v1.0/account/{accountId}/telephony/sessions/{telephonySessionId}/supervise:
post:
tags:
- Call Control
summary: Supervise Call Session
description: Allows monitoring a call session in 'Listen' mode. Input parameters should contain internal identifiers of a monitored user and a supervisor's device. Call session should be specified in path. Please note that this method supports single channel audio flow, which means that audio of both call participants is mixed and delivered to the supervisor in single audio channel. Currently this method is supported for Softphone/Hardphone only, since device IDs for WebRTC/Mobile apps cannot be obtained.
operationId: superviseCallSession
parameters:
- $ref: '#/components/parameters/AccountId'
- $ref: '#/components/parameters/TelephonySessionId'
requestBody:
description: JSON body
content:
application/json:
schema:
$ref: '#/components/schemas/SuperviseCallSessionRequest'
required: true
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/SuperviseCallSessionResponse'
'400':
$ref: '#/components/responses/InvalidRequest'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'409':
$ref: '#/components/responses/Conflict'
'500':
$ref: '#/components/responses/InternalError'
'503':
$ref: '#/components/responses/ServiceNotAvailable'
x-throttling-group: Light
x-app-permission: CallControl
components:
schemas:
CallSessionObject:
type: object
properties:
id:
type: string
description: Internal identifier of a call session
origin:
$ref: '#/components/schemas/OriginInfo'
voiceCallToken:
type: string
description: For calls of 'Conference' type only
parties:
type: array
items:
$ref: '#/components/schemas/CallParty'
creationTime:
type: string
format: date-time
description: Date and time of the latest session update represented in Unix time format
description: Call session information
MakeCallOutCallerInfoRequestFrom:
type: object
properties:
deviceId:
type: string
description: Internal identifier of a device
example: '59474004'
description: Instance id of the caller. It corresponds to the 1st leg of the CallOut call.
CallRecording:
type: object
properties:
id:
type: string
description: Internal identifier of a call recording
active:
type: boolean
description: Call recording status
TelephonySessionsEventPartyInfo:
type: object
properties:
accountId:
type: string
extensionId:
type: string
id:
type: string
direction:
type: string
enum:
- Inbound
- Outbound
to:
$ref: '#/components/schemas/CallPartyInfo'
from:
$ref: '#/components/schemas/CallPartyInfo'
status:
$ref: '#/components/schemas/CallSessionStatusInfo'
ForwardCallPartyResponse:
type: object
properties:
id:
type: string
description: Internal identifier of a party
status:
$ref: '#/components/schemas/CallStatusInfo'
muted:
type: boolean
description: 'Specifies if a call participant is muted or not. **Note:**
If a call is also controlled via Hard phone or RingCentral App (not only
through the API by calling call control methods) then it cannot be fully
muted/unmuted via API only, in this case the action should be duplicated
via Hard phone/RC App interfaces
'
standAlone:
type: boolean
description: 'If `true` then the party is not connected to a session voice
conference, `false` means the party is connected to other parties in a
session
'
park:
$ref: '#/components/schemas/ParkInfo'
from:
$ref: '#/components/schemas/PartyInfo'
to:
$ref: '#/components/schemas/PartyInfo'
owner:
$ref: '#/components/schemas/OwnerInfo'
direction:
type: string
description: Direction of a call
enum:
- Inbound
- Outbound
conferenceRole:
type: string
description: A party's role in the conference scenarios. For calls of 'Conference' type only
enum:
- Host
- Participant
ringOutRole:
type: string
description: A party's role in 'Ring Me'/'RingOut' scenarios. For calls of 'Ringout' type only
enum:
- Initiator
- Target
ringMeRole:
type: string
description: A party's role in 'Ring Me'/'RingOut' scenarios. For calls of 'Ringme' type only
enum:
- Initiator
- Target
recordings:
type: array
description: Active recordings list
items:
$ref: '#/components/schemas/RecordingInfo'
description: Information on a party of a call session
TransferTarget:
type: object
description: 'Identifier of a call party the call will be transferred to. Only **one of** these parameters: `phoneNumber`, `voicemail`, `extensionNumber` or `parkOrbit` must be specified, otherwise an error is returned.'
properties:
phoneNumber:
type: string
description: Phone number
voicemail:
type: string
description: Voicemail owner extension identifier
parkOrbit:
type: string
description: Park orbit identifier
extensionNumber:
type: string
description: Extension short number
ReplyParty:
type: object
properties:
id:
type: string
description: Internal identifier of a party
status:
$ref: '#/components/schemas/CallStatusInfo'
muted:
type: boolean
description: Specifies if a call participant is muted or not. **Note:** If a call is also controlled via Hard phone or RingCentral App (not only through the API by calling call control methods) then it cannot be fully muted/unmuted via API only, in this case the action should be duplicated via Hard phone/RC App interfaces
standAlone:
type: boolean
description: If `true` then the party is not connected to a session voice conference, `false` means the party is connected to other parties in a session
park:
$ref: '#/components/schemas/ParkInfo'
from:
$ref: '#/components/schemas/PartyInfo'
to:
$ref: '#/components/schemas/PartyInfo'
owner:
$ref: '#/components/schemas/OwnerInfo'
direction:
type: string
description: Direction of a call
enum:
- Inbound
- Outbound
AnswerTarget:
type: object
properties:
deviceId:
type: string
description: Device ID that is used to answer to incoming call.
example: '400018633008'
ApiErrorWithParameter:
description: 'The error model with additional attributes which can be used for HTTP 400/409
This is a deprecated model: "ApiError" model can be used instead with arbitrary additional parameters
'
allOf:
- $ref: '#/components/schemas/ApiError'
- type: object
properties:
parameterName:
type: string
description: The name of the API parameter/attribute which caused the error
parameterValue:
type: string
description: The value of the API parameter/attribute which caused the error
CallRecordingUpdate:
type: object
properties:
active:
type: boolean
description: Recording status
ApiError:
type: object
description: Generalized API error structure suitable for any error type
required:
- errorCode
- message
properties:
errorCode:
type: string
description: Logical error code (typically, 3 letters followed with number, dash separated)
example: XXX-123
message:
type: string
description: User-friendly error message
example: Something went wrong
additionalProperties: true
ApiErrorResponseModel:
type: object
description: Standard error response model which is returned in case of any unsuccessful operation
required:
- errors
properties:
errors:
type: array
description: The array of errors (there will be just one in the most of the cases)
minItems: 1
items:
$ref: '#/components/schemas/ApiError'
ReplyWithPattern:
type: object
properties:
pattern:
type: string
description: Predefined reply pattern name.
example: OnMyWay
enum:
- WillCallYouBack
- CallMeBack
- OnMyWay
- OnTheOtherLine
- WillCallYouBackLater
- CallMeBackLater
- InAMeeting
- OnTheOtherLineNoCall
time:
type: integer
format: int32
description: Number of time units. Applicable only to WillCallYouBack, CallMeBack patterns.
example: 5
timeUnit:
type: string
description: Time unit name.
example: Minute
enum:
- Minute
- Hour
- Day
PickupTarget:
required:
- deviceId
type: object
properties:
deviceId:
type: string
description: Device identifier that is used to pick up the parked call.
example: '400018633008'
PeerInfo:
type: object
properties:
sessionId:
type: string
telephonySessionId:
type: string
partyId:
type: string
description: Peer session/party details. Valid in 'Gone' state of a call
SuperviseCallSessionRequest:
required:
- mode
- supervisorDeviceId
type: object
properties:
mode:
type: string
description: Supervising mode
example: Listen
enum:
- Listen
supervisorDeviceId:
type: string
description: Internal identifier of a supervisor's device which will be used for call session monitoring
example: '191888004'
agentExtensionId:
type: string
description: Extension identifier of the user that will be monitored
example: '400378008008'
autoAnswer:
type: boolean
description: Specifies if auto-answer SIP header should be sent. If auto-answer is set to `true`, the call is automatically answered by the supervising party, if set to `false` - then the supervising party has to accept or decline the monitored call
default: true
mediaSDP:
type: string
description: Specifies session description protocol setting
enum:
- sendOnly
- sendRecv
OwnerInfo:
type: object
properties:
accountId:
type: string
description: Internal identifier of an account that monitors a call
extensionId:
type: string
description: Internal identifier of an extension that monitors a call
description: Deprecated. Information on a call owner
CallPartyReply:
type: object
properties:
replyWithText:
type: string
description: Text to reply
replyWithPattern:
$ref: '#/components/schemas/ReplyWithPattern'
MakeCallOutRequest:
required:
- from
- to
type: object
properties:
from:
$ref: '#/components/schemas/MakeCallOutCallerInfoRequestFrom'
to:
$ref: '#/components/schemas/MakeCallOutCallerInfoRequestTo'
countryId:
$ref: '#/components/schemas/CountryId'
TelephonySessionsEventBody:
type: object
properties:
sequence:
type: integer
format: int64
description: Order number of a notification to state the chronology
sessionId:
type: string
description: Legacy identifier of a call session
telephonySessionId:
type: string
description: Call session identifier, required for Telephony API
serverId:
type: string
description: Identifier of a server
eventTime:
type: string
format: date-time
description: The call start date/time in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format including timezone, for example *2016-03-10T18:07:52.534Z*
origin:
$ref: '#/components/schemas/OriginInfo'
parties:
type: array
description: Call participants details
items:
$ref: '#/components/schemas/TelephonySessionsEventPartyInfo'
description: Notification payload body
CallPartyInfo:
type: object
properties:
phoneNumber:
type: string
description: Call party phone number in [E.164](https://www.itu.int/rec/T-REC-E.164-201011-I)(with '+' sign) format
name:
type: string
description: Call party name
extensionId:
type: string
description: Internal identifier of a call party extensionId
CountryId:
type: integer
format: int64
description: Optional. Dialing plan country data. If not specified, then extension home country is applied by default.
CallSession:
type: object
properties:
session:
$ref: '#/components/schemas/CallSessionObject'
ParameterizedErrorResponseModel:
type: object
description: Standard error response which may include parameterized errors
required:
- errors
properties:
errors:
type: array
description: The array of errors (there will be just one in the most of the cases)
minItems: 1
items:
$ref: '#/components/schemas/ApiErrorWithParameter'
CallParty:
type: object
properties:
id:
type: string
description: Internal identifier of a party
status:
$ref: '#/components/schemas/CallStatusInfo'
muted:
type: boolean
description: 'Specifies if a call participant is muted or not. **Note:**
If a call is also controlled via Hard phone or RingCentral App (not only
through the API by calling call control methods) then it cannot be fully
muted/unmuted via API only, in this case the action should be duplicated
via Hard phone/RC App interfaces
'
standAlone:
type: boolean
description: 'If `true` then the party is not connected to a session voice
conference, `false` means the party is connected to other parties in a
session
'
park:
$ref: '#/components/schemas/ParkInfo'
from:
$ref: '#/components/schemas/PartyInfo'
to:
$ref: '#/components/schemas/PartyInfo'
owner:
$ref: '#/components/schemas/OwnerInfo'
direction:
type: string
description: Direction of a call
enum:
- Inbound
- Outbound
conferenceRole:
type: string
description: A party's role in the conference scenarios. For calls of 'Conference' type only
enum:
- Host
- Participant
ringOutRole:
type: string
description: A party's role in 'Ring Me'/'RingOut' scenarios. For calls of 'Ringout' type only
enum:
- Initiator
- Target
ringMeRole:
type: string
description: A party's role in 'Ring Me'/'RingOut' scenarios. For calls of 'Ringme' type only
enum:
- Initiator
- Target
recordings:
type: array
description: Active recordings list
items:
$ref: '#/components/schemas/RecordingInfo'
description: Information on a party of a call session
MobilePickupData:
type: object
properties:
ccMailboxes:
type: array
description: List of extension IDs, configured to pick up a call from Desktop/Mobile applications
items:
type: string
to:
type: string
description: SIP proxy registration name
sid:
type: string
description: User data
srvlvl:
type: string
description: User data
srvLvlExt:
type: string
description: User data
SuperviseCallSessionResponse:
type: object
properties:
from:
$ref: '#/components/schemas/PartyInfo'
to:
$ref: '#/components/schemas/PartyInfo'
direction:
type: string
description: Direction of a call
enum:
- Outbound
- Inbound
id:
type: string
description: Internal identifier of a party that monitors a call
accountId:
type: string
description: Internal identifier of an account that monitors a call
extensionId:
type: string
description: Internal identifier of an extension that monitors a call
muted:
type: boolean
description: Specifies if a call participant is muted or not. **Note:** If a call is also controlled via Hard phone or RingCentral App (not only through the API by calling call control methods) then it cannot be fully muted/unmuted via API only, in this case the action should be duplicated via Hard phone/RC App interfaces
owner:
$ref: '#/components/schemas/OwnerInfo'
standAlone:
type: boolean
description: If `true` then the party is not connected to a session voice conference, `false` means the party is connected to other parties in a session
status:
$ref: '#/components/schemas/CallStatusInfo'
PartySuperviseRequest:
required:
- agentExtensionId
- mode
- supervisorDeviceId
type: object
properties:
mode:
type: string
description: Supervising mode
example: Listen
enum:
- Listen
supervisorDeviceId:
type: string
description: Internal identifier of a supervisor's device
example: '191888004'
agentExtensionId:
type: string
description: Mailbox ID of a user that will be monitored
example: '400378008008'
autoAnswer:
type: boolean
description: Specifies if auto-answer SIP header should be sent. If auto-answer is set to `true`, the call is automatically answered by the supervising party, if set to `false` - then the supervising party has to accept or decline the monitored call
default: true
mediaSDP:
type: string
description: Specifies session description protocol (SDP) setting. The possible values are 'sendOnly' (only sending) meaning one-way audio streaming; and 'sendRecv' (sending/receiving) meaning two-way audio streaming
enum:
- sendOnly
- sendRecv
CallStatusInfo:
type: object
properties:
code:
type: string
description: Status code of a call
enum:
- Setup
- Proceeding
- Answered
- Disconnected
- Gone
- Parked
- Hold
- VoiceMail
- FaxReceive
- Tds
- VoiceMailScreening
peerId:
$ref: '#/components/schemas/PeerInfo'
reason:
type: string
description: Reason for call termination. For 'Disconnected' code only
enum:
- Pickup
- Supervising
- TakeOver
- Timeout
- BlindTransfer
- RccTransfer
- AttendedTransfer
- CallerInputRedirect
- CallFlip
- ParkLocation
- DtmfTransfer
- AgentAnswered
- AgentDropped
- Rejected
- Cancelled
- InternalError
- NoAnswer
- TargetBusy
- InvalidNumber
- InternationalDisabled
- DestinationBlocked
- NotEnoughFunds
- NoSuchUser
- CallPark
- CallRedirected
- CallReplied
- CallSwitch
- CallFinished
- CallDropped
description:
type: string
description: Optional message
description: Status data of a call session
HoldCallPartyRequest:
type: object
properties:
proto:
type: string
description: Protocol for hold mode initiation
default: Auto
enum:
- Auto
- RC
- BroadWorks
- DisconnectHolder
CallPartyFlip:
type: object
properties:
callFlipId:
type: string
description: Call flip id
ParkInfo:
type: object
properties:
id:
type: string
description: Call park identifier
description: Call park information
MakeCallOutCallerInfoRequestTo:
type: object
properties:
phoneNumber:
type: string
description: Phone number in E.164 format, short codes (*67, *86), emergency (911, 112) or special (988) numbers
example: '+16502223366'
extensionNumber:
type: string
description: Extension number
example: '103'
description: Phone number of the called party. This number corresponds to the 2nd leg of a CallOut call
PartyInfo:
type: object
properties:
phoneNumber:
type: string
description: Phone number of a party
name:
type: string
description: Displayed name of a party
deviceId:
type: string
description: Internal identifier of a device
extensionId:
type: string
description: Internal identifier of an extension
CallSessionStatusInfo:
type: object
properties:
code:
type: string
reason:
type: string
parkData:
type: string
peerId:
$ref: '#/components/schemas/PeerInfo'
mobilePickupData:
$ref: '#/components/schemas/MobilePickupData'
IgnoreRequestBody:
required:
- deviceId
type: object
properties:
deviceId:
type: string
description: Internal device identifier
example: '400020454008'
PartyUpdateRequest:
type: object
properties:
party:
$ref: '#/components/schemas/PartyUpdateInfo'
PartySuperviseResponse:
type: object
properties:
from:
$ref: '#/components/schemas/PartyInfo'
to:
$ref: '#/components/schemas/PartyInfo'
direction:
type: string
description: Direction of a call
enum:
- Outbound
- Inbound
id:
type: string
description: Internal identifier of a party that monitors a call
accountId:
type: string
description: Internal identifier of an account that monitors a call
extensionId:
type: string
description: Internal identifier of an extension that monitors a call
muted:
type: boolean
description: Specifies if a call party is muted
owner:
$ref: '#/components/schemas/OwnerInfo'
standAlone:
type: boolean
description: Specifies if a device is stand-alone
status:
$ref: '#/components/schemas/CallStatusInfo'
AccountTelephonySessionsEvent:
type: object
properties:
uuid:
type: string
description: Universally unique identifier of a notification
event:
type: string
description: Event filter URI
timestamp:
type: string
description: Date/time of sending a notification in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format including timezone, for example *2016-03-10T18:07:52.534Z*
subscriptionId:
type: string
description: Internal identifier of a subscription
ownerId:
type: string
description: Internal identifier of a subscription owner extension
body:
$ref: '#/components/schemas/TelephonySessionsEventBody'
BridgeTargetRequest:
required:
- partyId
- telephonySessionId
type: object
properties:
telephonySessionId:
type: string
description: Internal identifier of a call session to be connected to (bridged)
partyId:
type: string
description: Internal identifier of a call party to be connected to (bridged)
OriginInfo:
type: object
properties:
type:
type: string
description: Session origin type
enum:
- Call
- RingOut
- RingMe
- Conference
- GreetingsRecording
- VerificationCall
- Zoom
- CallOut
description: Session origin details
ForwardTarget:
type: object
description: 'Identifier of a call party the call will be forwarded to. Only **one of** these parameters:
`phoneNumber`, `voicemail` or `extensionNumber` must be specified, otherwise an error is returned.
'
properties:
phoneNumber:
type: string
description: Phone number
voicemail:
type: string
description: Voicemail owner extension identifier
extensionNumber:
type: string
description: Extension short number
PartyUpdateInfo:
type: object
properties:
muted:
type: boolean
description: Specifies if a call participant is muted or not. **Note:** If a call is also controlled via Hard phone or RingCentral App (not only through the API by calling call control methods) then it cannot be fully muted/unmuted via API only, in this case the action should be duplicated via Hard phone/RC App interfaces
standAlone:
type: boolean
description: If `true` then the party is not connected to a session voice conference, `false` means the party is connected to other parties in a session
description: Party update data
RecordingInfo:
type: object
properties:
id:
type: string
description: Internal identifier of a recording resource
active:
type: boolean
description: True if the recording is active. False if the recording is paused.
AddPartyRequest:
required:
- partyId
- sessionId
type: object
properties:
sessionId:
type: string
description: Internal identifier of a call session
partyId:
type: string
description: Internal identifier of a party that should be added to the call session
ExtensionTelephonySessionsEvent:
type: object
properties:
uuid:
type: string
description: Universally unique identifier of a notification
event:
type: string
description: Event filter URI
timestamp:
type: string
description: 'Date/time of sending a notification in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)
format including timezone, for example *2016-03-10T18:07:52.534Z*
'
subscriptionId:
type: string
description: Internal identifier of a subscription
ownerId:
type: string
description: Internal identifier of a subscription owner extension
body:
$ref: '#/components/schemas/TelephonySessionsEventBody'
parameters:
TelephonySessionId:
name: telephonySessionId
in: path
description: Internal identifier of a call session
required: true
schema:
type: string
AccountId:
name: accountId
in: path
description: 'Internal identifier of the RingCentral account
(can be set to "~" to indicate that the account associated with current authorization session should be used)
'
required: true
style: simple
explode: false
schema:
type: string
default: '~'
example: '~'
TelephonySessionPartyId:
name: partyId
in: path
description: Internal identifier of a call party
required: true
schema:
type: string
responses:
NotFound:
description: 'General response with **HTTP 404 "Not found"** status.
Reasons: the entity with given ID (typically specified in a path parameter), is not found or inaccessible
'
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorResponseModel'
ServiceNotAvailable:
description: 'General response with **HTTP 503 "Service not available"** status.
Reasons: server cannot process the request because of being overloaded, misconfiguration or other issues.
'
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorResponseModel'
Forbidden:
description: 'General response with **HTTP 403 "Forbidden"** status.
Reasons: the requested operation is forbidden because of certain resource state, lack of permissions, feature unavailability, etc.
'
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorResponseModel'
Conflict:
description: 'General response with **HTTP 409 "Conflict"** status.
Reasons: the requested modification operation causes a conflict (for example, unique constraint violation).
The error definition may contain reference to particular parameter(s) which caused the conflict.
'
content:
application/json:
schema:
$ref: '#/components/schemas/ParameterizedErrorResponseModel'
InternalError:
description: 'General response with **HTTP 500 "Internal Server Error"** status.
Reasons: general server-side error.
'
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorResponseModel'
InvalidRequest:
description: 'General response with **HTTP 400 "Bad request"** status.
Reasons: unparsable request, path, query or body parameters are invalid.
The error description may contain reference to particular parameter(s) which haven''t passed the validation.
'
content:
application/json:
schema:
$ref: '#/components/schemas/ParameterizedErrorResponseModel'
securitySchemes:
OAuth2:
type: oauth2
flows:
authorizationCode:
authorizationUrl: https://platform.ringcentral.com/restapi/oauth/authorize
tokenUrl: https://platform.ringcentral.com/restapi/oauth/token
refreshUrl: https://platform.ringcentral.com/restapi/oauth/token
scopes: {}
x-tagGroups:
- name: Voice
popular: true
tags:
- Business Hours
- Call Blocking
- Call Control
- Call Forwarding
- Call Handling Rules
- Interaction Rules
- State-based Rules
- Call Flip
- Call Log
- Call History
- Call Log Export
- Call Monitoring Groups
- Call Queues
- Call Recordings
- Call Recording Settings
- Device SIP Registration
- Greetings
- IVR
- RingOut
- Verification Calls
- name: SMS and Fax
popular: true
tags:
- Fax
- Message Exports
- Message Store
- Pager Messages
- SMS
- High Volume SMS
- SMS Log Export
- SMS Templates
- Voicemail Broadcasting
- name: Social Messaging
popular: true
tags:
- Identities
- Contents
- name: Team Messaging
popular: true
tags:
- Adaptive Cards
- Bots
- Calendar Events
- Chats
- Conversations
- Compliance Exports
- Contacts
- Incoming Webhooks
- Notes
- Posts
- Profile
- Tasks
- Teams
- name: Video
popular: true
tags:
- Bridge Management
- Delegation Management
- Meetings History
- Meeting Recordings
- RCM Meetings (Legacy)
- RCM Webinars (Legacy)
- name: Webinar
popular: true
tags:
- Webinars and Sessions
- Invitees
- Historical Webinars
- Historical Recordings
- Registration Management
- Registrants
- Webinar Analytics
- Webinar Subscriptions
- name: Analytics
popular: true
tags:
- Business Analytics
- name: Artificial Intelligence
popular: true
tags:
- Insights
- Audio
- Text
- Status
- name: Authentication
tags:
- OAuth 2.0 / OpenID Connect
- Interoperability
- name: Account
tags:
- Company
- Custom Fields
- Features
- Licenses
- Tax Locations
- Cost Centers
- Multi-Site
- Phone Numbers
- Presence
- Regional Settings
- User Permissions
- User Settings
- Audit Trail
- Calling Rates
- Appearance Customization
- Account Integrations
- name: Provisioning
tags:
- Automatic Location Updates
- Devices
- Extensions
- Paging Only Groups
- Park Locations
- Phone Lines
- SCIM
- Shared Lines
- Group Call Pickup
- Delegated Lines Groups
- Directed Call Pickup
- IVR Apps
- Video Configuration
- Number Porting
- SMB
- Account Federation
- Integrations
- Enterprise Portal API
- Push to Talk Provisioning
- BYOC
- name: Address Book
tags:
- External Contacts
- Internal Contacts
- Hybrid Directory Contacts
- Overlay Contacts
- External Shared Directory
- name: Roles and Permissions
tags:
- Permissions
- Role Management
- Site Administration
- User Groups
- name: Events & Notifications
tags:
- Subscriptions
- name: User Integrations
tags:
- Token Management
- Calendar Management
- Calendar Event Management
- Calendar Presence Link
- Cloud Personal Contacts
- Cloud Shared Contacts
- Cloud Directory
- Deprecated Calendar API
- name: Rooms
tags:
- Rooms Client API
- Rooms Management API
- name: App Management
tags:
- App Gallery
- App Rating Review
- Bot Provisioning
- name: Workflow Builder
tags:
- Flows
- Flow Editor
- Flow Log
- Flow Templates
- name: Utilities
tags:
- API Info
- Application Settings
- Async Tasks
- User Notifications
- Client Versions
- End-to-End Encryption