RingCentral Call Control API

The Call Control API from RingCentral — 21 operation(s) for call control.

OpenAPI Specification

ringcentral-call-control-api-openapi.yml Raw ↑
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: '#/compo

# --- truncated at 32 KB (65 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/ringcentral/refs/heads/main/openapi/ringcentral-call-control-api-openapi.yml