wxc_sdk.converged_recordings package
- class wxc_sdk.converged_recordings.ConvergedRecordingsApi(*, session: RestSession, base: str = None)[source]
Bases:
ApiChildConverged Recordings
Webex Meetings and Webex Calling (with Webex as the Call Recording provider) leverage the same recording infrastructure. That ensures that users can use the same recording API to fetch call recordings and/or meeting recordings. This convergence allows the sharing of functionality (summaries, transcripts, etc.) across the Webex Suite and provides a consistent user experience.
This API is currently limited to Webex Calling i.e., providing details for call recordings but will later be extended to include Webex Meeting recordings.
The access token needs the following scopes:
User: spark:recordings_read spark:recordings_write
Admin: spark-admin:recordings_read spark-admin:recordings_write
Compliance officer: spark-compliance:recordings_read spark-compliance:recordings_write
When the recording is paused in a call, the recording does not contain the pause. If the recording is stopped and restarted in a call, several recordings are created. Those recordings will be consolidated and available all at once.
For information on the call recording feature, refer to Manage call recording for Webex Calling.
- list_for_admin_or_compliance_officer(from_: str | datetime = None, to_: str | datetime = None, status: RecordingStatus = None, service_type: RecordingServiceType = None, format_: str = None, owner_id: str = None, owner_email: str = None, owner_type: RecordingOwnerType = None, storage_region: RecordingStorageRegion = None, location_id: str = None, topic: str = None, timezone: str = None, **params) Generator[ConvergedRecording, None, None][source]
List Recordings for Admin or Compliance officer
List recordings for an admin or compliance officer. You can specify a date range, and the maximum number of recordings to return.
The list returned is sorted in descending order by the date and time that the recordings were created.
Long result sets are split into pages.
List recordings requires the spark-compliance:recordings_read scope for compliance officer and spark-admin:recordings_read scope for admin.
- Parameters:
from (Union[str, datetime]) – Starting date and time (inclusive) for recordings to return, in any ISO 8601 compliant format. from cannot be after to. The interval between from and to must be within 30 days.
to (Union[str, datetime]) –
Ending date and time (exclusive) for List recordings to return, in any ISO 8601 compliant format. to cannot be before from. The interval between from and to must be within 30 days.
status (RecordingStatus) – Recording’s status. If not specified or available, retrieves recordings that are available. Otherwise, if specified as deleted, retrieves recordings that have been moved into the recycle bin.
service_type (RecordingServiceType) – Recording’s service-type. If specified, the API filters recordings by service-type. Valid values are calling and customerAssist.
format (str) – Recording’s file format. If specified, the API filters recordings by format. Valid values are MP3.
owner_id (str) – Webex user Id to fetch recordings for a particular user.
owner_email (str) – Webex email address to fetch recordings for a particular user.
owner_type (RecordingOwnerType) – Recording based on type of user.
storage_region (RecordingStorageRegion) – Recording stored in certain Webex locations.
location_id (str) – Fetch recordings for users in a particular Webex Calling location (as configured in Control Hub).
topic (str) – Recording’s topic. If specified, the API filters recordings by topic in a case-insensitive manner.
timezone (str) – e.g. UTC
- Returns:
Generator yielding
ConvergedRecordinginstances
- list(from_: str | datetime = None, to_: str | datetime = None, status: RecordingStatus = None, service_type: RecordingServiceType = None, format_: str = None, owner_id: str = None, owner_email: str = None, owner_type: RecordingOwnerType = None, storage_region: RecordingStorageRegion = None, location_id: str = None, topic: str = None, timezone: str = None, **params) Generator[ConvergedRecording, None, None][source]
List Recordings
List recordings. You can specify a date range, and the maximum number of recordings to return.
The list returned is sorted in descending order by the date and time that the recordings were created.
Long result sets are split into pages.
List recordings requires the spark:recordings_read scope.
- Parameters:
from (Union[str, datetime]) –
Starting date and time (inclusive) for recordings to return, in any ISO 8601 compliant format. from cannot be after to. The interval between from and to must be within 30 days.
to (Union[str, datetime]) –
Ending date and time (exclusive) for List recordings to return, in any ISO 8601 compliant format. to cannot be before from. The interval between from and to must be within 30 days.
status (RecordingStatus) – Recording’s status. If not specified or available, retrieves recordings that are available. Otherwise, if specified as deleted, retrieves recordings that have been moved into the recycle bin.
service_type (RecordingServiceType) – Recording’s service-type. If specified, the API filters recordings by service-type. Valid values are calling and customerAssist.
format (RecordingObjectFormat) – Recording’s file format. If specified, the API filters recordings by format. Valid values are MP3.
owner_id (str) – Webex user Id to fetch recordings for a particular user.
owner_email (str) – Webex email address to fetch recordings for a particular user.
owner_type (RecordingOwnerType) – Recording based on type of user.
storage_region (RecordingStorageRegion) – Recording stored in certain Webex locations.
location_id (str) – Fetch recordings for users in a particular Webex Calling location (as configured in Control Hub).
topic (str) – Recording’s topic. If specified, the API filters recordings by topic in a case-insensitive manner.
timezone (str) – e.g. UTC
- Returns:
Generator yielding
ConvergedRecordinginstances
- purge_recordings_from_recycle_bin(purge_all: bool = None, owner_email: str = None, recording_ids: list[str] = None)[source]
Purge Recordings from Recycle Bin
Purge recordings from the recycle bin with recording IDs or purge all the recordings that are in the recycle bin. A recording once purged cannot be restored.
Only the following two entities can use this API
Administrator: A user or an application with the scope spark-admin:recordings_write.
User: An authenticated user who does not have the scope spark-admin:recordings_write but has spark:recordings_write.
As an administrator, you can purge a list of recordings or all recordings of a particular user within the org you manage from the recycle bin.
As a user, you can purge a list of your own recordings or all your recordings from the recycle bin.
If purgeAll is true:
recordingIds should be empty.
If the caller of this API is an administrator, ownerEmail should not be empty and all recordings owned the ownerEmail will be purged from the recycle bin.
If the caller of this API is a user, ownerEmail should be empty and all recordings owned by the caller will be purged from the recycle bin.
If purgeAll is false:
ownerEmail should be empty.
recordingIds should not be empty and its maximum size is 100.
- Parameters:
purge_all (bool) – If not specified or false, purges the recordings specified by recordingIds from the recycle bin. If true, purges all recordings owned by the caller in case of user, and all recordings owned by ownerEmail in case of administrator from the recycle bin.
owner_email (str) – Email address for the recording owner. This parameter is only used if purgeAll is set to true and the user or application calling the API has the required administrator scope spark-admin:recordings_write. The administrator may specify the email of a user from an org they manage and the API will purge all the recordings of that user from the recycle bin.
recording_ids (list[str]) – Recording IDs for purging recordings from the recycle bin in batch.
- Return type:
None
- reassign(reassign_owner_email: str, owner_email: str = None, recording_ids: list[str] = None)[source]
Reassign Recordings
Reassigns recordings to a new user. As an administrator, you can reassign a list of recordings or all recordings of a particular user to a new user.
The recordings can belong to an org user, a virtual line, or a workspace, but the destination user should only be a valid org user.
If only the ‘ownerEmail’ is provided, it indicates that all recordings owned by the “ownerEmail” will be reassigned.
If only the ‘recordingIds’ are provided, it indicates that these ‘recordingIds’ will be reassigned.
If both the ‘ownerEmail’ and ‘recordingIds’ are provided, only the recordingIds belonging to the provided ‘ownerEmail’ will be reassigned.
The spark-admin:recordings_write scope is required to reassign recordings.
- Parameters:
reassign_owner_email (str) – New owner of the recordings.
owner_email (str) – Recording owner email. Can be a user, a virtual line, or a workspace.
recording_ids (list[str]) – List of recording identifiers to be reassigned.
- Return type:
None
- restore_recordings_from_recycle_bin(restore_all: bool = None, owner_email: str = None, recording_ids: list[str] = None)[source]
Restore Recordings from Recycle Bin
Restore recordings from the recycle bin with recording IDs or restore all the recordings that are in the recycle bin.
Only the following two entities can use this API
Administrator: A user or an application with the scope spark-admin:recordings_write.
User: An authenticated user who does not have the scope spark-admin:recordings_write but has spark:recordings_write.
As an administrator, you can restore a list of recordings or all recordings of a particular user within the org you manage from the recycle bin.
As a user, you can restore a list of your own recordings or all your recordings from the recycle bin.
If restoreAll is true:
recordingIds should be empty.
If the caller of this API is an administrator, ownerEmail should not be empty and all recordings owned by the ownerEmail will be restored from the recycle bin.
If the caller of this API is a user, ownerEmail should be empty and all recordings owned by the caller will be restored from the recycle bin.
If restoreAll is false:
ownerEmail should be empty.
recordingIds should not be empty and its maximum size is 100.
- Parameters:
restore_all (bool) – If not specified or false, restores the recordings specified by recordingIds from the recycle bin. If true, restores all recordings owned by the caller in case of user, and all recordings owned by ownerEmail in case of administrator from the recycle bin.
owner_email (str) – Email address for the recording owner. This parameter is only used if restoreAll is set to true and the user or application calling the API has the required administrator scope spark-admin:recordings_write. The administrator may specify the email of a user from an org they manage and the API will restore all the recordings of that user from the recycle bin.
recording_ids (list[str]) – Recording IDs for restoring recordings from the recycle bin in batch.
- Return type:
None
- move_recordings_into_the_recycle_bin(trash_all: bool = None, owner_email: str = None, recording_ids: list[str] = None)[source]
Move Recordings into the Recycle Bin
Move recordings into the recycle bin with recording IDs or move all the recordings to the recycle bin.
Only the following two entities can use this API
Administrator: A user or an application with the scope spark-admin:recordings_write.
User: An authenticated user who does not have the scope spark-admin:recordings_write but has spark:recordings_write.
As an administrator, you can move a list of recordings or all recordings of a particular user within the org you manage to the recycle bin.
As a user, you can move a list of your own recordings or all your recordings to the recycle bin.
Recordings in the recycle bin can be recovered by Restore Recordings from Recycle Bin API. If you’d like to empty recordings from the recycle bin, you can use Purge Recordings from Recycle Bin API to purge all or some of them.
If trashAll is true:
recordingIds should be empty.
If the caller of this API is an administrator, ownerEmail should not be empty and all recordings owned by the ownerEmail will be moved to the recycle bin.
If the caller of this API is a user, ownerEmail should be empty and all recordings owned by the caller will be moved to the recycle bin.
If trashAll is false:
ownerEmail should be empty.
recordingIds should not be empty and its maximum size is 100.
- Parameters:
trash_all (bool) – If not specified or false, moves the recordings specified by recordingIds to the recycle bin. If true, moves all recordings owned by the caller in case of user, and all recordings owned by ownerEmail in case of administrator to the recycle bin.
owner_email (str) – Email address for the recording owner. This parameter is only used if trashAll is set to true and the user or application calling the API has the required administrator scope spark-admin:recordings_write. The administrator may specify the email of a user from an org they manage and the API will move all the recordings of that user into the recycle bin.
recording_ids (list[str]) – Recording IDs for moving recordings to the recycle bin in batch.
- Return type:
None
- delete(recording_id: str, reason: str = None, comment: str = None)[source]
Delete a Recording
Removes a recording with a specified recording ID. The deleted recording cannot be recovered.
If a Compliance Officer deletes another user’s recording, the recording will be inaccessible to regular users (host, attendees and shared), and to Compliance officer also. This action purges the recordings from Webex.
Delete a Recording requires the spark-compliance:recordings_write scope.
- Parameters:
recording_id (str) – A unique identifier for the recording.
reason (str) – Reason for deleting a recording. Only required when a Compliance Officer is operating on another user’s recording.
comment (str) – Compliance Officer’s explanation for deleting a recording. The comment can be a maximum of 255 characters long.
- Return type:
None
- details(recording_id: str) ConvergedRecordingWithDirectDownloadLinks[source]
Get Recording Details
Retrieves details for a recording with a specified recording ID.
Only recordings of owner with the authenticated user may be retrieved.
Get Recording Details requires the spark-compliance:recordings_read scope for compliance officer, spark-admin:recordings_read scope for admin and spark:recordings_read scope for user.
- Parameters:
recording_id (str) – A unique identifier for the recording.
- Return type:
- metadata(recording_id: str, show_all_types: bool = None) ConvergedRecordingMeta[source]
Get Recording metadata
Retrieves metadata details for a recording with a specified recording ID. The recording must be owned by the authenticated user.
For information on the metadata fields, refer to Metadata Guide
Get Recording metadata requires the spark-compliance:recordings_read scope for compliance officer, spark-admin:recordings_read for admin and spark:recordings_read for user.
- Parameters:
recording_id (str) – A unique identifier for the recording.
show_all_types (bool) –
If showAllTypes is true, all attributes will be shown. If it’s false or not specified, the following attributes of the metadata will be hidden.
serviceData.callActivity.mediaStreams
serviceData.callActivity.participants
serviceData.callActivity.redirectInfo
serviceData.callActivity.redirectedCall
- Return type:
None
- base = ''
- class wxc_sdk.converged_recordings.RecordingStorageRegion(*values)[source]
Bases:
str,SafeEnumAn enumeration.
- us = 'US'
- sg = 'SG'
- gb = 'GB'
- jp = 'JP'
- de = 'DE'
- au = 'AU'
- in_ = 'IN'
- ca = 'CA'
- class wxc_sdk.converged_recordings.ConvergedRecording(*, id: str | None = None, topic: str | None = None, createTime: datetime | None = None, timeRecorded: datetime | None = None, format: RecordingFormat | None = None, serviceType: str | None = None, durationSeconds: int | None = None, sizeBytes: int | None = None, status: RecordingStatus | None = None, ownerId: str | None = None, ownerEmail: str | None = None, ownerType: RecordingOwnerType | None = None, storageRegion: str | None = None, serviceData: RecordingServiceData | None = None, **extra_data: Any)[source]
Bases:
ApiModel- id: str | None
A unique identifier for the recording.
- topic: str | None
The recording’s topic.
- create_time: datetime | None
The date and time recording was created in ISO 8601 compliant format. Please note that it’s not the time the record button was clicked in meeting but the time the recording file was generated offline.
- time_recorded: datetime | None
The date and time recording started in ISO 8601 compliant format. It indicates when the record button was clicked in the meeting.
- format_: RecordingFormat | None
- service_type: str | None
- duration_seconds: int | None
The duration of the recording, in seconds.
- size_bytes: int | None
The size of the recording file, in bytes.
- status: RecordingStatus | None
- owner_id: str | None
Webex UUID for recording owner/host.
- owner_email: str | None
Webex email for recording owner/host.
- owner_type: RecordingOwnerType | None
- storage_region: str | None
Storage location for recording within Webex datacenters.
- service_data: RecordingServiceData | None
Fields relevant to each service Type.
- class wxc_sdk.converged_recordings.RecordingOwnerType(*values)[source]
Bases:
str,SafeEnumAn enumeration.
- user = 'user'
Recording belongs to a user.
- place = 'place'
Recording belongs to a workspace device.
- virtual_line = 'virtualLine'
Recording belongs to a virtual line.
- call_queue = 'callQueue'
Recording belongs to a customer assist call queue
- class wxc_sdk.converged_recordings.RecordingServiceData(*, locationId: str | None = None, callSessionId: str | None = None, callRecordingId: str | None = None, personality: str | None = None, callingParty: RecordingParty | None = None, calledParty: RecordingParty | None = None, callId: str | None = None, sipCallId: str | None = None, session: RecordingSession | None = None, recordingType: str | None = None, recordingActions: list[RecordingAction] | None = None, callActivity: list[CallActivity] | None = None, managedBy: RecordingParty | None = None, connectedParty: RecordingParty | None = None, **extra_data: Any)[source]
Bases:
ApiModel- location_id: str | None
Webex calling location for recording user.
- call_session_id: str | None
Call ID for which recording was done.
- call_recording_id: str | None
- personality: str | None
- calling_party: RecordingParty | None
- called_party: RecordingParty | None
- call_id: str | None
- sip_call_id: str | None
- session: RecordingSession | None
- recording_type: str | None
- recording_actions: list[RecordingAction] | None
- call_activity: list[CallActivity] | None
- managed_by: RecordingParty | None
- connected_party: RecordingParty | None
- class wxc_sdk.converged_recordings.ConvergedRecordingWithDirectDownloadLinks(*, id: str | None = None, topic: str | None = None, createTime: datetime | None = None, timeRecorded: datetime | None = None, format: str | None = None, serviceType: str | None = None, durationSeconds: int | None = None, sizeBytes: int | None = None, temporaryDirectDownloadLinks: TemporaryDirectDownloadLink | None = None, status: RecordingStatus | None = None, ownerId: str | None = None, ownerEmail: str | None = None, ownerType: RecordingOwnerType | None = None, storageRegion: str | None = None, serviceData: RecordingServiceData | None = None, **extra_data: Any)[source]
Bases:
ApiModel- id: str | None
A unique identifier for recording.
- topic: str | None
The recording’s topic.
- create_time: datetime | None
The date and time recording was created in ISO 8601 compliant format. Please note that it’s not the time the record button was clicked in meeting but the time the recording file was generated offline.
- time_recorded: datetime | None
The date and time recording started in ISO 8601 compliant format. It indicates when the record button was clicked in the meeting.
- format_: str | None
- service_type: str | None
- duration_seconds: int | None
The duration of the recording in seconds.
- size_bytes: int | None
The size of the recording file in bytes.
- temporary_direct_download_links: TemporaryDirectDownloadLink | None
The download links for the MP3 audio of the recordings without rendering an HTML page in a browser or an HTTP redirect. This attribute is available only for authorized users or a Compliance Officer. This attribute is not available if the user is an admin with scope spark-admin:recordings_read or if Prevent Downloading has been turned on for the recording being requested.
- status: RecordingStatus | None
- owner_id: str | None
Webex UUID for recording owner/host.
- owner_email: str | None
Webex email for recording owner/host.
- owner_type: RecordingOwnerType | None
- storage_region: str | None
Storage location for recording within Webex datacenters.
- service_data: RecordingServiceData | None
Fields relevant to each service Type.
- class wxc_sdk.converged_recordings.ConvergedRecordingMeta(*, id: str | None = None, orgId: str | None = None, ownerId: str | None = None, ownerType: str | None = None, ownerName: str | None = None, ownerEmail: str | None = None, storageRegion: RecordingStorageRegion | None = None, serviceType: str | None = None, version: str | None = None, serviceData: RecordingServiceData | None = None, **extra_data: Any)[source]
Bases:
ApiModel- id: str | None
- org_id: str | None
- owner_id: str | None
- owner_type: str | None
- owner_name: str | None
- owner_email: str | None
- storage_region: RecordingStorageRegion | None
- service_type: str | None
- version: str | None
- service_data: RecordingServiceData | None
- class wxc_sdk.converged_recordings.TemporaryDirectDownloadLink(*, audioDownloadLink: str | None = None, transcriptDownloadLink: str | None = None, expiration: str | None = None, **extra_data: Any)[source]
Bases:
ApiModel- audio_download_link: str | None
The download link for recording audio file without HTML page rendering in browser or HTTP redirect. Expires 3 hours after the API request.
- transcript_download_link: str | None
The download link for recording transcript file without HTML page rendering in browser or HTTP redirect. Expires 3 hours after the API request.
- class wxc_sdk.converged_recordings.RecordingSession(*, startTime: datetime | None = None, **extra_data: Any)[source]
Bases:
ApiModel- start_time: datetime | None
- class wxc_sdk.converged_recordings.RecordingParty(*, actor: RecordingPartyActor | None, name: str | None = None, number: str | None = None, **extra_data: Any)[source]
Bases:
ApiModel- actor: RecordingPartyActor | None
- name: str | None
- number: str | None
- class wxc_sdk.converged_recordings.RecordingPartyActor(*, id: str | None = None, type: str | None = None, email: str | None = None, **extra_data: Any)[source]
Bases:
ApiModel- id: str | None
- type: str | None
- email: str | None
- class wxc_sdk.converged_recordings.RecordingAction(*, action: str | None = None, time: str | None = None, **extra_data: Any)[source]
Bases:
ApiModel- action: str | None
- time: str | None
- class wxc_sdk.converged_recordings.CallActivityStream(*, streamId: str | None = None, mode: str | None = None, mLineIndex: str | None = None, **extra_data: Any)[source]
Bases:
ApiModel- stream_id: str | None
- mode: str | None
- m_line_index: str | None
- class wxc_sdk.converged_recordings.CallActivityParticipant(*, actor: RecordingPartyActor | None = None, aor: str | None = None, send: str | None = None, **extra_data: Any)[source]
Bases:
ApiModel- actor: RecordingPartyActor | None
- aor: str | None
- send: str | None
- class wxc_sdk.converged_recordings.CallActivityAnnouncement(*, announcementFilename: str | None = None, announcementTimestamp: str | None = None, announcementParticipants: list[str] | None = None, announcementType: str | None = None, **extra_data: Any)[source]
Bases:
ApiModel- announcement_filename: str | None
- announcement_timestamp: str | None
- announcement_participants: list[str] | None
- announcement_type: str | None
- class wxc_sdk.converged_recordings.CallActivity(*, timeStamp: str | None = None, mediaStreams: list[CallActivityStream] | None = None, participants: list[CallActivityParticipant] | None = None, announcementData: CallActivityAnnouncement | None = None, **extra_data: Any)[source]
Bases:
ApiModel- time_stamp: str | None
- media_streams: list[CallActivityStream] | None
- participants: list[CallActivityParticipant] | None
- announcement_data: CallActivityAnnouncement | None