Interface for the CallRecording client.

Provides read access to Post Call Recordings through a single getCallRecording method (listing, single fetch, lookup by call session, and metadata — selected by the request type), moves a recording to the recycle bin (soft delete), and emits recording lifecycle events received over Mercury.

Hierarchy

  • Eventing<CallRecordingEventTypes>
    • ICallRecording

Implemented by

Methods

  • Reads Post Call Recordings. The GetCallRecordingRequest type selects the operation and constrains the rest of the request body; the resolved response type is inferred per request via RecordingResponseFor:

    • LIST (GET /convergedRecordings) -> RecordingListResponse. The query params come from GetRecordingsOptions; both a from lower bound (derived from days when not provided) and a to upper bound (defaults to now) are always sent, because the API only returns results when the time window is bounded on both ends.
    • DETAIL (GET /convergedRecordings/{recordingId}) -> RecordingResponse.
    • METADATA (GET /convergedRecordings/{recordingId}/metadata) -> RecordingMetadataResponse.
    • BY_CALL_SESSION -> RecordingListResponse. The recording API has no confirmed server-side filter for call session id, so this fetches a list and filters client-side on serviceData.callSessionId. The scan is bounded by the list query, so pass options to widen the time window/status/page when the target session may fall outside the defaults.

    Example

    const list = await callRecording.getCallRecording({type: RecordingRequestType.LIST, options: {max: 30}});
    const one = await callRecording.getCallRecording({type: RecordingRequestType.DETAIL, recordingId});
    const meta = await callRecording.getCallRecording({type: RecordingRequestType.METADATA, recordingId});
    const bySession = await callRecording.getCallRecording({
    type: RecordingRequestType.BY_CALL_SESSION,
    callSessionId,
    options: {days: 30, max: 100},
    });

    Type Parameters

    • T extends GetCallRecordingRequest

    Parameters

    • request: T

      The discriminated read request.

    Returns Promise<RecordingResponseFor<T>>

  • Moves a recording to the recycle bin (soft delete).

    Calls POST /convergedRecordings/softDelete with { recordingIds: [recordingId] }. The recording can be restored from the recycle bin via the platform restore API. Requires spark:recordings_write on the access token (recording owner). Control Hub "Delete recordings and transcripts" enables this for the user; it does not grant compliance-officer permanent delete.

    Mercury emits convergedRecordings.updated + TRASH, surfaced as callRecording:deleted.

    Example

    await callRecording.deleteRecording(recordingId);
    

    Parameters

    • recordingId: string

      The recording id (id) to move to the recycle bin.

    • Optional _options: DeleteRecordingOptions

      Deprecated. Ignored.

    Returns Promise<RecordingDeleteResponse>

Events

  • Type Parameters

    • E extends keyof CallRecordingEventTypes

    Parameters

    • event: E

      Event that is going ot be emitted.

    • Rest ...args: Parameters<CallRecordingEventTypes[E]>

      Parameters that are emitted with the event.

    Returns boolean

  • .

    Type Parameters

    • E extends keyof CallRecordingEventTypes

    Parameters

    • event: E

      Event to listen to.

    • listener: CallRecordingEventTypes[E]

      Callback for event.

    Returns ICallRecording

  • .

    Type Parameters

    • E extends keyof CallRecordingEventTypes

    Parameters

    • event: E

      Event to remove listener on.

    • listener: CallRecordingEventTypes[E]

      Callback for event.

    Returns ICallRecording