/* eslint-disable */ /** * This file was automatically generated by json-schema-to-typescript. * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file, * and run json-schema-to-typescript to regenerate this file. */ /** * Type of dialog window displayed to user */ export type DialogType = "PREFER_WEB_JOIN_PROMPT" | "EULA" | "INSTALLER_SLOW_CONNECTION_PROMPT"; export interface Event { eventId?: string; version?: number; /** * Information about the sender of the event */ origin: { name: | "addin" | "antares" | "appapi" | "beech" | "breakout" | "calendar" | "cb" | "cca" | "ccc" | "cloudproxy" | "crc" | "edonus" | "endpoint" | "givr" | "hecate" | "hedge" | "hesiod" | "homer" | "idbroker" | "superhomer" | "l2sip" | "linus" | "locus" | "mbs" | "mcc" | "mcs" | "mercury" | "mes" | "mjs" | "mmp" | "mrs" | "mygdon" | "ngpage" | "ngservice" | "oauth" | "orpheus" | "page" | "poros" | "publicapi" | "rhesos" | "sbs" | "terminus" | "tpgw" | "ucc" | "wdm" | "webexivr" | "meetingcontainer"; userAgent: string; buildType?: "debug" | "test" | "prod" | "tap" | "analyzer-test"; /** * Will be used as a label for client software status */ upgradeChannel?: string; /** * (e.g. slowchannel, pinned release or an UUID). If the value is not known use NULL, or if its default channel 'system' */ upgradeSource?: string; /** * Identifier for a particular instance of a service, such as a particular linus */ instanceId?: string; networkType: "wifi" | "ethernet" | "cellular" | "unknown"; localIP?: string; usingProxy?: boolean; mediaEngineSoftwareVersion?: string; environment?: string; newEnvironment?: string; /** * Details of client environment */ clientInfo?: { os?: | "android" | "android-x64" | "android-arm64" | "chrome" | "ios" | "linux" | "mac" | "other" | "uwp-arm64" | "windows"; osVersion?: string; localIP?: string; gatewayIP?: string; macAddress?: string; localNetworkPrefix?: string; publicNetworkPrefix?: string; browserLaunchMethod?: | "activex" | "npapi" | "extension" | "cwsapi" | "java" | "tfs" | "webacd" | "url-handler" | "thinclient" | "switch-to-web" | "switch-to-native"; cwsStatus?: "starting-converged-mtg" | "webexapp-launched" | "webex-launcher-launched"; cwsVersion?: string; clientLaunchMethod?: | "url-handler" | "universal-link" | "voice-command" | "notification" | "manual" | "teams-cross-launch" | "mc-cross-launch" | "cws" | "installer" | "installer-launcher" | "launcher" | "cws-launcher"; urlProtocolLaunchMethod?: "auto" | "manual" | "extension-fallback"; browser?: string; browserVersion?: string; connectionDownlinkMbps?: number; connectionEffectiveType?: string; connectionThroughputMbps?: number; isSupportedBrowserFamily?: boolean; isOutdatedBrowserVersion?: boolean; /** * this defines the major client types */ clientType?: | "MEETING_CENTER" | "EVENT_CENTER" | "TRAINING_CENTER" | "TEAMS_CLIENT" | "TEAMS_DEVICE" | "TEAMS_SHARE" | "SIP" | "RECORDING" | "CLOUD_AWARE_SIP" | "TEAMS_WXC_CLIENT" | "WXC_CLIENT" | "WXC_DEVICE" | "WEBEX_JS_SDK" | "VOICEA_CLIENT" | "CISCO_SIP_GW" | "WEBEX_SDK" | "CPAAS_THIRD_PARTY_SDK" | "WXC_THIRD_PARTY" | "WXCC" | "TEAMS_PHONE" | "WEBEX_RELAY"; /** * this defines the sub types of clients */ subClientType?: | "AUTOMOTIVE_APP" | "BROWSER_EXTENSION" | "DESKTOP_APP" | "DESKTOP_APP_VDI" | "DEVICE_CURRENT" | "DEVICE_LEGACY_2020" | "HOLOGRAM_HEADSET_APP" | "HVDI_APP" | "MIXED" | "MOBILE_APP" | "MOBILE_NETWORK" | "PAGE" | "TEAMS_DEVICE" | "VDI_APP" | "WEB_APP" | "PHONE_NOVUM" | "PHONE_ESPRESSO" | "PHONE_BUMBLEBEE" | "SIP" | "SIP_PSTN"; /** * this defines the major client types for scheduling */ schedulingClientType?: | "GOOGLE_ADDON" | "GOOGLE_NOTIFICATION_CALENDAR" | "MSFT_NOTIFICATION_ADDIN" | "MSFT_NOTIFICATION_CALENDAR" | "OUTLOOK_ADDIN" | "PT" | "PUBLIC_API" | "TEAMS_CLIENT" | "UNIFIED_PAGE" | "WEBEX_PAGE"; clientVersion?: string; /** * this defines the client version status. Determined by call analyzer based on client major version */ clientVersionStatus?: "CURRENT" | "LEGACY" | "UNSUPPORTED"; localClientVersion?: string; launcherVersion?: string; installerVersion?: string; installerMajorVersion?: number; installerMinorVersion?: number; installerRevision?: number; modelNumber?: string; joinFirstUpdateLater?: "ep-enabled" | "sp-enabled" | "not-enabled"; standbyUsed?: boolean; prefetchDocShowUsed?: boolean; fastJoinUsed?: boolean; clientDownloadSize?: number; clientDownloadFileCount?: number; nodeId?: number; machineInfo?: string; parentAppName?: string; parentAppInPermitList?: boolean; meetingSiteType?: "train" | "webex-11" | "orion"; CDNEnabled?: boolean; clientMajorVersion?: string; majorVersion?: number; minorVersion?: number; revision?: number; isValidClientVersion?: boolean; /** * This object defines the fields related to the CPU being used by the emitter of the event */ cpuInfo?: { description: string; numberOfCores: number; architecture: | "intel32" | "intel64" | "amd32" | "amd64" | "arm32" | "arm64" | "armv9" | "armv8" | "armv7" | "armv6" | "x86_64" | "x86_32" | "unknown"; staticPerformance?: string; clockSpeedGigaHertz?: number; additionalProperties?: never; }; shareType?: | "cb-normal-share" | "ce-airplay-share" | "ce-direct-share" | "ce-gui-loopback-share" | "ce-input-source-share" | "ce-input-source-share-hdmi" | "ce-input-source-share-usbc" | "ce-jpg-share" | "ce-miracast-share" | "mcs-normal-share" | "mcs-normal-audio-share" | "mcs-hfps-share" | "mcs-hfps-audio-share"; /** * Video display mode currently in use */ videoDisplayMode?: "grid-view" | "active-speaker-view"; videoLayoutType?: | "stack" | "stackWithShare" | "sideBySide" | "sideBySideWithShare" | "grid" | "floatingActive" | "floatingThumbnail" | "floatingGrid" | "overlay" | "focus" | "prominent" | "focusWithShare" | "prominentWithShare" | "equal" | "equalWithShare" | "largeGallery" | "auto" | "autoWithShare"; appliedLayout?: | "stack" | "stackWithShare" | "sideBySide" | "sideBySideWithShare" | "grid" | "floatingActive" | "floatingThumbnail" | "floatingGrid" | "overlay" | "focus" | "prominent" | "focusWithShare" | "prominentWithShare" | "equal" | "equalWithShare" | "largeGallery" | "auto" | "autoWithShare"; /** * this defines the video render type of meetings */ videoRenderType?: "wme" | "client_d3d" | "client_gdi"; vdiInfo?: {}; is64BitsClient?: boolean; webexAppVersion?: string; /** * this defines launch 32 bits client reason */ launch32BitsReason?: | "forcewin32" | "disablewin64" | "platform_win32" | "platform_arm" | "platform_unknown" | "version_below_41.11"; inMeetingUpdate?: boolean; mtaVersion?: string; isWarholOpening?: boolean; vendorId?: string; staticPerformanceLevel?: string; staticPerformanceScore?: number; preInstalledTime?: string; preInstalledType?: "app" | "installer" | "launcher"; preInstalledVersion?: string; proxyInfo?: {}; additionalProperties?: never; }; /** * Details of the Web Installer package download, reported under origin.installerInfo */ installerInfo?: { packageSuffix?: string; packageArch?: string; launchId?: string; packageCount?: number; totalSize?: number; additionalProperties?: never; }; /** * Management mode applied to the Webex app. */ webexAppManagementType?: "UNMANAGED" | "MDM_ONLY" | "MAM_ONLY" | "MDM_AND_MAM"; emmVendorId?: string; isHybridMedia?: boolean; originData?: {}; serviceVersion?: string; additionalProperties?: never; }; originTime: { triggered: string; sent: string; additionalProperties?: never; }; ingestTime?: string; senderIP?: string; senderCountryCode?: string; isTest?: boolean; event: | { canProceed?: boolean; state?: string; mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard" | "gamestate"; /** * Details associated with a share floor type */ floorType?: { name: "DEFAULT" | "EMBEDDED_APP" | "OTHER"; priority?: {}; additionalProperties?: never; }; csi?: number; /** * media capability for both transmit and receive */ mediaCapabilities?: { /** * explicit indication of media capabilities. true=supported */ tx: { audio: boolean; video: boolean; share: boolean; share_audio: boolean; whiteboard: boolean; gamestate?: boolean; additionalProperties?: never; }; /** * explicit indication of media capabilities. true=supported */ rx: { audio: boolean; video: boolean; share: boolean; share_audio: boolean; whiteboard: boolean; gamestate?: boolean; additionalProperties?: never; }; additionalProperties?: never; }; mediaLines?: { clusterName?: string; connectionType?: "none" | "direct" | "proxy"; direction: "sendrecv" | "sendonly" | "recvonly" | "inactive"; errorCode?: number; extension?: {}; failureDescription?: string; failureReason?: "network" | "transport" | "rejected" | "timeout" | "notstarted" | "succeeded"; iceMangled?: boolean; localIP?: string; localNetworkPrefix?: string; localPort?: number; mediaLineData?: {}; mediaType: "audio" | "video" | "share" | "share_audio" | "whiteboard" | "gamestate" | "all"; protocol: "udp" | "tcp" | "xtls" | "unknown"; recvRespTime?: string; remoteIP?: string; remotePort?: number; sentReqTime?: string; status?: "succeeded" | "in-progress" | "failed"; tlsDomain?: string; transactionId?: string; ufrag?: string; additionalProperties?: never; }[]; /** * allows client to specify media preferences */ clientMediaPreferences?: { preferTranscoding: boolean; additionalProperties?: never; }; pstnAudioType?: "dial-in" | "dial-out"; homeDataCenter?: string; success?: boolean; isTranscoded?: boolean; isGatewayed?: boolean; isComposed?: boolean; /** * determine how the events are processed as well as how the reports are aggregated and sliced */ registrationMode?: "SIP" | "Cloud" | "CloudAware"; /** * protocols used to help determine how the events are processed as well as how the reports are aggregated and sliced */ protocol?: "SIP" | "H323" | "H323_IP" | "Locus" | "WebRTC"; /** * The underlying service provider of the call. */ meetingPlatform?: "MsTeams" | "GoogleMeet" | "Zoom" | "Webex"; labels?: string[]; labelsStr?: string; webexServiceType?: "MC" | "EC" | "SC" | "TC" | "AA" | "RA" | "NBR" | "WRF" | "HOL"; /** * this defines the sub service type */ webexSubServiceType?: | "PMR" | "Event" | "Training" | "ScheduleMeeting" | "ScheduledMeeting" | "Webcast" | "Webinar" | "LargeScaleWebinar" | "others"; ivrDialogType?: | "MEDIA_ON_HOLD" | "ANNOUNCEMENT" | "TONE" | "COLLECT_PIN" | "PROMPT" | "MEDIA_SERVICE_AGENT" | "COLLECT"; ivrDialogResult?: | "SUCCESS" | "FAILURE" | "HOST_PIN_MATCH" | "GUEST_PIN_MATCH" | "PANELIST_PIN_MATCH" | "NO_MATCH" | "INVALID_PIN"; callType?: | "VIDEO_DIALIN" | "VIDEO_DIALOUT" | "CASCADE" | "HYBRID_CASCADE" | "PSTN_SIP" | "PSTN_DIALIN" | "PSTN_DIALOUT" | "PSTN_ONLY_DIALIN" | "PSTN_ONLY_DIALOUT" | "AUDIO_DIALIN" | "AUDIO_ONLY_DIALIN" | "H323" | "H323_IP" | "SIP_ENTERPRISE" | "SIP_MOBILE" | "SIP_NATIONAL" | "SIP_INTERNATIONAL" | "SIP_EMERGENCY" | "SIP_OPERATOR" | "SIP_SHORTCODE" | "SIP_TOLLFREE" | "SIP_PREMIUM" | "SIP_URI" | "SIP_INBOUND" | "UNKNOWN" | "ZTM" | "SIP_MEETING" | "SIP_DIALOUT" | "SIP_ONLY_DIALOUT"; eventData?: {}; derivedSipClientType?: | "SIP_CE_SINGLE_SCREEN" | "SIP_CE_MULTI_SCREEN" | "SIP_JABBER" | "SIP_TIP_SINGLE_SCREEN" | "SIP_TIP_THREE_SCREEN" | "SIP_PSTN" | "SIP_OTHER" | "SIP_WEBEX_CASCADE" | "SIP_NONE"; /** * this defines the major client types */ derivedClientType?: | "MEETING_CENTER" | "EVENT_CENTER" | "TRAINING_CENTER" | "TEAMS_CLIENT" | "TEAMS_DEVICE" | "TEAMS_SHARE" | "SIP" | "RECORDING" | "CLOUD_AWARE_SIP" | "TEAMS_WXC_CLIENT" | "WXC_CLIENT" | "WXC_DEVICE" | "WEBEX_JS_SDK" | "VOICEA_CLIENT" | "CISCO_SIP_GW" | "WEBEX_SDK" | "CPAAS_THIRD_PARTY_SDK" | "WXC_THIRD_PARTY" | "WXCC" | "TEAMS_PHONE" | "WEBEX_RELAY"; /** * this defines the sub types of clients */ derivedSubClientType?: | "AUTOMOTIVE_APP" | "BROWSER_EXTENSION" | "DESKTOP_APP" | "DESKTOP_APP_VDI" | "DEVICE_CURRENT" | "DEVICE_LEGACY_2020" | "HOLOGRAM_HEADSET_APP" | "HVDI_APP" | "MIXED" | "MOBILE_APP" | "MOBILE_NETWORK" | "PAGE" | "TEAMS_DEVICE" | "VDI_APP" | "WEB_APP" | "PHONE_NOVUM" | "PHONE_ESPRESSO" | "PHONE_BUMBLEBEE" | "SIP" | "SIP_PSTN"; meetingRole?: "PANELIST" | "ATTENDEE"; serverRole?: | "CONFERENCE" | "TRANSCODER" | "WHITEBOARD_INJECTOR" | "MS_TEAMS_CONFERENCE" | "RECORDING" | "GATEWAY" | "GATEWAY_CLIENT_SIDE" | "UNKNOWN" | "HOLOGRAM_RENDER" | "EDGE"; reconnect?: boolean; retryCount?: number; meetSimple?: boolean; /** * represents media quality status report such as no media or drop out */ mediaStatus?: { mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard"; mediaSuccess?: boolean; shareType?: | "cb-normal-share" | "ce-airplay-share" | "ce-direct-share" | "ce-gui-loopback-share" | "ce-input-source-share" | "ce-input-source-share-hdmi" | "ce-input-source-share-usbc" | "ce-jpg-share" | "ce-miracast-share" | "mcs-normal-share" | "mcs-normal-audio-share" | "mcs-hfps-share" | "mcs-hfps-audio-share"; isTransmitter?: boolean; audioJoinType?: | "phone-call-in" | "phone-call-back" | "voip" | "device-call-back" | "never-join-audio" | "tried-but-never-join"; /** * indicates transport type used */ transportType?: "UDP" | "TCP" | "xTLS" | "TLS"; additionalData?: {}; /** * information object for the peripheral */ mediaDeviceInfo?: { name: "camera" | "microphone" | "speaker"; information?: string; driver?: string; errorCode?: string; subErrorCode?: string; captureFrameSize?: number; captureFps?: number; captureFrameworkType?: number; captureRawType?: number; deviceCapabilitiesTime?: number; connectionType?: {}; bluetoothMode?: {}; openDeviceCostTimeMilliSecond?: number; startCaptureCostTimeMilliSecond?: number; txSampleRate?: number; rxSampleRate?: number; isAAudioLowLatency?: number; isStartNDKFailed?: number; startPlaybackCostTimeMilliSecond?: number; changeCount?: number; /** * indicates capture device's system volume, between -1 and 100, -1 means invalid */ captureSystemVolume?: number; /** * indicates playback device's system volume, between -1 and 100, -1 means invalid */ playbackSystemVolume?: number; started?: boolean; sysAudioSEStatus?: number; isVolumeControlAvailable?: boolean; rawStreamStatus?: number; status?: string; initCaptureFrameworkType?: "unknown" | "dshow" | "mf" | "mfPrefer"; cameraRetried?: boolean; captureCameraType?: | "unknown" | "builtIn" | "aggregate" | "virtual" | "pci" | "usb" | "fireWire" | "bluetooth" | "hdmi" | "displayPort" | "airPlay" | "avb" | "thunderbolt" | "lineLevel" | "external" | "continuityCaptureWired" | "continuityCaptureWireless" | "audioRemote" | "iphoneCamera" | "deskViewCamera" | "virtualCamera" | "builtInMinijack"; captureCameraFailNum?: number; videoCaptureEnumTime?: number; additionalProperties?: never; }; additionalProperties?: never; }; shareInstanceId?: string; ipVersion?: "IPv4" | "IPv6" | "Dual"; isTransmitter?: boolean; shareDuration?: number; stopReason?: string; shareStartReason?: string; hologramStreamId?: string; /** * represents all of the properities that could cause delay during media setup process. */ audioSetupDelay?: { floorReqSentReceived?: number; floorRespSentReceived?: number; mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard"; txReqFloorGranted?: number; txSessionCreateConfirm?: number; txApeEnrollConfirm?: number; txUIDelay?: number; txScreenCaptureDelay?: number; txScreenCaptureDelayReasonCode?: number; txShareStartOverallDelay?: number; floorGranted2tx1stPacketSendDelay?: number; rx1stPacket2RenderDelay?: number; rxGranted2RenderDelay?: number; rxFailFrameNumB4Success?: number; e2eFirstFrameDelay?: number; CBSessionRespToLocusFloorGrantDelay?: number; CBShareReceiveToServerShareTransmitDelay?: number; CBShareReceiveToTPGWFirstKeyFrameDelay?: number; /** * phrased HTTP timing */ floorRequestHttpTiming?: { connect?: number; dnsLookup?: number; sendRequest?: number; compressRequest?: number; receiveResponse?: number; extractJson?: number; verifyCert?: number; refreshToken?: number; additionalProperties?: never; }; TPGWFirstKeyFrameToServerShareTransmitDelay?: number; MCSSessionActivateToLocusFloorGrantDelay?: number; ServerShareInitiateToLocusFloorGrantDelay?: number; LocusFloorGrantToCBSessionStartDelay?: number; ServerShareReceiveToTPGWFirstKeyFrameDelay?: number; LocusFloorGrantToTPGWFloorGrantDelay?: number; LocusFloorGrantToReceiverNotificationDelay?: number; CBShareSessionRespDelay?: number; LocusShareFloorGrantRespDelay?: number; LocusFloorReqToRespDelay?: number; ServerShareFloorGrantRespDelay?: number; joinRespRxStart?: number; joinRespTxStart?: number; maxRemoteLossRate?: number; media2SignalDelay?: number; warholDownloadTime?: number; contentDownloadTime?: number; boardCreationTime?: number; totalBoardServiceRespDelay?: number; additionalProperties?: never; }; /** * represents all of the properities that could cause delay during media setup process. */ videoSetupDelay?: { floorReqSentReceived?: number; floorRespSentReceived?: number; mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard"; txReqFloorGranted?: number; txSessionCreateConfirm?: number; txApeEnrollConfirm?: number; txUIDelay?: number; txScreenCaptureDelay?: number; txScreenCaptureDelayReasonCode?: number; txShareStartOverallDelay?: number; floorGranted2tx1stPacketSendDelay?: number; rx1stPacket2RenderDelay?: number; rxGranted2RenderDelay?: number; rxFailFrameNumB4Success?: number; e2eFirstFrameDelay?: number; CBSessionRespToLocusFloorGrantDelay?: number; CBShareReceiveToServerShareTransmitDelay?: number; CBShareReceiveToTPGWFirstKeyFrameDelay?: number; /** * phrased HTTP timing */ floorRequestHttpTiming?: { connect?: number; dnsLookup?: number; sendRequest?: number; compressRequest?: number; receiveResponse?: number; extractJson?: number; verifyCert?: number; refreshToken?: number; additionalProperties?: never; }; TPGWFirstKeyFrameToServerShareTransmitDelay?: number; MCSSessionActivateToLocusFloorGrantDelay?: number; ServerShareInitiateToLocusFloorGrantDelay?: number; LocusFloorGrantToCBSessionStartDelay?: number; ServerShareReceiveToTPGWFirstKeyFrameDelay?: number; LocusFloorGrantToTPGWFloorGrantDelay?: number; LocusFloorGrantToReceiverNotificationDelay?: number; CBShareSessionRespDelay?: number; LocusShareFloorGrantRespDelay?: number; LocusFloorReqToRespDelay?: number; ServerShareFloorGrantRespDelay?: number; joinRespRxStart?: number; joinRespTxStart?: number; maxRemoteLossRate?: number; media2SignalDelay?: number; warholDownloadTime?: number; contentDownloadTime?: number; boardCreationTime?: number; totalBoardServiceRespDelay?: number; additionalProperties?: never; }; /** * represents all of the properities that could cause delay during media setup process. */ shareSetupDelay?: { floorReqSentReceived?: number; floorRespSentReceived?: number; mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard"; txReqFloorGranted?: number; txSessionCreateConfirm?: number; txApeEnrollConfirm?: number; txUIDelay?: number; txScreenCaptureDelay?: number; txScreenCaptureDelayReasonCode?: number; txShareStartOverallDelay?: number; floorGranted2tx1stPacketSendDelay?: number; rx1stPacket2RenderDelay?: number; rxGranted2RenderDelay?: number; rxFailFrameNumB4Success?: number; e2eFirstFrameDelay?: number; CBSessionRespToLocusFloorGrantDelay?: number; CBShareReceiveToServerShareTransmitDelay?: number; CBShareReceiveToTPGWFirstKeyFrameDelay?: number; /** * phrased HTTP timing */ floorRequestHttpTiming?: { connect?: number; dnsLookup?: number; sendRequest?: number; compressRequest?: number; receiveResponse?: number; extractJson?: number; verifyCert?: number; refreshToken?: number; additionalProperties?: never; }; TPGWFirstKeyFrameToServerShareTransmitDelay?: number; MCSSessionActivateToLocusFloorGrantDelay?: number; ServerShareInitiateToLocusFloorGrantDelay?: number; LocusFloorGrantToCBSessionStartDelay?: number; ServerShareReceiveToTPGWFirstKeyFrameDelay?: number; LocusFloorGrantToTPGWFloorGrantDelay?: number; LocusFloorGrantToReceiverNotificationDelay?: number; CBShareSessionRespDelay?: number; LocusShareFloorGrantRespDelay?: number; LocusFloorReqToRespDelay?: number; ServerShareFloorGrantRespDelay?: number; joinRespRxStart?: number; joinRespTxStart?: number; maxRemoteLossRate?: number; media2SignalDelay?: number; warholDownloadTime?: number; contentDownloadTime?: number; boardCreationTime?: number; totalBoardServiceRespDelay?: number; additionalProperties?: never; }; /** * represents all of the properities that could cause delay during media setup process. */ shareAudioSetupDelay?: { floorReqSentReceived?: number; floorRespSentReceived?: number; mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard"; txReqFloorGranted?: number; txSessionCreateConfirm?: number; txApeEnrollConfirm?: number; txUIDelay?: number; txScreenCaptureDelay?: number; txScreenCaptureDelayReasonCode?: number; txShareStartOverallDelay?: number; floorGranted2tx1stPacketSendDelay?: number; rx1stPacket2RenderDelay?: number; rxGranted2RenderDelay?: number; rxFailFrameNumB4Success?: number; e2eFirstFrameDelay?: number; CBSessionRespToLocusFloorGrantDelay?: number; CBShareReceiveToServerShareTransmitDelay?: number; CBShareReceiveToTPGWFirstKeyFrameDelay?: number; /** * phrased HTTP timing */ floorRequestHttpTiming?: { connect?: number; dnsLookup?: number; sendRequest?: number; compressRequest?: number; receiveResponse?: number; extractJson?: number; verifyCert?: number; refreshToken?: number; additionalProperties?: never; }; TPGWFirstKeyFrameToServerShareTransmitDelay?: number; MCSSessionActivateToLocusFloorGrantDelay?: number; ServerShareInitiateToLocusFloorGrantDelay?: number; LocusFloorGrantToCBSessionStartDelay?: number; ServerShareReceiveToTPGWFirstKeyFrameDelay?: number; LocusFloorGrantToTPGWFloorGrantDelay?: number; LocusFloorGrantToReceiverNotificationDelay?: number; CBShareSessionRespDelay?: number; LocusShareFloorGrantRespDelay?: number; LocusFloorReqToRespDelay?: number; ServerShareFloorGrantRespDelay?: number; joinRespRxStart?: number; joinRespTxStart?: number; maxRemoteLossRate?: number; media2SignalDelay?: number; warholDownloadTime?: number; contentDownloadTime?: number; boardCreationTime?: number; totalBoardServiceRespDelay?: number; additionalProperties?: never; }; /** * represents all of the properities that could cause delay during media setup process. */ whiteboardSetupDelay?: { floorReqSentReceived?: number; floorRespSentReceived?: number; mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard"; txReqFloorGranted?: number; txSessionCreateConfirm?: number; txApeEnrollConfirm?: number; txUIDelay?: number; txScreenCaptureDelay?: number; txScreenCaptureDelayReasonCode?: number; txShareStartOverallDelay?: number; floorGranted2tx1stPacketSendDelay?: number; rx1stPacket2RenderDelay?: number; rxGranted2RenderDelay?: number; rxFailFrameNumB4Success?: number; e2eFirstFrameDelay?: number; CBSessionRespToLocusFloorGrantDelay?: number; CBShareReceiveToServerShareTransmitDelay?: number; CBShareReceiveToTPGWFirstKeyFrameDelay?: number; /** * phrased HTTP timing */ floorRequestHttpTiming?: { connect?: number; dnsLookup?: number; sendRequest?: number; compressRequest?: number; receiveResponse?: number; extractJson?: number; verifyCert?: number; refreshToken?: number; additionalProperties?: never; }; TPGWFirstKeyFrameToServerShareTransmitDelay?: number; MCSSessionActivateToLocusFloorGrantDelay?: number; ServerShareInitiateToLocusFloorGrantDelay?: number; LocusFloorGrantToCBSessionStartDelay?: number; ServerShareReceiveToTPGWFirstKeyFrameDelay?: number; LocusFloorGrantToTPGWFloorGrantDelay?: number; LocusFloorGrantToReceiverNotificationDelay?: number; CBShareSessionRespDelay?: number; LocusShareFloorGrantRespDelay?: number; LocusFloorReqToRespDelay?: number; ServerShareFloorGrantRespDelay?: number; joinRespRxStart?: number; joinRespTxStart?: number; maxRemoteLossRate?: number; media2SignalDelay?: number; warholDownloadTime?: number; contentDownloadTime?: number; boardCreationTime?: number; totalBoardServiceRespDelay?: number; additionalProperties?: never; }; isFocus?: boolean; processingDelay?: number; shareResourceType?: | "APPLICATION_OR_WINDOW" | "CAMERA" | "DEFAULT" | "EMBEDDED_APP" | "FILE" | "MOBILE_FILE" | "MOBILE_SCREEN_MIRRORING" | "SCREEN"; shareResourceName?: string; shareType?: | "cb-normal-share" | "ce-airplay-share" | "ce-direct-share" | "ce-gui-loopback-share" | "ce-input-source-share" | "ce-input-source-share-hdmi" | "ce-input-source-share-usbc" | "ce-jpg-share" | "ce-miracast-share" | "mcs-normal-share" | "mcs-normal-audio-share" | "mcs-hfps-share" | "mcs-hfps-audio-share"; isShareBeingTakenOver?: boolean; floorBeneficiaryUpdated?: boolean; meetingJoinedTime?: string; /** * join phase of event */ meetingJoinPhase?: "pre-join" | "join" | "in-meeting"; meetingScheduledTime?: string; seconds2StartTime?: number; e2eeKeyEpoch?: number; e2eeDecompressRatio?: number; keyResponses?: { gotKeyTime?: number; useKeyTime?: number; cacheKeyTime?: number; additionalProperties?: never; }[]; e2eeVersion?: "E2EEV1" | "E2EEV2" | "E2EEV3" | "E2EEV4" | "E2EEV4_PLUS" | "E2EEV4_B" | "E2EEV5"; isZeroTrust?: boolean; /** * Version of SFrame in use. */ sframeVersion?: "SFRAMEV1" | "SFRAMEV2"; isConvergedArchitectureEnabled?: boolean; isCustomBrowser?: boolean; callingServiceType?: "CUCM" | "WEBEXCALLING" | "BROADWORKS" | "LOCUS" | "BROADCLOUDCARRIER"; supplementaryMediaSessionType?: "DirectShare"; isPaired?: boolean; inLobby?: boolean; isVIPMeeting?: boolean; webexAppEntrypoint?: string; firstParticipant?: boolean; isImmersiveShare?: boolean; /** * Request/Response Time for Internal Services / Clients */ registeredTimestamps?: { locusCreateConfluenceRequestTime?: string; locusCreateConfluenceResponseTime?: string; locusCreateVenueRequestTime?: string; locusCreateVenueResponseTime?: string; interstitialWindowLaunchedTime?: string; additionalProperties?: never; }; skipInterstitialWindow?: boolean; callDurationSecs?: number; connectionDurationSecs?: number; lobbyType?: string; callDirection?: "ORIGINATING" | "TERMINATING"; /** * Details associated with a breakout move */ breakout?: { moveType?: "between_breakout" | "to_breakout" | "to_main"; trigger?: "assignment_changed" | "client_initiated" | "session_ended" | "session_started"; startState?: "joined" | "lobby"; endState?: "joined" | "lobby"; additionalProperties?: never; }; /** * Latency values associated with breakout session */ breakoutLatency?: { clientBreakoutMoveReqJoinResp?: number; boBreakoutMoveProcessed?: number; boBreakoutMoveResp?: number; boLocusBreakoutMoveResp?: number; locusBreakoutMoveResp?: number; orpheusConfluenceMoveReqResp?: number; additionalProperties?: never; }; /** * two-way whiteboard related info */ whiteboard?: { action?: "open" | "create"; type?: "whiteboard" | "annotation"; capability?: "one_way" | "two_way"; granted?: "one_way" | "two_way"; additionalProperties?: never; }; /** * Pstn Carrier Infos */ pstnCarrierInfo?: { cic?: string; carrierName?: string; ucreDnsSrvs?: string[]; additionalProperties?: never; }; pstnAudioCallType?: "PSTN" | "CCA_E" | "CCA_SP" | "EDGE_AUDIO" | "CCA_S" | "VMN_AUDIO"; l2sipCallbackUrl?: string; ivrDialingStatusOriginator?: "L2SIP" | "CLOUD_PROXY" | "CARRIER" | "UNIDENTIFIED"; cic?: string; carrierName?: string; originator?: string; ucreDnsSrvs?: string[]; ivrServiceUcreAttempts?: number; antiFraudPolicyType?: string; antiFraudBlocked?: boolean; sipResponseCode?: | "100_Trying" | "183_Ringing" | "200_Ok" | "404_NotFound" | "407_ProxyAuthRequired" | "486_BusyHere" | "503_ServiceUnavailable" | "606_NotAcceptable"; /** * details of scheduling information */ schedulingInfo?: { /** * this defines calendar type for scheduling */ calendarType?: "exchange_online" | "exchange_onprem" | "google" | "other" | "webex"; /** * this defines meeting categories for scheduling */ meetingCategory?: "AdhocUSM" | "Instant" | "Scheduled" | "ScheduledPMR" | "ScheduledUSM" | "SpaceMeetingV1"; /** * this defines where the meeting was scheduled from */ scheduledFrom?: | "ADDIN_O365" | "ADDIN_ONPREM" | "ADHOC_USM" | "AT_WEBEX_GOOGLE" | "AT_WEBEX_MSFT" | "AT_MEET_GOOGLE" | "AT_MEET_MSFT" | "GOOGLE_ADDON" | "INSTANT_MEETING" | "OTHER" | "PT" | "PUBLIC_API" | "TEAMS_CLIENT" | "TEAMS_CLIENT_CROSS_LAUNCH" | "UNIFIED_PAGE" | "WEBEX_PAGE"; /** * this defines meeting categories for scheduling */ schedulingOperationType?: "prepare" | "create" | "update" | "delete"; additionalProperties?: never; }; /** * details of setting information */ settingInfo?: { /** * this defines where the type of Setting being modified/updated */ settingType: "AUDIO_VIDEO" | "EMAIL_TEMPLATE" | "GENERAL" | "PMR" | "RECORDING" | "SCHEDULING" | "WEBEX_SITE"; additionalProperties?: never; }; sessionJoinCount?: number; /** * indicates transport type used */ transportType?: "UDP" | "TCP" | "xTLS" | "TLS"; joinFlowVersion?: "NewFTE" | "Other"; locale?: string; accessNumber?: string; isVVipMeeting?: boolean; /** * Login-related information. */ loginInfo?: { loginType?: | "user-hub" | "control-hub" | "meeting-site" | "global-sign-in-page" | "web-client" | "native-client"; method?: "idbroker" | "enterprise" | "social"; grantType?: "client-credential" | "authorization-code" | "scope-reduction"; /** * Sign-in Time */ signInDelay?: { signInTime?: number; additionalProperties?: never; }; signInSignUpType?: "sign-in" | "sign-up"; userFound?: boolean; additionalProperties?: never; }; isPrivateMeeting?: boolean; /** * Low Latency Mercury latency measurements */ llmLatency?: { clientLLMDatachannelResponseTime?: number; clientLLMWebSocketConnectTime?: number; additionalProperties?: never; }; /** * Sync Latency measurements. Expected to be sent in client.locus.sync.complete and locus.sync.sent events that could be triggered in a converged webinar session */ syncLatency?: { randomBackoffTime?: number; hashtreePrepTime?: number; hashtreeProcessingTime?: number; hashtreeResponseTime?: number; syncPrepTime?: number; syncResponseTime?: number; syncProcessingTime?: number; syncMessageReceiveTime?: number; totalTime?: number; additionalProperties?: never; }; /** * Low Latency Mercury related information. */ llmInfo?: { dataSet?: "main" | "atd-active" | "atd-unmuted"; additionalProperties?: never; }; name: | "client.abort.join" | "client.alert.displayed" | "client.alert.removed" | "client.application.validate" | "client.audio.noise.removal" | "client.breakout-session.join.request" | "client.breakout-session.join.response" | "client.breakout-session.leave" | "client.breakout-session.move.request" | "client.breakout-session.move.response" | "client.call.aborted" | "client.call.declined" | "client.call.fallback" | "client.call.diagnostics" | "client.call.displayed" | "client.call.info" | "client.call.initiated" | "client.call.leave" | "client.call.move-media" | "client.call.remote-ended" | "client.call.remote-started" | "client.call.skip-locus-join" | "client.ci.exchange-token.request" | "client.ci.exchange-token.response" | "client.conversation.request" | "client.conversation.response" | "client.click.pre-join" | "client.crash" | "client.daemon.join.begin" | "client.daemon.job.done" | "client.daemon.launch-meeting-process" | "client.daemon.pending-on-existing-upgrade-job" | "client.daemon.query-site-info" | "client.daemon.upgrade-and-join" | "client.daemon.wakeup-meeting-client" | "client.duplicate.join" | "client.device.resource-room.joined" | "client.dialog-window.dismissed" | "client.dialog-window.selected" | "client.dialog-window.showed" | "client.e2ee.join.response" | "client.embedded-authorize-page.loaded" | "client.embedded-object-info" | "client.entering-background" | "client.entering-foreground" | "client.exit.app" | "client.gesture.recognition" | "client.hologram.initiated" | "client.hologram.stopped" | "client.hologram.remote.initiated" | "client.hologram.remote.stopped" | "client.hung" | "client.ice.end" | "client.ice.start" | "client.idbroker.authorize.request" | "client.idbroker.authorize.response" | "client.idbroker.client-credential.request" | "client.idbroker.client-credential.response" | "client.idbroker.cloud-reduced-scope.request" | "client.idbroker.direct-authorize.request" | "client.idbroker.direct-authorize.response" | "client.idbroker.cloud-reduced-scope.response" | "client.idbroker.exchange-token.request" | "client.idbroker.exchange-token.response" | "client.idbroker.kms-reduced-scope.request" | "client.idbroker.kms-reduced-scope.response" | "client.idbroker.scim.request" | "client.idbroker.scim.response" | "client.idbroker.user-invoke.request" | "client.idbroker.user-invoke.response" | "client.installer.start" | "client.installer.end" | "client.installer.download-app" | "client.installer.decompress-app" | "client.installer.fallback" | "client.installer.install-app" | "client.installer.launch-app" | "client.installer.switch.to.webapp" | "client.launcher.start" | "client.launcher.selfupgrade.start" | "client.launcher.selfupgrade.end" | "client.launcher.downloadapp.start" | "client.launcher.downloadapp.end" | "client.launcher.launchapp" | "client.launcher.end" | "client.launcher.restart.begin" | "client.launcher.restart.end" | "client.license.activations.request" | "client.license.activations.response" | "client.llm.connect.response" | "client.interstitial-window.launched" | "client.interstitial-window.start-launch" | "client.ivr.join.request" | "client.ivr.join.response" | "client.ivr.leave.request" | "client.ivr.leave.response" | "client.ivr.notify.request" | "client.ivr.notify.response" | "client.lobby.entered" | "client.lobby.exited" | "client.locus.decline.request" | "client.locus.join.request" | "client.locus.join.response" | "client.locus.leave.request" | "client.locus.leave.response" | "client.locus.media.request" | "client.locus.media.response" | "client.locus.sync.complete" | "client.media-engine.crash" | "client.media-engine.launched" | "client.media-engine.lost" | "client.media-engine.local-sdp-generated" | "client.media-engine.ready" | "client.media-engine.remote-sdp-received" | "client.media-engine.start-launch" | "client.media-device.ready" | "client.media-device.stop" | "client.media-device.error" | "client.media-status" | "client.media.capabilities" | "client.media.ready" | "client.media.reachability" | "client.media.reconnecting" | "client.media.recovered" | "client.media.render.start" | "client.media.render.stop" | "client.media.rx.start" | "client.media.rx.stop" | "client.media.share.csi.changed" | "client.media.tx.start" | "client.media.tx.stop" | "client.meetinginfo.request" | "client.meetinginfo.response" | "client.meetingmanagersdk.ipc.run" | "client.meeting.app-loaded" | "client.meeting.breakout-session.action" | "client.meeting.breakout-session.summary" | "client.meeting.browser-plugin.started" | "client.meeting.click.joinbutton" | "client.meeting.closed" | "client.meeting.disclaimer-window.accepted" | "client.meeting.disclaimer-window.closed" | "client.meeting.disclaimer-window.showed" | "client.meeting.docshow.request" | "client.meeting.docshow.response" | "client.meeting.e2e.u2c.response" | "client.meeting.e2e.wca.response" | "client.meeting.e2e.key.response" | "client.meeting.e2ee.u2c.response" | "client.meeting.e2ee.wca.response" | "client.meeting.e2ee.key.response" | "client.meeting.gpc.download" | "client.meeting.gpcparameter.request" | "client.meeting.gpcparameter.response" | "client.meeting.interstitial-window.closed" | "client.meeting.interstitial-window.showed" | "client.meeting.join.request" | "client.meeting.key-information" | "client.meeting.launched" | "client.meeting.login-window.clicked" | "client.meeting.login-window.closed" | "client.meeting.login-window.showed" | "client.meeting.login.response" | "client.meeting.people-insights.check.response" | "client.meeting.people-insights.query.response" | "client.meeting.ping.request" | "client.meeting.ping.response" | "client.meeting.plugin-extension.started" | "client.meeting.resume" | "client.meeting.report-log" | "client.meeting.session.connected" | "client.meeting.start-webexapp" | "client.meeting.start-launch" | "client.meeting.summary" | "client.meeting.user-action" | "client.meeting.validated" | "client.meeting.VDI.detect.plugin.response" | "client.meeting.VDI.connect.plugin.response" | "client.mercury.connection.lost" | "client.mercury.connection.restored" | "client.mercury.connection.start" | "client.mercury.connection.connected" | "client.multistream.sca.rx" | "client.multistream.sca.tx" | "client.multistream.scr.rx" | "client.multistream.scr.tx" | "client.muted" | "client.network.changed" | "client.notification.received" | "client.onboarding-window.start" | "client.onboarding-window.end" | "client.permission.closed" | "client.permission.prompted" | "client.pin.collected" | "client.pin.prompt" | "client.post.meeting.hook" | "client.pstnaudio.attempt.correlation" | "client.pstnaudio.attempt.finish" | "client.pstnaudio.attempt.skip" | "client.pstnaudio.attempt.start" | "client.roap-message.received" | "client.roap-message.sent" | "client.scheduling.initiate" | "client.scheduling.notification" | "client.share.floor-accept.notification" | "client.share.floor-grant.cancel-request" | "client.share.floor-grant.notification" | "client.share.floor-grant.request" | "client.share.floor-granted.local" | "client.share.initiated" | "client.share.layout.displayed" | "client.share.paused" | "client.share.selected-app" | "client.share.stopped" | "client.sign-in.start" | "client.sign-in.end" | "client.started-after-shutdown" | "client.started-from-crash" | "client.stuntrace.failed" | "client.switch.app" | "client.terminate.app" | "client.unmuted" | "client.webexapp.start-launch" | "client.webexapp.launched" | "client.login.start" | "client.login.end" | "client.startup.start" | "client.startup.end" | "client.switch.environment" | "client.u2c.limited-catalog.request" | "client.u2c.limited-catalog.response" | "client.u2c.signin-catalog.request" | "client.u2c.signin-catalog.response" | "client.upgrade-window.accepted" | "client.upgrade-window.closed" | "client.upgrade-window.showed" | "client.waiting.user-action" | "client.warhol.downloaded" | "client.wdm.device-registration.request" | "client.wdm.device-registration.response" | "client.webapp-download.start" | "client.webapp-download.in-progress" | "client.webapp-download.end" | "client.whiteboard.loaded" | "client.call.survey.trigger" | "meeting.initiated" | "meeting.converged.initiated" | "meeting.joined" | "page.click.pre-join" | "page.client.abort.join" | "page.client.interstitial-window.launched" | "page.meeting.browser-reset" | "page.meeting.close-browser" | "page.meeting.extension.started" | "page.meeting.extension.app.starting" | "page.meeting.extension.app.started" | "page.meeting.join-fallback.dismiss" | "page.meeting.join-fallback" | "page.meeting.launch-thinclient" | "page.meeting.launched-duplicate.context" | "page.meeting.loading" | "page.meeting.mobile.call" | "page.meeting.mobile.download" | "page.meeting.mobile.join-link" | "page.meeting.plugin.launch-meeting" | "page.meeting.run-plugin" | "page.meeting.switch.to.webapp" | "page.meeting.testing-plugin" | "page.meeting.testing-plugin.finished" | "page.meeting.tfs.start-download" | "page.meeting.urlprotocol.detect" | "page.meeting.waiting.user-action" | "page.meeting.webexapp.launched" | "page.meeting.webinstaller.started" | "page.meeting.webinstaller.ended" | "client.feature.ptplugin.distribution"; /** * Base type for the various identifiers used to connect the dots. * In general, these should be populated whenever possible. Subtypes may make a particular key required. * */ identifiers: { aggregatedBreakoutMoveId?: string; attendeeId?: string; participantId?: string; breakoutGroupId?: string; breakoutMoveId?: string; breakoutTrackingId?: string; breakoutSessionId?: string; browserId?: string; ciExchangeTokenUrl?: string; confluenceId?: string; /** * Set of identifiers dedicated to CPaaS clients * In general, these should be populated whenever possible. Subtypes may make a particular key required. * */ cpaasIdentifiers?: { imiTenantId: string; devClientId: string; imiServiceId: string; imiAppId: string; sessionId: string; sessionInstanceId: string; additionalProperties?: never; }; csdmDeviceUrl?: string; destinationBreakoutSessionId?: string; destinationLocusSessionId?: string; destinationLocusUrl?: string; destinationVenueId?: string; deviceId?: string; globalMeetingId?: string; installationId?: string; webexMeetingUUID?: string; ivrCallId?: string; ivrDialogId?: string; ivrId?: string; callId?: string; pairCallId?: string; llmWebsocketUrl?: string; locusCluster?: string; locusId?: string; locusJoinUrl?: string; locusSessionId?: string; locusStartTime?: string; locusUrl?: string; machineId?: string; mediaAgentAlias?: string; mediaAgentGroupId?: string; meetClusterName?: string; meetingInstanceId?: string; meetingLookupUrl?: string; meetingOrgId?: string; metricServiceUrl?: string; mercuryWebsocketUrl?: string; msteamsTenantGuid?: string; msteamsConferenceId?: string; msteamsMeetingId?: string; mtid?: string; oauth2ClientId?: string; orgId?: string; provisionalCorrelationId?: string; roomId?: string; sessionCorrelationId?: string; sharedMediaId?: string; sipCallId?: string; sipSessionId?: { local?: string; remote?: string; additionalProperties?: never; }; sipUri?: string; subConfId?: string; tenantId?: string; trackingId?: string; userId?: string; venueId?: string; venueUrl?: string; whiteboardUrl?: string; wdmDeviceRegistrationUrl?: string; webexConferenceId?: number; webexClusterName?: string; webexConferenceIdStr?: string; webexDataCenter?: string; webexGuestId?: number; webexMeetingId?: number; webexNodeId?: number; webexSiteId?: number; webexSiteName?: string; webexSiteUuid?: string; webexUserId?: number; webexWebDomain?: string; recordingId?: string; clientCorrelationId?: string; idForEndpointAB?: string; customerOrgId?: string; correlationId: string; additionalProperties?: never; }; errors?: { fatal: boolean; category: "signaling" | "media" | "network" | "other" | "expected"; errorDescription?: string; errorCode?: number; errorCodeStr?: string; httpCode?: number; errorCodeExt1?: number; errorData?: {}; rawErrorMessage?: string; mediaDeviceErrors?: string; shownToUser: boolean; serviceErrorCode?: number; name: | "media-engine" | "ice.failed" | "locus.response" | "locus.leave" | "client.leave" | "media-device" | "media-sca" | "wxc" | "service-api-error" | "network-error" | "Error_Success" | "other"; component?: string; additionalProperties?: never; }[]; /** * media quality error report such as no media or drop out */ clientMediaError?: { mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard"; mediaFailureType?: "noMedia" | "mediaDrop" | "mediaEvent"; isDropAtStart?: boolean; isJMF?: boolean; txError?: | "NO_ERROR" | "DEVICE_ERROR" | "LOAD_LIBRARY_ERROR" | "MCS_SESSION_CONNECT_ERROR" | "CB_SESSION_CREATE_ERROR" | "NO_FRAME_DECODE_ERROR" | "NO_PACKET_RECV_ERROR" | "LOW_VOLUME_ERROR" | "INITIAL_MEMORY_ERROR" | "MAC_VIRTUAL_AUDIO_DRV_ERROR" | "MMP_SESSION_CONNECT_ERROR" | "MEDIA_PROCESS_CRASH_ERROR" | "HEARTBEAT_LOST_WITH_MEDIA_PROCESS_ERROR" | "MEDIA_SERVER_CONNECT_ERROR" | "LOCUS_SESSION_CONNECT_ERROR" | "NO_PACKET_SEND_ERROR" | "NETWORK_LOST_ERROR" | "MEDIA_NOT_AVAILABLE" | "FAIL_TO_OPEN_SHARE_DIALOG"; rxError?: | "NO_ERROR" | "DEVICE_ERROR" | "LOAD_LIBRARY_ERROR" | "MCS_SESSION_CONNECT_ERROR" | "CB_SESSION_CREATE_ERROR" | "NO_FRAME_DECODE_ERROR" | "NO_PACKET_RECV_ERROR" | "LOW_VOLUME_ERROR" | "INITIAL_MEMORY_ERROR" | "MAC_VIRTUAL_AUDIO_DRV_ERROR" | "MMP_SESSION_CONNECT_ERROR" | "MEDIA_PROCESS_CRASH_ERROR" | "HEARTBEAT_LOST_WITH_MEDIA_PROCESS_ERROR" | "MEDIA_SERVER_CONNECT_ERROR" | "LOCUS_SESSION_CONNECT_ERROR" | "NO_PACKET_SEND_ERROR" | "NETWORK_LOST_ERROR" | "MEDIA_NOT_AVAILABLE" | "FAIL_TO_OPEN_SHARE_DIALOG"; txDeviceErrorCode?: number; rxDeviceErrorCode?: number; sessionConnectErrorCode?: number; firstDropTime?: string; totalDropCount?: number; failureDuration?: number; txMoreError?: string; rxMoreError?: string; totalUserWhenCBStartError?: number; sessionConnectExtErrorCode?: number; sessionConnectErrorType?: "unknown" | "MCC_error" | "MCS_error" | "Tahoe_error"; txSystemErrorCode?: number; rxSystemErrorCode?: number; errorDetails?: {}; additionalProperties?: never; }; /** * client reachability result */ reachability?: { age?: number; method?: "standard" | "standard-early" | "fast"; hasResult?: boolean; nodeCount?: number; duration?: number; reachableNodeCount?: number; source?: "memory-local-ips"; trigger?: | "early-call-local-network-changed" | "early-call-no-min-reached" | "expired" | "ice-failed" | "meeting-join" | "meeting-prejoin" | "meeting-prepare" | "network-ip-address-changed" | "network-ip-address-changed-vdi-hvd" | "network-ip-address-changed-vdi-thin-client" | "network-proxy-changed" | "network-proxy-changed-vdi-hvd" | "network-proxy-changed-vdi-thin-client" | "network-restored" | "network-vdi-switch-fallback-to-vdi" | "network-vdi-switch-vdi-to-fallback" | "startup"; joinCookie?: string; isJoinCookieUsed?: boolean; serverTime?: number; expiredAfter?: number; additionalProperties?: never; }; /** * End Trigger - indicate how the call was ended from client. Set in end of call events such as client.call.end, client.call.aborted */ endTrigger?: "ejected" | "end-meeting" | "leave" | "other"; trigger?: | "bricklet" | "call-history" | "carPlay" | "APNS" | "widget-meeting" | "user-activity" | "companion-join" | "app-hub" | "contact-profile" | "dialpad" | "exited-app" | "loci-update" | "mc-crosslaunch" | "media-engine-event" | "meetbutton-click" | "meetings-tab" | "meetings-tab-join-a-meeting" | "meetings-tab-start-a-meeting" | "meetings-tab-start-ai-notes" | "meetings-tab-calendar" | "message-click" | "mercury-event" | "obtp" | "onboarding-page" | "other" | "pairing" | "protocol" | "search" | "signaling" | "space-share" | "third-party-interop" | "timeout" | "toast" | "user-interaction" | "webinar-registration-page" | "web-ucf-crosslaunch" | "wireless-share" | "deep-link" | "protocol-after-upgrade" | "protocol-after-crash" | "protocol-refresh-token-expired" | "protocol-restart-and-join" | "protocol-generated-link" | "protocol-in-meeting-upgrade" | "protocol-single-interstitial-sign-in-join"; leaveReason?: "paired-leave" | "one-to-one" | "ended-by-locus"; displayLocation?: | "toast" | "room-list" | "call-pane" | "call-view" | "room" | "meeting-list" | "meeting" | "personal-meeting-room" | "intents" | "external-link" | "automation" | "meeting-information" | "contact-card" | "control-center" | "search-result" | "other"; displayType?: "scheduled"; dialedDomain?: string; isScheduled?: boolean; guestModeShare?: boolean; highFpsModeShare?: boolean; contentAudioShare?: boolean; pairingState?: "paired" | "observing" | "challenging"; pairedDevice?: { deviceId?: string; deviceJoinType?: string; devicePairingType?: string; deviceType?: string; deviceURL?: string; isPersonalDevice?: boolean; modelNumber?: string; productName?: string; tempSipUri?: string; additionalProperties?: never; }; /** * Information about the sender of the event */ oldOrigin?: { name: | "addin" | "antares" | "appapi" | "beech" | "breakout" | "calendar" | "cb" | "cca" | "ccc" | "cloudproxy" | "crc" | "edonus" | "endpoint" | "givr" | "hecate" | "hedge" | "hesiod" | "homer" | "idbroker" | "superhomer" | "l2sip" | "linus" | "locus" | "mbs" | "mcc" | "mcs" | "mercury" | "mes" | "mjs" | "mmp" | "mrs" | "mygdon" | "ngpage" | "ngservice" | "oauth" | "orpheus" | "page" | "poros" | "publicapi" | "rhesos" | "sbs" | "terminus" | "tpgw" | "ucc" | "wdm" | "webexivr" | "meetingcontainer"; userAgent: string; buildType?: "debug" | "test" | "prod" | "tap" | "analyzer-test"; /** * Will be used as a label for client software status */ upgradeChannel?: string; /** * (e.g. slowchannel, pinned release or an UUID). If the value is not known use NULL, or if its default channel 'system' */ upgradeSource?: string; /** * Identifier for a particular instance of a service, such as a particular linus */ instanceId?: string; networkType: "wifi" | "ethernet" | "cellular" | "unknown"; localIP?: string; usingProxy?: boolean; mediaEngineSoftwareVersion?: string; environment?: string; newEnvironment?: string; /** * Details of client environment */ clientInfo?: { os?: | "android" | "android-x64" | "android-arm64" | "chrome" | "ios" | "linux" | "mac" | "other" | "uwp-arm64" | "windows"; osVersion?: string; localIP?: string; gatewayIP?: string; macAddress?: string; localNetworkPrefix?: string; publicNetworkPrefix?: string; browserLaunchMethod?: | "activex" | "npapi" | "extension" | "cwsapi" | "java" | "tfs" | "webacd" | "url-handler" | "thinclient" | "switch-to-web" | "switch-to-native"; cwsStatus?: "starting-converged-mtg" | "webexapp-launched" | "webex-launcher-launched"; cwsVersion?: string; clientLaunchMethod?: | "url-handler" | "universal-link" | "voice-command" | "notification" | "manual" | "teams-cross-launch" | "mc-cross-launch" | "cws" | "installer" | "installer-launcher" | "launcher" | "cws-launcher"; urlProtocolLaunchMethod?: "auto" | "manual" | "extension-fallback"; browser?: string; browserVersion?: string; connectionDownlinkMbps?: number; connectionEffectiveType?: string; connectionThroughputMbps?: number; isSupportedBrowserFamily?: boolean; isOutdatedBrowserVersion?: boolean; /** * this defines the major client types */ clientType?: | "MEETING_CENTER" | "EVENT_CENTER" | "TRAINING_CENTER" | "TEAMS_CLIENT" | "TEAMS_DEVICE" | "TEAMS_SHARE" | "SIP" | "RECORDING" | "CLOUD_AWARE_SIP" | "TEAMS_WXC_CLIENT" | "WXC_CLIENT" | "WXC_DEVICE" | "WEBEX_JS_SDK" | "VOICEA_CLIENT" | "CISCO_SIP_GW" | "WEBEX_SDK" | "CPAAS_THIRD_PARTY_SDK" | "WXC_THIRD_PARTY" | "WXCC" | "TEAMS_PHONE" | "WEBEX_RELAY"; /** * this defines the sub types of clients */ subClientType?: | "AUTOMOTIVE_APP" | "BROWSER_EXTENSION" | "DESKTOP_APP" | "DESKTOP_APP_VDI" | "DEVICE_CURRENT" | "DEVICE_LEGACY_2020" | "HOLOGRAM_HEADSET_APP" | "HVDI_APP" | "MIXED" | "MOBILE_APP" | "MOBILE_NETWORK" | "PAGE" | "TEAMS_DEVICE" | "VDI_APP" | "WEB_APP" | "PHONE_NOVUM" | "PHONE_ESPRESSO" | "PHONE_BUMBLEBEE" | "SIP" | "SIP_PSTN"; /** * this defines the major client types for scheduling */ schedulingClientType?: | "GOOGLE_ADDON" | "GOOGLE_NOTIFICATION_CALENDAR" | "MSFT_NOTIFICATION_ADDIN" | "MSFT_NOTIFICATION_CALENDAR" | "OUTLOOK_ADDIN" | "PT" | "PUBLIC_API" | "TEAMS_CLIENT" | "UNIFIED_PAGE" | "WEBEX_PAGE"; clientVersion?: string; /** * this defines the client version status. Determined by call analyzer based on client major version */ clientVersionStatus?: "CURRENT" | "LEGACY" | "UNSUPPORTED"; localClientVersion?: string; launcherVersion?: string; installerVersion?: string; installerMajorVersion?: number; installerMinorVersion?: number; installerRevision?: number; modelNumber?: string; joinFirstUpdateLater?: "ep-enabled" | "sp-enabled" | "not-enabled"; standbyUsed?: boolean; prefetchDocShowUsed?: boolean; fastJoinUsed?: boolean; clientDownloadSize?: number; clientDownloadFileCount?: number; nodeId?: number; machineInfo?: string; parentAppName?: string; parentAppInPermitList?: boolean; meetingSiteType?: "train" | "webex-11" | "orion"; CDNEnabled?: boolean; clientMajorVersion?: string; majorVersion?: number; minorVersion?: number; revision?: number; isValidClientVersion?: boolean; /** * This object defines the fields related to the CPU being used by the emitter of the event */ cpuInfo?: { description: string; numberOfCores: number; architecture: | "intel32" | "intel64" | "amd32" | "amd64" | "arm32" | "arm64" | "armv9" | "armv8" | "armv7" | "armv6" | "x86_64" | "x86_32" | "unknown"; staticPerformance?: string; clockSpeedGigaHertz?: number; additionalProperties?: never; }; shareType?: | "cb-normal-share" | "ce-airplay-share" | "ce-direct-share" | "ce-gui-loopback-share" | "ce-input-source-share" | "ce-input-source-share-hdmi" | "ce-input-source-share-usbc" | "ce-jpg-share" | "ce-miracast-share" | "mcs-normal-share" | "mcs-normal-audio-share" | "mcs-hfps-share" | "mcs-hfps-audio-share"; /** * Video display mode currently in use */ videoDisplayMode?: "grid-view" | "active-speaker-view"; videoLayoutType?: | "stack" | "stackWithShare" | "sideBySide" | "sideBySideWithShare" | "grid" | "floatingActive" | "floatingThumbnail" | "floatingGrid" | "overlay" | "focus" | "prominent" | "focusWithShare" | "prominentWithShare" | "equal" | "equalWithShare" | "largeGallery" | "auto" | "autoWithShare"; appliedLayout?: | "stack" | "stackWithShare" | "sideBySide" | "sideBySideWithShare" | "grid" | "floatingActive" | "floatingThumbnail" | "floatingGrid" | "overlay" | "focus" | "prominent" | "focusWithShare" | "prominentWithShare" | "equal" | "equalWithShare" | "largeGallery" | "auto" | "autoWithShare"; /** * this defines the video render type of meetings */ videoRenderType?: "wme" | "client_d3d" | "client_gdi"; vdiInfo?: {}; is64BitsClient?: boolean; webexAppVersion?: string; /** * this defines launch 32 bits client reason */ launch32BitsReason?: | "forcewin32" | "disablewin64" | "platform_win32" | "platform_arm" | "platform_unknown" | "version_below_41.11"; inMeetingUpdate?: boolean; mtaVersion?: string; isWarholOpening?: boolean; vendorId?: string; staticPerformanceLevel?: string; staticPerformanceScore?: number; preInstalledTime?: string; preInstalledType?: "app" | "installer" | "launcher"; preInstalledVersion?: string; proxyInfo?: {}; additionalProperties?: never; }; /** * Details of the Web Installer package download, reported under origin.installerInfo */ installerInfo?: { packageSuffix?: string; packageArch?: string; launchId?: string; packageCount?: number; totalSize?: number; additionalProperties?: never; }; /** * Management mode applied to the Webex app. */ webexAppManagementType?: "UNMANAGED" | "MDM_ONLY" | "MAM_ONLY" | "MDM_AND_MAM"; emmVendorId?: string; isHybridMedia?: boolean; originData?: {}; serviceVersion?: string; additionalProperties?: never; }; reachabilityStatus?: "none" | "all-false" | "partial-success" | "all-success"; recoveredBy?: "retry" | "new"; joinType?: "auto" | "no-locus-join"; audioJoinType?: "phone-call-in" | "phone-call-back" | "voip" | "device-call-back" | "never-join-audio"; isVideoMuted?: boolean; isVPN?: boolean; /** * phrased HTTP timing */ joinHttpTiming?: { connect?: number; dnsLookup?: number; sendRequest?: number; compressRequest?: number; receiveResponse?: number; extractJson?: number; verifyCert?: number; refreshToken?: number; additionalProperties?: never; }; /** * phrased HTTP timing */ meetingInfoHttpTiming?: { connect?: number; dnsLookup?: number; sendRequest?: number; compressRequest?: number; receiveResponse?: number; extractJson?: number; verifyCert?: number; refreshToken?: number; additionalProperties?: never; }; /** * phrased HTTP timing */ floorRequestHttpTiming?: { connect?: number; dnsLookup?: number; sendRequest?: number; compressRequest?: number; receiveResponse?: number; extractJson?: number; verifyCert?: number; refreshToken?: number; additionalProperties?: never; }; icePhase?: "JOIN_MEETING_FINAL" | "JOIN_MEETING_RETRY" | "IN_MEETING"; iceResult?: {}; userType?: "host" | "attendee" | "cohost" | "panelist"; updateType?: "new-user" | "update-user" | "return-user"; userNameInput?: "new" | "current" | "changed"; emailInput?: "none" | "new" | "current" | "changed"; isRoapCallEnabled?: boolean; isFirstTimeUser?: boolean; isWebReturnUser?: boolean; webOnlyDayCrossLaunch?: boolean; responseCode?: number; /** * Join Meeting Time */ joinTimes?: { announceJmt?: number; appLoadTime?: number; audioCallbackJMT?: number; audioCBJMT?: number; audioICESetupTime?: number; audioMCCJMT?: number; audioMCSJMT?: number; audioPstnJMT?: number; audioTAJMT?: number; audioVOIPJMT?: number; cacheKeyTime?: number; callInitJoinReq?: number; callInitMediaEngineReady?: number; callInitLoginEnd?: number; cbJmt?: number; clickToInterstitial?: number; clickToInterstitialWithUserDelay?: number; clickToMediaOKJMT?: number; clientDecompressTime?: number; clientDownloadTime?: number; clientJmt?: number; clientPstnDialOutJMT?: number; connectVDITime?: number; decompressTime?: number; detectVDITime?: number; deviceCallbackJMT?: number; deviceParingJMT?: number; downloadIntelligenceModelsReqResp?: number; downloadMsiTime?: number; downloadTime?: number; exchangeCITokenJMT?: number; exchangeOnetimeTokenJMT?: number; getAppMetadataTime?: number; getDocShowTime?: number; getGPCParametersTime?: number; getPCParametersTime?: number; getReachabilityClustersReqResp?: number; getU2CTime?: number; getWCATime?: number; GLAJmt?: number; gotKeyTime?: number; e2eeKeyReadyTime?: number; guestSessionCreationTime?: number; guestTokenRetrievalTime?: number; ICESetupTime?: number; initializeCameraTime?: number; installAppTime?: number; installerJmt?: number; interstitialToLoginEnd?: number; interstitialToJoinOK?: number; interstitialToMediaOKJMT?: number; ivrSvcDialInFirstScript?: number; ivrSvcDialInTahoeJoin?: number; JMTDetail?: string; joinConfJmt?: number; joinReqResp?: number; joinRespAudioReady?: number; joinRespMediaEngineReady?: number; joinRespShareReady?: number; joinRespShareAudioReady?: number; joinRespVideoReady?: number; joinReqSentReceived?: number; joinRespSentReceived?: number; launchAppJmt?: number; localSDPGenRemoteSDPRecv?: number; locusBreakoutSessionMoveReqResp?: number; locusJoinReqResp?: number; locusLobbyMovedToMtgToClientExitedLobby?: number; loggedToInterstitial?: number; loginEndToInterstitialTime?: number; loginTime?: number; mediaEngineInitTime?: number; meetingInfoFetchTime?: number; meetingInfoReqResp?: number; mmpPreConnected?: boolean; moveVerifiedFilesTime?: number; networkLatency?: number; otherAppApiReqResp?: number; pageJmt?: number; pageLaunchThinClientToWebAppDownloadStart?: number; pageLoadingTime?: number; pageLoadingToLaunchThinClient?: number; pageLoadingToTFSStartDownload?: number; pageUrlProtocolDetectToWebexAppLaunched?: number; pageWebexInstallerStartToWebexAppLaunched?: number; pingJmt?: number; pluginJmt?: number; pstnDialInReferL2SIPJoinReq?: number; pstnDialInReferL2SIPRoapOk?: number; pstnIvrSvcCallSetup?: number; pstnIvrSvcDialOutAudioLatency?: number; pstnIvrSvcEarlyOfferDelay?: number; pstnIvrSvcJMT?: number; pstnIvrSvcMrsMeetingInfo?: number; pstnIvrSvcOfferToSipInvite?: number; pstnIvrSvcSipInviteToCancel?: number; pstnIvrSvcSipInviteToRinging?: number; qmlInterstitialLoadTime?: number; refreshCaptchaServiceReqResp?: number; registerWDMDeviceJMT?: number; roapAnswerTime?: number; roapOfferReqToOkTime?: number; roapOfferRespTime?: number; roapOkTime?: number; serverMeetingInfoReqResp?: number; sessionJMT?: number; shareICESetupTime?: number; showInterstitialTime?: number; stayLobbyTime?: number; TFSDownloadToWebexAppInstalled?: number; totalJmt?: number; totalJMTWithUserDelay?: number; totalMediaJMT?: number; totalMediaJMTWithUserDelay?: number; useKeyTime?: number; verifySignatureTime?: number; videoCBJMT?: number; videoICESetupTime?: number; videoJMT?: number; videoMCCJMT?: number; videoMCSJMT?: number; WDMRegistrationTime?: number; additionalProperties?: never; }; /** * ROAP message details */ roap?: { type?: | "ANSWER" | "ERROR" | "OFFER" | "OFFER_REQUEST" | "OFFER_RESPONSE" | "OK" | "OKAY" | "TURN_DISCOVERY_REQUEST" | "TURN_DISCOVERY_RESPONSE"; messageType?: | "ANSWER" | "ERROR" | "OFFER" | "OFFER_REQUEST" | "OFFER_RESPONSE" | "OK" | "OKAY" | "TURN_DISCOVERY_REQUEST" | "TURN_DISCOVERY_RESPONSE"; error?: string; duration?: number; seq?: number; additionalProperties?: never; }; /** * metadata associated with emitter of the event. This data is included only in the first emitted for a given call and does not need to be repeated with each event. */ mediaMetadata?: { mediaEngineSoftwareType: string; applicationSoftwareType: string; applicationSoftwareVersion: string; mediaEngineSoftwareVersion?: string; hardwareType?: string; clientRegion?: string; serverRegion?: string; serverOrg?: string; serverGroup?: string; serverAlias?: string; serverDeployType?: "private" | "public"; startTime: string; endTime?: string; csi?: number[]; isCascade?: boolean; isHybridMedia?: boolean; videoMeshClusterName?: string; videoMeshServerName?: string; isTIP?: boolean; isMARI?: boolean; has264Checksum?: boolean; intervalPeriod?: number; cascadePeerRegion?: string; cascadePeerOrg?: string; cascadePeerGroup?: string; cascadePeerAlias?: string; cascadePeerServerType?: | "CB" | "CMS" | "CRC" | "HESIOD" | "LINUS" | "MCC" | "MCS" | "MES" | "MJS" | "MRS" | "MYGDONUS" | "MZM" | "TERMINUS" | "TPGW" | "TA" | "HOMER" | "SUPERHOMER" | "U2C" | "WCA" | "MSE" | "UNKNOWN"; cascadePeerDeployType?: "private" | "public"; additionalProperties?: never; }; /** * Details of server environment */ serverInfo?: { serverType?: | "CB" | "CMS" | "CRC" | "HESIOD" | "LINUS" | "MCC" | "MCS" | "MES" | "MJS" | "MRS" | "MYGDONUS" | "MZM" | "TERMINUS" | "TPGW" | "TA" | "HOMER" | "SUPERHOMER" | "U2C" | "WCA" | "MSE" | "UNKNOWN"; serverAddress?: string; additionalProperties?: never; }; /** * Details of client connect session */ videoSession?: { mediaSessionType?: "AUDIO_CALLBACK" | "AUDIO_VOIP" | "DEVICE_CALLBACK" | "DEVICE_PAIRING" | "VIDEO"; isSuccess?: boolean; signalingServerType?: | "CB" | "CMS" | "CRC" | "HESIOD" | "LINUS" | "MCC" | "MCS" | "MES" | "MJS" | "MRS" | "MYGDONUS" | "MZM" | "TERMINUS" | "TPGW" | "TA" | "HOMER" | "SUPERHOMER" | "U2C" | "WCA" | "MSE" | "UNKNOWN"; signalingServerAddress?: string; mediaServerType?: | "CB" | "CMS" | "CRC" | "HESIOD" | "LINUS" | "MCC" | "MCS" | "MES" | "MJS" | "MRS" | "MYGDONUS" | "MZM" | "TERMINUS" | "TPGW" | "TA" | "HOMER" | "SUPERHOMER" | "U2C" | "WCA" | "MSE" | "UNKNOWN"; mediaServerAddress?: string; errorDescription?: string; errorCode?: number; mediaErrorType?: | "NO_ERROR" | "DEVICE_ERROR" | "LOAD_LIBRARY_ERROR" | "MCS_SESSION_CONNECT_ERROR" | "CB_SESSION_CREATE_ERROR" | "NO_FRAME_DECODE_ERROR" | "NO_PACKET_RECV_ERROR" | "LOW_VOLUME_ERROR" | "INITIAL_MEMORY_ERROR" | "MAC_VIRTUAL_AUDIO_DRV_ERROR" | "MMP_SESSION_CONNECT_ERROR" | "MEDIA_PROCESS_CRASH_ERROR" | "HEARTBEAT_LOST_WITH_MEDIA_PROCESS_ERROR" | "MEDIA_SERVER_CONNECT_ERROR" | "LOCUS_SESSION_CONNECT_ERROR" | "NO_PACKET_SEND_ERROR" | "NETWORK_LOST_ERROR" | "MEDIA_NOT_AVAILABLE" | "FAIL_TO_OPEN_SHARE_DIALOG"; isJoinAtStart?: boolean; additionalProperties?: never; }; /** * Details of client connect session */ audioVOIPSession?: { mediaSessionType?: "AUDIO_CALLBACK" | "AUDIO_VOIP" | "DEVICE_CALLBACK" | "DEVICE_PAIRING" | "VIDEO"; isSuccess?: boolean; signalingServerType?: | "CB" | "CMS" | "CRC" | "HESIOD" | "LINUS" | "MCC" | "MCS" | "MES" | "MJS" | "MRS" | "MYGDONUS" | "MZM" | "TERMINUS" | "TPGW" | "TA" | "HOMER" | "SUPERHOMER" | "U2C" | "WCA" | "MSE" | "UNKNOWN"; signalingServerAddress?: string; mediaServerType?: | "CB" | "CMS" | "CRC" | "HESIOD" | "LINUS" | "MCC" | "MCS" | "MES" | "MJS" | "MRS" | "MYGDONUS" | "MZM" | "TERMINUS" | "TPGW" | "TA" | "HOMER" | "SUPERHOMER" | "U2C" | "WCA" | "MSE" | "UNKNOWN"; mediaServerAddress?: string; errorDescription?: string; errorCode?: number; mediaErrorType?: | "NO_ERROR" | "DEVICE_ERROR" | "LOAD_LIBRARY_ERROR" | "MCS_SESSION_CONNECT_ERROR" | "CB_SESSION_CREATE_ERROR" | "NO_FRAME_DECODE_ERROR" | "NO_PACKET_RECV_ERROR" | "LOW_VOLUME_ERROR" | "INITIAL_MEMORY_ERROR" | "MAC_VIRTUAL_AUDIO_DRV_ERROR" | "MMP_SESSION_CONNECT_ERROR" | "MEDIA_PROCESS_CRASH_ERROR" | "HEARTBEAT_LOST_WITH_MEDIA_PROCESS_ERROR" | "MEDIA_SERVER_CONNECT_ERROR" | "LOCUS_SESSION_CONNECT_ERROR" | "NO_PACKET_SEND_ERROR" | "NETWORK_LOST_ERROR" | "MEDIA_NOT_AVAILABLE" | "FAIL_TO_OPEN_SHARE_DIALOG"; isJoinAtStart?: boolean; additionalProperties?: never; }; /** * Details of client connect session */ audioCallbackSession?: { mediaSessionType?: "AUDIO_CALLBACK" | "AUDIO_VOIP" | "DEVICE_CALLBACK" | "DEVICE_PAIRING" | "VIDEO"; isSuccess?: boolean; signalingServerType?: | "CB" | "CMS" | "CRC" | "HESIOD" | "LINUS" | "MCC" | "MCS" | "MES" | "MJS" | "MRS" | "MYGDONUS" | "MZM" | "TERMINUS" | "TPGW" | "TA" | "HOMER" | "SUPERHOMER" | "U2C" | "WCA" | "MSE" | "UNKNOWN"; signalingServerAddress?: string; mediaServerType?: | "CB" | "CMS" | "CRC" | "HESIOD" | "LINUS" | "MCC" | "MCS" | "MES" | "MJS" | "MRS" | "MYGDONUS" | "MZM" | "TERMINUS" | "TPGW" | "TA" | "HOMER" | "SUPERHOMER" | "U2C" | "WCA" | "MSE" | "UNKNOWN"; mediaServerAddress?: string; errorDescription?: string; errorCode?: number; mediaErrorType?: | "NO_ERROR" | "DEVICE_ERROR" | "LOAD_LIBRARY_ERROR" | "MCS_SESSION_CONNECT_ERROR" | "CB_SESSION_CREATE_ERROR" | "NO_FRAME_DECODE_ERROR" | "NO_PACKET_RECV_ERROR" | "LOW_VOLUME_ERROR" | "INITIAL_MEMORY_ERROR" | "MAC_VIRTUAL_AUDIO_DRV_ERROR" | "MMP_SESSION_CONNECT_ERROR" | "MEDIA_PROCESS_CRASH_ERROR" | "HEARTBEAT_LOST_WITH_MEDIA_PROCESS_ERROR" | "MEDIA_SERVER_CONNECT_ERROR" | "LOCUS_SESSION_CONNECT_ERROR" | "NO_PACKET_SEND_ERROR" | "NETWORK_LOST_ERROR" | "MEDIA_NOT_AVAILABLE" | "FAIL_TO_OPEN_SHARE_DIALOG"; isJoinAtStart?: boolean; additionalProperties?: never; }; /** * Details of client connect session */ devicePairingSession?: { mediaSessionType?: "AUDIO_CALLBACK" | "AUDIO_VOIP" | "DEVICE_CALLBACK" | "DEVICE_PAIRING" | "VIDEO"; isSuccess?: boolean; signalingServerType?: | "CB" | "CMS" | "CRC" | "HESIOD" | "LINUS" | "MCC" | "MCS" | "MES" | "MJS" | "MRS" | "MYGDONUS" | "MZM" | "TERMINUS" | "TPGW" | "TA" | "HOMER" | "SUPERHOMER" | "U2C" | "WCA" | "MSE" | "UNKNOWN"; signalingServerAddress?: string; mediaServerType?: | "CB" | "CMS" | "CRC" | "HESIOD" | "LINUS" | "MCC" | "MCS" | "MES" | "MJS" | "MRS" | "MYGDONUS" | "MZM" | "TERMINUS" | "TPGW" | "TA" | "HOMER" | "SUPERHOMER" | "U2C" | "WCA" | "MSE" | "UNKNOWN"; mediaServerAddress?: string; errorDescription?: string; errorCode?: number; mediaErrorType?: | "NO_ERROR" | "DEVICE_ERROR" | "LOAD_LIBRARY_ERROR" | "MCS_SESSION_CONNECT_ERROR" | "CB_SESSION_CREATE_ERROR" | "NO_FRAME_DECODE_ERROR" | "NO_PACKET_RECV_ERROR" | "LOW_VOLUME_ERROR" | "INITIAL_MEMORY_ERROR" | "MAC_VIRTUAL_AUDIO_DRV_ERROR" | "MMP_SESSION_CONNECT_ERROR" | "MEDIA_PROCESS_CRASH_ERROR" | "HEARTBEAT_LOST_WITH_MEDIA_PROCESS_ERROR" | "MEDIA_SERVER_CONNECT_ERROR" | "LOCUS_SESSION_CONNECT_ERROR" | "NO_PACKET_SEND_ERROR" | "NETWORK_LOST_ERROR" | "MEDIA_NOT_AVAILABLE" | "FAIL_TO_OPEN_SHARE_DIALOG"; isJoinAtStart?: boolean; additionalProperties?: never; }; /** * Details of client connect session */ deviceCallbackSession?: { mediaSessionType?: "AUDIO_CALLBACK" | "AUDIO_VOIP" | "DEVICE_CALLBACK" | "DEVICE_PAIRING" | "VIDEO"; isSuccess?: boolean; signalingServerType?: | "CB" | "CMS" | "CRC" | "HESIOD" | "LINUS" | "MCC" | "MCS" | "MES" | "MJS" | "MRS" | "MYGDONUS" | "MZM" | "TERMINUS" | "TPGW" | "TA" | "HOMER" | "SUPERHOMER" | "U2C" | "WCA" | "MSE" | "UNKNOWN"; signalingServerAddress?: string; mediaServerType?: | "CB" | "CMS" | "CRC" | "HESIOD" | "LINUS" | "MCC" | "MCS" | "MES" | "MJS" | "MRS" | "MYGDONUS" | "MZM" | "TERMINUS" | "TPGW" | "TA" | "HOMER" | "SUPERHOMER" | "U2C" | "WCA" | "MSE" | "UNKNOWN"; mediaServerAddress?: string; errorDescription?: string; errorCode?: number; mediaErrorType?: | "NO_ERROR" | "DEVICE_ERROR" | "LOAD_LIBRARY_ERROR" | "MCS_SESSION_CONNECT_ERROR" | "CB_SESSION_CREATE_ERROR" | "NO_FRAME_DECODE_ERROR" | "NO_PACKET_RECV_ERROR" | "LOW_VOLUME_ERROR" | "INITIAL_MEMORY_ERROR" | "MAC_VIRTUAL_AUDIO_DRV_ERROR" | "MMP_SESSION_CONNECT_ERROR" | "MEDIA_PROCESS_CRASH_ERROR" | "HEARTBEAT_LOST_WITH_MEDIA_PROCESS_ERROR" | "MEDIA_SERVER_CONNECT_ERROR" | "LOCUS_SESSION_CONNECT_ERROR" | "NO_PACKET_SEND_ERROR" | "NETWORK_LOST_ERROR" | "MEDIA_NOT_AVAILABLE" | "FAIL_TO_OPEN_SHARE_DIALOG"; isJoinAtStart?: boolean; additionalProperties?: never; }; /** * report when client crash */ crashReport?: { /** * data define for background noise removal event */ eventData?: { crashType?: "client" | "other" | "thirdparty" | "wme" | "mta"; processName?: string; moduleName?: string; threadInfo?: string; crashFrame?: string; crashStack?: string; exceptionType?: "unset" | "crash" | "freeze" | "disappear"; lastAction?: string; forTrace?: boolean; registerInfo?: string; extData?: string; additionalProperties?: never; }; additionalProperties?: never; }; clientCrashCallStack?: string; /** * Details of breakout session information, sent after end of breakout session */ breakoutSessionSummaryInfo?: { duration: number; subConferenceCount: number; totalAttendeeCount: number; participantCount: number; assignedparticipantCount: number; cohostCount: number; averageAttendeeCountPerSubConference: number; totalHostJoinedCount: number; isBoStarted: boolean; isBoEnabled: boolean; isPreAssigned: boolean; boStartedTimers: number; createType: "pre-meeting" | "in-meeting"; enableType: "pre-meeting" | "in-meeting"; additionalProperties?: never; }; breakoutSessionAction?: | "add" | "assign" | "ask-for-help" | "breakout-session-open" | "breakout-session-close" | "breakout-session-mute-all" | "breakout-session-unmute-all" | "broadcast-open" | "broadcast-send" | "cancel-automatic-close" | "create" | "delete" | "disable" | "dynamic-assign" | "dynamic-exchange" | "end" | "enable" | "exchange" | "join" | "leave" | "lock-all-sessions" | "lock-this-sessions" | "moveto" | "mute-all" | "mute-all-set" | "recreate" | "remove" | "rename" | "search" | "select-all" | "show-all-sessions" | "start" | "unmute-all" | "unlock-all-sessions" | "unlock-this-sessions" | "allow-leave-session" | "allow-join-session-later" | "auto-end-sessions" | "time-before-leave-session"; clientAction?: | "changeVolume" | "disableHardMute" | "enableHardMute" | "gesture" | "joinMeetingWithPairedDevice" | "muteAll" | "mutePairedDevice" | "muteSipDevice" | "reaction" | "requestUnmute" | "setLanguage" | "unifyRaiseHand" | "unmuteAll" | "unmutePairedDevice" | "unmuteSipDevice"; clientActionFrom?: | "actionBar" | "auto" | "breakoutAssignDialog" | "breakoutPopupDialog" | "fitMenu" | "hardMuteMoreOptionsDialog" | "initAction" | "mainMenu" | "plist" | "plistContextMenu" | "plistToolBar" | "videoThumbnail" | "muteAllAction" | "reactionPopupDialog" | "unmuteAllAction"; clientActionTime?: number; /** * Details of client action */ clientActionInfo?: { clientAction: | "changeVolume" | "disableHardMute" | "enableHardMute" | "gesture" | "joinMeetingWithPairedDevice" | "muteAll" | "mutePairedDevice" | "muteSipDevice" | "reaction" | "requestUnmute" | "setLanguage" | "unifyRaiseHand" | "unmuteAll" | "unmutePairedDevice" | "unmuteSipDevice"; actionFrom?: | "actionBar" | "auto" | "breakoutAssignDialog" | "breakoutPopupDialog" | "fitMenu" | "hardMuteMoreOptionsDialog" | "initAction" | "mainMenu" | "plist" | "plistContextMenu" | "plistToolBar" | "videoThumbnail" | "muteAllAction" | "reactionPopupDialog" | "unmuteAllAction"; actionRole?: "host" | "attendee" | "presenter" | "cohost" | "self"; duration?: number; fromValue?: string; toValue?: string; gestureType?: "clap" | "none" | "raiseHand" | "thumpUp" | "thumbDown"; languageAction?: | "openLanguageDialog" | "subscribeTransLanguage" | "unsubscribeTransLanguage" | "changeSpeakLanguage" | "transcriptTurnOnWebexAssistantDialog" | "transcriptTurnOffWebexAssistantDialog" | "transcriptTurnOnWebexAssistantMenu" | "transcriptTurn0ffWebexAssistantMenu" | "transcriptViewHighlightPanel" | "transcriptViewHighlightPanelViaCloseCaption" | "transcriptViewHighlightPanelViaPanelOption" | "transcriptViewHighlightPanelViaWebexAssistant" | "transcriptEnableCloseCaptionDialog" | "transcriptDisableCloseCaptionDialog" | "transcriptDisableCloseCaptionDialogForActiveCCOpen" | "transcriptDisableCloseCaptionDialogViaCCButton" | "transcriptDisableCloseCaptionDialogViaCCDialog" | "transcriptEnableCloseCaptionMenu" | "transcriptDisableCloseCaptionMenu" | "transcriptTabToCaptions" | "transcriptTabToHighlights" | "transcriptCreateHighlight" | "transcriptDeleteHighlightInHighlight" | "transcriptDeleteHighlightInCaptions" | "transcriptChangeFontSize" | "transcriptBackToDefaultPosition" | "transcriptChangeModeToDark" | "transcriptChangeModeToLight"; fromLanguage?: | "lan_af" | "lan_sq" | "lan_am" | "lan_ar" | "lan_hy" | "lan_az" | "lan_eu" | "lan_be" | "lan_bn" | "lan_bs" | "lan_bg" | "lan_ca" | "lan_ceb" | "lan_zh" | "lan_zh-TW" | "lan_co" | "lan_hr" | "lan_cs" | "lan_da" | "lan_nl" | "lan_en" | "lan_en-GB" | "lan_eo" | "lan_et" | "lan_fi" | "lan_fr" | "lan_fr-CA" | "lan_fy" | "lan_gl" | "lan_ka" | "lan_de" | "lan_el" | "lan_gu" | "lan_ht" | "lan_ha" | "lan_haw" | "lan_he" | "lan_hi" | "lan_hmn" | "lan_hu" | "lan_is" | "lan_ig" | "lan_id" | "lan_ga" | "lan_it" | "lan_ja" | "lan_jv" | "lan_kn" | "lan_kk" | "lan_km" | "lan_rw" | "lan_ko" | "lan_ku" | "lan_ky" | "lan_lo" | "lan_la" | "lan_lv" | "lan_lt" | "lan_lb" | "lan_mk" | "lan_mg" | "lan_ms" | "lan_ml" | "lan_mt" | "lan_mi" | "lan_mr" | "lan_mn" | "lan_my" | "lan_ne" | "lan_no" | "lan_ny" | "lan_or" | "lan_ps" | "lan_fa" | "lan_pl" | "lan_pt" | "lan_pa" | "lan_ro" | "lan_ru" | "lan_sm" | "lan_gd" | "lan_sr" | "lan_st" | "lan_sn" | "lan_sd" | "lan_si" | "lan_sk" | "lan_sl" | "lan_so" | "lan_es" | "lan_es-ES" | "lan_su" | "lan_sw" | "lan_sv" | "lan_tl" | "lan_tg" | "lan_ta" | "lan_tt" | "lan_te" | "lan_th" | "lan_tr" | "lan_tk" | "lan_uk" | "lan_ur" | "lan_ug" | "lan_uz" | "lan_vi" | "lan_cy" | "lan_xh" | "lan_yi" | "lan_yo" | "lan_zu"; toLanguage?: | "lan_af" | "lan_sq" | "lan_am" | "lan_ar" | "lan_hy" | "lan_az" | "lan_eu" | "lan_be" | "lan_bn" | "lan_bs" | "lan_bg" | "lan_ca" | "lan_ceb" | "lan_zh" | "lan_zh-TW" | "lan_co" | "lan_hr" | "lan_cs" | "lan_da" | "lan_nl" | "lan_en" | "lan_en-GB" | "lan_eo" | "lan_et" | "lan_fi" | "lan_fr" | "lan_fr-CA" | "lan_fy" | "lan_gl" | "lan_ka" | "lan_de" | "lan_el" | "lan_gu" | "lan_ht" | "lan_ha" | "lan_haw" | "lan_he" | "lan_hi" | "lan_hmn" | "lan_hu" | "lan_is" | "lan_ig" | "lan_id" | "lan_ga" | "lan_it" | "lan_ja" | "lan_jv" | "lan_kn" | "lan_kk" | "lan_km" | "lan_rw" | "lan_ko" | "lan_ku" | "lan_ky" | "lan_lo" | "lan_la" | "lan_lv" | "lan_lt" | "lan_lb" | "lan_mk" | "lan_mg" | "lan_ms" | "lan_ml" | "lan_mt" | "lan_mi" | "lan_mr" | "lan_mn" | "lan_my" | "lan_ne" | "lan_no" | "lan_ny" | "lan_or" | "lan_ps" | "lan_fa" | "lan_pl" | "lan_pt" | "lan_pa" | "lan_ro" | "lan_ru" | "lan_sm" | "lan_gd" | "lan_sr" | "lan_st" | "lan_sn" | "lan_sd" | "lan_si" | "lan_sk" | "lan_sl" | "lan_so" | "lan_es" | "lan_es-ES" | "lan_su" | "lan_sw" | "lan_sv" | "lan_tl" | "lan_tg" | "lan_ta" | "lan_tt" | "lan_te" | "lan_th" | "lan_tr" | "lan_tk" | "lan_uk" | "lan_ur" | "lan_ug" | "lan_uz" | "lan_vi" | "lan_cy" | "lan_xh" | "lan_yi" | "lan_yo" | "lan_zu"; reactionType?: | "celebrate" | "clap" | "haha" | "love" | "sad" | "smile" | "thumbUp" | "thumbDown" | "wow" | "collapse" | "disable" | "enable" | "disableGestures" | "enableGestures" | "expand" | "openMenu"; unifyRaiseHand?: "lowerHand" | "lowerAllHand" | "raiseHand"; additionalProperties?: never; }; clientEventType?: "normal-event" | "user-action"; /** * Audio background noise removal */ audioNoiseRemoval?: { /** * background noise removal action data */ actionData?: { bnrActionType: "turn-on-bnr" | "turn-off-bnr"; additionalProperties?: never; }; /** * background noise removal event data */ eventData?: { bnrEventType: "bnr-on" | "bnr-off"; additionalProperties?: never; }; additionalProperties?: never; }; /** * Details of client action */ gestureRecognition?: { supportedMachine?: boolean; gestureType?: "clap" | "none" | "raiseHand" | "thumpUp" | "thumbDown"; duration?: number; additionalProperties?: never; }; /** * post meeting hook report */ postMeetingHook?: { /** * data define for background noise removal action */ actionData?: { pmhActionType: "share" | "view-details" | "close"; pmhActionResult?: string; additionalProperties?: never; }; /** * data define for background noise removal event */ eventData?: { pmhEventType: "used" | "not-show-again"; additionalProperties?: never; }; additionalProperties?: never; }; breakoutSessionJoinType?: "any-one-can-join" | "auto" | "manual" | "preassign-rest"; breakoutSessionActionClickFrom?: | "actionbar" | "assign-dialog" | "auto" | "breakout-session-list" | "contextmenu" | "menu" | "plist" | "popup-dialog"; broadcastSendType?: | "all-sessions-all-participants" | "all-sessions-all-cohost-and-presenters" | "one-session-all-participants" | "one-session-one-participant"; breakoutSessionDialogOpenTime?: number; breakoutSessionDialogAssignTime?: number; /** * call embedded browser object result, if failed, will populate error at Error item */ embeddedBrowserObject?: { browserType: "IE" | "WebView2"; version?: string; callFrom?: string; additionalProperties?: never; }; /** * data define for download detail data */ downloadInfo?: { percentCompleted?: number; packageName?: string; timestamp?: string; clientDownloadFileCount?: number; clientDownloadSize?: number; clientDownloadTime?: number; clientDecompressTime?: number; CDNEnabled?: boolean; updateFlag?: "preMeeting" | "inMeeting" | "postMeeting"; epSP?: boolean; isEPUpdate?: boolean; spDifferent?: number; spVersionDelta?: number; deltaUpdate?: boolean; deltaListDownloadTime?: number; deltaPackageDownloadTime?: number; deltaCachePackageCopyTime?: number; deltaApplyTime?: number; deltaPackageUncompressTime?: number; deltaDuration?: number; deltaVersion?: string; deltaDownloadFullPackage?: boolean; deltaFileSize?: number; deltaUpdateEnabled?: boolean; deltaFullpackageDownloadEnabled?: boolean; deltaUpdateErrorType?: string; deltaUpdateSuccess?: string; deltaFullpackageDownloadVersion?: string; deltaFullpackageDownloadSuccess?: string; deltaUpdateCorrelationId?: string; deltaFullpackageDownloadCorrelationId?: string; deltaTargetVersion?: string; deltaLocalFullPackageVersions?: string; deltaUpdateFailReason?: string; deltaUpdateTimeStamp?: string; additionalProperties?: never; }; isInstallWebView2?: boolean; launchType?: "Cold" | "Hot" | "Warm"; loginType?: | "no-login" | "login-page" | "reuse-ci-token" | "reuse-site-token" | "login-ci" | "login-site" | "login-social" | "unverified-guest"; loginCrossSite?: boolean; crossBrowserLogin?: boolean; isMultiSiteUser?: boolean; /** * The metadata associated with the emitter of the event. This data is separate from the source metadata and must be emitted with every event. */ mediaQualityMetadata?: { peerReflexiveIP?: string; maskedPeerReflexiveIP?: string; remoteMediaIP?: string; maskedRemoteMediaIP?: string; /** * indicate user local ICE candidates IP type */ localIPType?: "IPTypeUnknown" | "IPv4Only" | "IPv6Only" | "DualIPType"; staticPerformanceLevel?: number; staticPerformanceScore?: number; processAverageCPU?: number; processAverageCPUWithTurbo?: number; processMaximumCPU?: number; systemAverageCPU?: number; systemAverageCPUWithTurbo?: number; systemAverageCPUTimeBased?: number; systemMaximumCPU?: number; systemMaximumCPUTimeBased?: number; systemAverageGPU?: number; systemMaximumGPU?: number; systemAverageVIC?: number; systemMaximumVIC?: number; systemAverageCPUPerfLoad?: number; systemMaximumCPUPerfLoad?: number; processAverageIdleWakeUps?: number; processMaximumIdleWakeUps?: number; processAveragePowerUsage?: number; processMaximumPowerUsage?: number; /** * this object defines the memory related fields that are tracked in media quality events and reports */ memoryUsage?: { processAverageMemoryUsage: number; processMaximumMemoryUsage: number; systemAverageMemoryUsage: number; systemMaximumMemoryUsage: number; processMaximumMemoryBytes: number; mainProcessMaximumMemoryBytes: number; systemTotalMemoryBytes?: number; osBitWidth: number; cpuBitWidth: number; additionalProperties?: never; }; /** * Indicates battery health. See https://developer.android.com/reference/android/os/BatteryManager for more information. */ batteryHealth?: "unknown" | "good" | "cold" | "overvoltage" | "overheat" | "unspecifiedfailure" | "dead"; /** * Provides visibility in charger type in use */ batteryPlugged?: "unknown" | "ac" | "usb" | "wireless" | "dock"; /** * Provides visibility into charging status */ batteryStatus?: "unknown" | "charging" | "discharging" | "notcharging" | "full"; /** * Battery temperature in celsius */ batteryTemperature?: number; /** * Provides visibility of customer experience in limited thermal headroom environments on Apple devices. See https://developer.apple.com/documentation/foundation/processinfo/thermalstate for more information. */ darwinThermalState?: number; androidThermalHeadroom?: number; /** * Indicates thermal status on Android devices. See https://developer.android.com/ndk/reference/group/thermal for more information. */ androidThermalStatus?: number; peripherals?: { name: "camera" | "microphone" | "speaker"; information?: string; driver?: string; errorCode?: string; subErrorCode?: string; captureFrameSize?: number; captureFps?: number; captureFrameworkType?: number; captureRawType?: number; deviceCapabilitiesTime?: number; connectionType?: {}; bluetoothMode?: {}; openDeviceCostTimeMilliSecond?: number; startCaptureCostTimeMilliSecond?: number; txSampleRate?: number; rxSampleRate?: number; isAAudioLowLatency?: number; isStartNDKFailed?: number; startPlaybackCostTimeMilliSecond?: number; changeCount?: number; /** * indicates capture device's system volume, between -1 and 100, -1 means invalid */ captureSystemVolume?: number; /** * indicates playback device's system volume, between -1 and 100, -1 means invalid */ playbackSystemVolume?: number; started?: boolean; sysAudioSEStatus?: number; isVolumeControlAvailable?: boolean; rawStreamStatus?: number; status?: string; initCaptureFrameworkType?: "unknown" | "dshow" | "mf" | "mfPrefer"; cameraRetried?: boolean; captureCameraType?: | "unknown" | "builtIn" | "aggregate" | "virtual" | "pci" | "usb" | "fireWire" | "bluetooth" | "hdmi" | "displayPort" | "airPlay" | "avb" | "thunderbolt" | "lineLevel" | "external" | "continuityCaptureWired" | "continuityCaptureWireless" | "audioRemote" | "iphoneCamera" | "deskViewCamera" | "virtualCamera" | "builtInMinijack"; captureCameraFailNum?: number; videoCaptureEnumTime?: number; additionalProperties?: never; }[]; /** * information object for the peripheral */ cameraInfo?: { name: "camera" | "microphone" | "speaker"; information?: string; driver?: string; errorCode?: string; subErrorCode?: string; captureFrameSize?: number; captureFps?: number; captureFrameworkType?: number; captureRawType?: number; deviceCapabilitiesTime?: number; connectionType?: {}; bluetoothMode?: {}; openDeviceCostTimeMilliSecond?: number; startCaptureCostTimeMilliSecond?: number; txSampleRate?: number; rxSampleRate?: number; isAAudioLowLatency?: number; isStartNDKFailed?: number; startPlaybackCostTimeMilliSecond?: number; changeCount?: number; /** * indicates capture device's system volume, between -1 and 100, -1 means invalid */ captureSystemVolume?: number; /** * indicates playback device's system volume, between -1 and 100, -1 means invalid */ playbackSystemVolume?: number; started?: boolean; sysAudioSEStatus?: number; isVolumeControlAvailable?: boolean; rawStreamStatus?: number; status?: string; initCaptureFrameworkType?: "unknown" | "dshow" | "mf" | "mfPrefer"; cameraRetried?: boolean; captureCameraType?: | "unknown" | "builtIn" | "aggregate" | "virtual" | "pci" | "usb" | "fireWire" | "bluetooth" | "hdmi" | "displayPort" | "airPlay" | "avb" | "thunderbolt" | "lineLevel" | "external" | "continuityCaptureWired" | "continuityCaptureWireless" | "audioRemote" | "iphoneCamera" | "deskViewCamera" | "virtualCamera" | "builtInMinijack"; captureCameraFailNum?: number; videoCaptureEnumTime?: number; additionalProperties?: never; }; /** * information object for the peripheral */ microphoneInfo?: { name: "camera" | "microphone" | "speaker"; information?: string; driver?: string; errorCode?: string; subErrorCode?: string; captureFrameSize?: number; captureFps?: number; captureFrameworkType?: number; captureRawType?: number; deviceCapabilitiesTime?: number; connectionType?: {}; bluetoothMode?: {}; openDeviceCostTimeMilliSecond?: number; startCaptureCostTimeMilliSecond?: number; txSampleRate?: number; rxSampleRate?: number; isAAudioLowLatency?: number; isStartNDKFailed?: number; startPlaybackCostTimeMilliSecond?: number; changeCount?: number; /** * indicates capture device's system volume, between -1 and 100, -1 means invalid */ captureSystemVolume?: number; /** * indicates playback device's system volume, between -1 and 100, -1 means invalid */ playbackSystemVolume?: number; started?: boolean; sysAudioSEStatus?: number; isVolumeControlAvailable?: boolean; rawStreamStatus?: number; status?: string; initCaptureFrameworkType?: "unknown" | "dshow" | "mf" | "mfPrefer"; cameraRetried?: boolean; captureCameraType?: | "unknown" | "builtIn" | "aggregate" | "virtual" | "pci" | "usb" | "fireWire" | "bluetooth" | "hdmi" | "displayPort" | "airPlay" | "avb" | "thunderbolt" | "lineLevel" | "external" | "continuityCaptureWired" | "continuityCaptureWireless" | "audioRemote" | "iphoneCamera" | "deskViewCamera" | "virtualCamera" | "builtInMinijack"; captureCameraFailNum?: number; videoCaptureEnumTime?: number; additionalProperties?: never; }; /** * information object for the peripheral */ speakerInfo?: { name: "camera" | "microphone" | "speaker"; information?: string; driver?: string; errorCode?: string; subErrorCode?: string; captureFrameSize?: number; captureFps?: number; captureFrameworkType?: number; captureRawType?: number; deviceCapabilitiesTime?: number; connectionType?: {}; bluetoothMode?: {}; openDeviceCostTimeMilliSecond?: number; startCaptureCostTimeMilliSecond?: number; txSampleRate?: number; rxSampleRate?: number; isAAudioLowLatency?: number; isStartNDKFailed?: number; startPlaybackCostTimeMilliSecond?: number; changeCount?: number; /** * indicates capture device's system volume, between -1 and 100, -1 means invalid */ captureSystemVolume?: number; /** * indicates playback device's system volume, between -1 and 100, -1 means invalid */ playbackSystemVolume?: number; started?: boolean; sysAudioSEStatus?: number; isVolumeControlAvailable?: boolean; rawStreamStatus?: number; status?: string; initCaptureFrameworkType?: "unknown" | "dshow" | "mf" | "mfPrefer"; cameraRetried?: boolean; captureCameraType?: | "unknown" | "builtIn" | "aggregate" | "virtual" | "pci" | "usb" | "fireWire" | "bluetooth" | "hdmi" | "displayPort" | "airPlay" | "avb" | "thunderbolt" | "lineLevel" | "external" | "continuityCaptureWired" | "continuityCaptureWireless" | "audioRemote" | "iphoneCamera" | "deskViewCamera" | "virtualCamera" | "builtInMinijack"; captureCameraFailNum?: number; videoCaptureEnumTime?: number; additionalProperties?: never; }; /** * This object defines the fields related to the CPU being used by the emitter of the event */ cpuInfo?: { description: string; numberOfCores: number; architecture: | "intel32" | "intel64" | "amd32" | "amd64" | "arm32" | "arm64" | "armv9" | "armv8" | "armv7" | "armv6" | "x86_64" | "x86_32" | "unknown"; staticPerformance?: string; clockSpeedGigaHertz?: number; additionalProperties?: never; }; /** * Thread level cpu performance insights */ cpuDataDetail?: { processesData?: {}[]; coresCpuData?: {}[]; coreVariance?: number; additionalProperties?: never; }; /** * This object defines the fields related to the GPU being used by the emitter of the event */ defaultGpuInfo?: { description: string; memoryMegaBytes: number; gpuVersion?: string; additionalProperties?: never; }; otherGpuInfo?: { description: string; memoryMegaBytes: number; gpuVersion?: string; additionalProperties?: never; }[]; /** * This object defines the fields related to the NPU being used by the emitter of the event */ npuInfo?: { description?: string; npuVersion?: string; memoryMegaBytes?: number; additionalProperties?: never; }; dpcRecord?: string[]; mediaLabels?: string[]; screenResolution?: number; screenWidth?: number; screenHeight?: number; appWindowSize?: number; appWindowHeight?: number; appWindowWidth?: number; meetingUserCount?: number; videoUserCount?: number; numScreens?: number; configuredBitrate?: number; configuredPixelRateMainVideo?: number; configuredPixelRateContentVideo?: number; /** * provisioning room type for CE devices */ roomType?: "Briefing" | "Classroom" | "Standard" | "PresenterAndAudience"; peopleCount?: number; /** * currently selected camera mode */ cameraMode?: | "Unknown" | "BestOverview" | "Closeup" | "Frames" | "GroupAndSpeaker" | "Desktop" | "Dynamic" | "Combined" | "Manual"; /** * type of crop/composition created by automatic framing on a video device */ cameraAppliedView?: { /** * name of the view */ viewName: "Overview" | "Closeup" | "Frames" | "OverlaidCloseup" | "Manual" | "Other"; /** * number of composed video panes (usually 1, but can be more in Frames view) */ numberOfVideoPanes: number; additionalProperties?: never; }; /** * This object tracks the evaluated bandwidth associated with Bandwidth Evaluator(MARI) */ evaluatedBandwidth?: { /** * The min bandwidth evaluated by the BW Evaluator (in bits per second) */ minBandwidth?: number; /** * The maximum bandwidth evaluated the BW Evaluator (in bits per second) */ maxBandwidth?: number; /** * The sum of bandwidth down adjustments (in bits per second) */ sumAdjustmentDown?: number; /** * The sum of bandwidth up adjustments (in bits per second) */ sumAdjustmentUp?: number; /** * Number of times bandwidth adjustment caused a change evaluated bandwidth */ countAdjustments?: number; /** * Number of times the Bandwidth Adjustment changed direction Up->Down/Down->Up */ countDirectionChange?: number; /** * Number of times the evaluated bandwidth was affected due to config change */ countConfigChange?: number; additionalProperties?: never; }; uiRenderMinimumFPS?: number; uiRenderMaximumFPS?: number; uiRenderAverageFPS?: number; /** * This object tracks TWCC report exchange(MARI) */ twccReports?: { /** * Number of RTP packets marked with TWSN */ packetsSentWithTwsn?: number; /** * Number of packets sent without TWSN */ packetsSentWithoutTwsn?: number; /** * Number of reports received */ reportsReceived?: number; /** * Number of reports lost */ reportsLost?: number; /** * Longest consecutive run of reports lost */ reportLossBurstLength?: number; /** * Number of packets not acknowledged due to loss of reports */ unacknowledgedPackets?: number; /** * Average bandwidth in kbps */ avgBandwidth?: number; /** * min bandwidth in interval (kbps) */ minBandwidth?: number; /** * max bandwidth in interval (kbps) */ maxBandwidth?: number; additionalProperties?: never; }; isCarbonAwareModeOn?: boolean; isCarbonAwareModeConfigured?: boolean; /** * Network infrastructure identification - uniquely identifies network elements (switches, WiFi APs, cell towers). */ networkInfrastructureInfo?: { /** * Friendly name of the network element (switch name, access point name, or cellular provider name). It can be empty example for wifi, the AP names can be hidden. */ elementName?: string; /** * ID is BSSID for WiFi- derived from AP's mac address, designed to be globally unique. ID is PLMN ID for Cellular- It is globally unique. ID is Chassis ID for Switch- derived from switch's mac address, designed to be globally unique. */ id: string; /** * LLDP Port ID or interface identifier on the switch or Service Set Identifier (WiFi network name) */ interfaceName?: string; additionalProperties?: never; }; additionalProperties?: never; }; sessionType?: | "AD_HOC" | "ADHOC_UNIFIED_SPACE_MEETING" | "ANSWERED_ELSEWHERE" | "BUTLER" | "CFNA" | "CMR_MEETING" | "DPC_CONTROL" | "EVENT_CENTER_MEETING" | "HALF_ZTM" | "JABBER" | "MEDIA" | "MS_TEAMS" | "NO_JOINS" | "REMOTE_ACCESS" | "SINGLE_PARTICIPANT" | "SIP_CALL" | "SIP_MEETING" | "SPACE_MEETING" | "SPACE_SHARE" | "SPARK_CALL" | "SPARK_MEETING" | "SPARK_SIP_CALL" | "SPARK_SIP_MEETING" | "UNIFIED_SPACE_MEETING" | "UNKNOWN" | "WHITEBOARD_ONLY_SHARE" | "WIRELESS_SHARE" | "ZTM"; /** * Aggregated information for mercury latency metric */ mercuryLatencyAggregates?: { mercuryEventCount?: number; timeOffsetWithMercury?: number; minTotalLatency?: number; avgTotalLatency?: number; maxTotalLatency?: number; maxTransmitDuration?: number; maxDispatchDuration?: number; maxSortDuration?: number; maxParseDuration?: number; maxMergeDuration?: number; additionalProperties?: never; }; /** * Maximum latency information during a meting */ mercuryMaxLatency?: { transmitDuration?: number; dispatchDuration?: number; sortDuration?: number; parseDuration?: number; mergeDuration?: number; additionalProperties?: never; }; /** * This object tracks the call setup time and call setup failure time. All delay attributes are in milliseconds. */ wxcCallingDelay?: { /** * provisional100Time - SDPReadyTime (outbounding only) */ inviteSentTo100Trying?: number; /** * provisional18xTime - provisional100Time */ sip100TryingToAlert?: number; /** * applyAudioSDPTime - provisional18xTime */ alertToAnswered?: number; /** * The fastest event's time between (firstAudioPacketReceivedTime, wmeReceivedAudioTime) - applyAudioSDPTime */ answerToPacketRecv?: number; /** * min(firstAudioPacketReceivedTime, wmeReceivedAudioTime) - joinCallTime - alertToAnswered (for Outgoing) OR min(firstAudioPacketReceivedTime, wmeReceivedAudioTime) (for Incoming, call setup time is from user press accept button to the first audio data received) */ callSetupTime?: number; /** * When the incoming call accept handling is started Or when the user initiate outgoing call. */ joinCallTime?: number; /** * When the Mobile client start the SIP registration. */ connectSipTime?: number; /** * When the Mobile client sip registration is ready. */ sipConnectedTime?: number; /** * When the client start initialization of the WME to get the required data for Audio SDP. */ startAudioSDPSetupTime?: number; /** * WME provided the required data for the SDP (Audio codecs, Start the listener and return the port, Acquire ICE candidates for audio). */ audioSDPReadyTime?: number; /** * When the client start initialisation of the WME to get the required data for Video SDP. */ startVideoSDPSetupTime?: number; /** * WME provided the required data for the SDP (Video codecs, Start the listener and return the port, Acquire ICE candidates for video). */ videoSDPReadyTime?: number; /** * Equal to startAudioSDPSetupTime */ startSDPSetupTime?: number; /** * The bigger one between audioSDPReadyTime and videoSDPReadyTime. */ SDPReadyTime?: number; /** * Before wmeTrack->start() for the local audio track. */ startLocalAudioTrackTime?: number; /** * After wmeTrack->start() for the local audio track. */ localAudioTrackStartedTime?: number; /** * Before wmeTrack->start() for the remote audio track. */ startRemoteAudioTrackTime?: number; /** * After wmeTrack->start() for the local audio track. */ remoteAudioTrackStartedTime?: number; /** * Before wmeTrack->start() for the local video track. */ startLocalVideoTrackTime?: number; /** * After wmeTrack->start() for the local video track. */ localVideoTrackStartedTime?: number; /** * Before wmeTrack->start() for the remote video track. */ startRemoteVideoTrackTime?: number; /** * After wmeTrack->start() for the remote video track. */ remoteVideoTrackStartedTime?: number; /** * Client send SIP INVITE. For outgoing and incoming calls on mobile and outgoing only on desktop. */ startSipInviteTime?: number; /** * 100 Trying is received */ provisional100Time?: number; /** * 180 or 183 provisional response is received. */ provisional18xTime?: number; /** * For outgoing calls 200OK with SDP is received. For incoming calls ACK of local SDP is received. Then all data from the SDP is provided to the WME. */ applyAudioSDPTime?: number; /** * Happens right after applyAudioSDPTime completes. */ applyVideoSDPTime?: number; /** * The time when the call is successfully established. */ callIsConnectedTime?: number; /** * This field represents the fastest event's time between first captured buffer and wmeSentAudioTime. Note, Almost all the time the value won't be changed. It will be changed only in case of delay of capture start and WME sends data which is not coming from microphone. */ firstAudioPacketSentTime?: number; /** * First audio packet from the remote side is received and send to the sound interface. */ firstAudioPacketReceivedTime?: number; /** * First packet is captured from the camera and sent to the remote side. */ firstVideoPacketSentTime?: number; /** * First packet is received from the remote side and sent to the renderer. */ firstVideoPacketReceivedTime?: number; /** * The data is coming from WME API OnSessionStatus(mediaType = WmeSessionType_Audio, status = WmeSession_Sent) */ wmeSentAudioTime?: number; /** * The data is coming from WME API OnSessionStatus(mediaType = WmeSessionType_Audio, status = WmeSession_Received) */ wmeReceivedAudioTime?: number; /** * The data is coming from WME API OnSessionStatus(mediaType = WmeSessionType_Video, status = WmeSession_Sent) */ wmeSentVideoTime?: number; /** * The data is coming from WME API OnSessionStatus(mediaType = WmeSessionType_Video, status = WmeSession_Received) */ wmeReceivedVideoTime?: number; /** * iOS specific. The audio session is activated. */ iosAudioSessionActiveTime?: number; /** * If the call was started in background then when the user unlocks the screen the time is recorded. At this time the camera will be opened. Meaningful only on iOS. */ switchedToForegroundTime?: number; /** * The time between call join and call close. */ callDuration?: number; /** * WmeMediaEngineEventType_Audio_DeviceStatus_Capture_Started */ audioCaptureStartedTime?: number; /** * WmeMediaEngineEventType_Audio_DeviceStatus_Playback_Started */ audioPlaybackStartedTime?: number; /** * WmeMediaEngineEventType_Audio_DeviceStatus_Capture_DataAvailable - first time */ firstCaptureDataAvailable?: number; /** * WmeMediaEngineEventType_Audio_DeviceStatus_Playback_DataAvailable - first time */ firstPlaybackDataAvailable?: number; /** * Timestamp in milliseconds of first VAD (voice activity detection) detected for capturer */ audioCaptureFirstSpeechTime?: number; /** * Timestamp in milliseconds of first WmeMediaEngineEventType_Audio_Processing_NotifyFirstSpeech. First time when VAD (voice activity detection) event is sent from WME for playback */ audioPlaybackFirstSpeechTime?: number; /** * Timestamp in milliseconds when audio capture restart algorithm is performed. The restart is triggered by client App if certain conditions are met */ audioCaptureRestartTime?: number; /** * Timestamp in milliseconds when audio playback restart algorithm is performed. The restart is triggered by client App if certain conditions are met. */ audioPlaybackRestartTime?: number; additionalProperties?: never; }; /** * Call type indication */ wxcCallMetadata?: { bwcCallId?: number; bwcCallType?: "Sip" | "Xsi" | "HandledElsewhere" | "Other"; callAcceptInBackground?: boolean; callNegotiatedAsVideo?: boolean; callOrigin?: string; callType?: string; clientMode?: string; dnsMode?: number; endReason?: string; endWarning?: string; hostCPUUsageDuringCall?: number; hostCPUUsageDuringCallSetup?: number; iceEnabled?: boolean; iosAcceptCallImmediately?: boolean; ipv6Negotiated?: boolean; isContactCenterCall?: boolean; isSipProxyIpv6?: boolean; mainCPUUsageDuringCall?: number; mainCPUUsageDuringCallSetup?: number; mediaCPUUsageDuringCall?: number; mediaCPUUsageDuringCallSetup?: number; mediaCreateOnCallCreate?: boolean; mediaStartOnCallCreate?: boolean; memMainProcessAvg?: number; memMainProcessMax?: number; memMediaProcessAvg?: number; memMediaProcessMax?: number; sipServiceIndex?: number; wxcCallId?: string; additionalProperties?: never; }; /** * Details of Media info */ mediaDetailInfo?: { /** * This object tracks the Audio device error statistics */ mediaDeviceErrorStatistics?: { /** * Number of WmeMediaEngineEventType_Audio_DeviceStatus_Capture_NoDataTimeout during the call */ captureInteruptionCount?: number; /** * Number of WmeMediaEngineEventType_Audio_DeviceStatus_Capture_DataAvailable during the call after WmeMediaEngineEventType_Audio_DeviceStatus_Capture_NoDataTimeout */ captureRecoveryCount?: number; /** * Timestamp in milliseconds of first WmeMediaEngineEventType_Audio_DeviceStatus_Capture_NoDataTimeout */ firstCaptureNoDataTimeout?: number; /** * Timestamp in milliseconds of first WmeMediaEngineEventType_Audio_DeviceStatus_Capture_DataAvailable after WmeMediaEngineEventType_Audio_DeviceStatus_Capture_NoDataTimeout */ firstCaptureNoDataRecovery?: number; /** * Minimum milliseconds between WmeMediaEngineEventType_Audio_DeviceStatus_Capture_DataAvailable and WmeMediaEngineEventType_Audio_DeviceStatus_Capture_NoDataTimeout */ minCaptureNoDataDuration?: number; /** * Maximum milliseconds between WmeMediaEngineEventType_Audio_DeviceStatus_Capture_DataAvailable and WmeMediaEngineEventType_Audio_DeviceStatus_Capture_NoDataTimeout */ maxCaptureNoDataDuration?: number; /** * Timestamp in milliseconds of WmeMediaEngineEventType_Audio_DeviceStatus_Capture_StartTimeout */ startCaptureTimeout?: number; /** * Number of WmeMediaEngineEventType_Audio_DeviceStatus_Playback_NoDataTimeout during the call */ playbackInteruptionCount?: number; /** * Number of WmeMediaEngineEventType_Audio_DeviceStatus_Playback_DataAvailable during the call after WmeMediaEngineEventType_Audio_DeviceStatus_Playback_NoDataTimeout */ playbackRecoveryCount?: number; /** * Timestamp in milliseconds of first WmeMediaEngineEventType_Audio_DeviceStatus_Playback_NoDataTimeout */ firstPlaybackNoDataTimeout?: number; /** * Timestamp in milliseconds of first WmeMediaEngineEventType_Audio_DeviceStatus_Playback_DataAvailable after WmeMediaEngineEventType_Audio_DeviceStatus_Playback_NoDataTimeout */ firstPlaybackNoDataRecovery?: number; /** * Minimum milliseconds between WmeMediaEngineEventType_Audio_DeviceStatus_Playback_DataAvailable and WmeMediaEngineEventType_Audio_DeviceStatus_Playback_NoDataTimeout */ minPlaybackNoDataDuration?: number; /** * Maximum milliseconds between WmeMediaEngineEventType_Audio_DeviceStatus_Playback_DataAvailable and WmeMediaEngineEventType_Audio_DeviceStatus_Playback_NoDataTimeout */ maxPlaybackNoDataDuration?: number; /** * Timestamp in milliseconds of WmeMediaEngineEventType_Audio_DeviceStatus_Playback_StartTimeout */ startPlaybackTimeout?: number; additionalProperties?: never; }; additionalProperties?: never; }; /** * Push notification processing metrics for incoming calls */ pushNotificationProcessing?: { bwcApproveSipConnectionTime?: number; bwcInitializationTime?: number; bwcPushNotificationReceivedTime?: number; canAnswerCallTime?: number; callPresentedToUserTime?: number; fcmArrivalProcessingDuration?: number; processPushNotificationTime?: number; servicesReadyTime?: number; startCoreFrameworkTime?: number; additionalProperties?: never; }; oauthProvider?: string; /** * monitor how much Client CPU and memory increase when an action started, such as start share, VBG */ clientPerformanceInfo?: { /** * Webex related process properties like name, CPU, memory. */ preStartShare?: { Webex?: {}; WebexHelperMedia?: {}; wasHost?: {}; wmlHost?: {}; WindowServer?: {}; kernel_task?: {}; replayd?: {}; dwm?: {}; system?: {}; top1CPUProcess?: {}; top2CPUProcess?: {}; top3CPUProcess?: {}; top4CPUProcess?: {}; top5CPUProcess?: {}; additionalProperties?: never; }; /** * Webex related process properties like name, CPU, memory. */ postStartShare?: { Webex?: {}; WebexHelperMedia?: {}; wasHost?: {}; wmlHost?: {}; WindowServer?: {}; kernel_task?: {}; replayd?: {}; dwm?: {}; system?: {}; top1CPUProcess?: {}; top2CPUProcess?: {}; top3CPUProcess?: {}; top4CPUProcess?: {}; top5CPUProcess?: {}; additionalProperties?: never; }; additionalProperties?: never; }; webClientPreload?: boolean; forceLogin?: boolean; /** * Call survey trigger data for client.call.survey.trigger event. This object only applies when callingServiceType is CUCM. */ callSurveyTriggerData?: { /** * Unique identifier for the call. */ callId: string; /** * Duration of the call in seconds. */ callDuration: number; /** * Indicates whether the user is a DI (Dedicated Instance) user. */ isDIUser: boolean; additionalProperties?: never; }; onboardingState?: string; /** * captures details of Smart Launcher Function in MJP (Meeting Join Page) that controls the type of client launched for meeting join */ smartLauncherInfo?: { enabled?: boolean; launchStrategy?: string; launchMethod?: "auto-launch-webapp" | "detect-native-auto-launch-webapp" | "detect-native"; additionalProperties?: never; }; dialogType?: DialogType; isAutomatedUser?: boolean; telemetryOptOut?: "automatic" | "manual"; /** * User activation state reported from the browser's navigator.userActivation API */ userActivation?: { hasBeenActive?: boolean; isActive?: boolean; additionalProperties?: never; }; /** * Resource types and their permission status and reason when permission is not granted */ privacyAndSecurityPermission?: { /** * Permission status and reason for a resource */ camera?: { /** * status of device permission given to client application */ status?: "DENIED" | "FAILED" | "GRANTED" | "REQUESTING" | "UNKNOWN"; /** * reason for permission change in privacy and security permission object as given to client application. This is used in PrivacyAndSecurityPermission library */ reason?: "ALREADY_IN_USE" | "DENIED_BY_USER" | "DENIED_BY_SYSTEM" | "NO_DEVICE_FOUND" | "UNKNOWN"; additionalProperties?: never; }; /** * Permission status and reason for a resource */ microphone?: { /** * status of device permission given to client application */ status?: "DENIED" | "FAILED" | "GRANTED" | "REQUESTING" | "UNKNOWN"; /** * reason for permission change in privacy and security permission object as given to client application. This is used in PrivacyAndSecurityPermission library */ reason?: "ALREADY_IN_USE" | "DENIED_BY_USER" | "DENIED_BY_SYSTEM" | "NO_DEVICE_FOUND" | "UNKNOWN"; additionalProperties?: never; }; /** * Permission status and reason for a resource */ contentShare?: { /** * status of device permission given to client application */ status?: "DENIED" | "FAILED" | "GRANTED" | "REQUESTING" | "UNKNOWN"; /** * reason for permission change in privacy and security permission object as given to client application. This is used in PrivacyAndSecurityPermission library */ reason?: "ALREADY_IN_USE" | "DENIED_BY_USER" | "DENIED_BY_SYSTEM" | "NO_DEVICE_FOUND" | "UNKNOWN"; additionalProperties?: never; }; additionalProperties?: never; }; /** * Leave State - Set in some client.call.leave events. Indicates if the leave state is a leave attempt, or if the leave attempt was cancelled */ leaveState?: "attempt" | "cancel"; isCatalogOverride?: boolean; additionalProperties?: never; } | { canProceed?: boolean; state?: string; mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard" | "gamestate"; /** * Details associated with a share floor type */ floorType?: { name: "DEFAULT" | "EMBEDDED_APP" | "OTHER"; priority?: {}; additionalProperties?: never; }; csi?: number; /** * media capability for both transmit and receive */ mediaCapabilities?: { /** * explicit indication of media capabilities. true=supported */ tx: { audio: boolean; video: boolean; share: boolean; share_audio: boolean; whiteboard: boolean; gamestate?: boolean; additionalProperties?: never; }; /** * explicit indication of media capabilities. true=supported */ rx: { audio: boolean; video: boolean; share: boolean; share_audio: boolean; whiteboard: boolean; gamestate?: boolean; additionalProperties?: never; }; additionalProperties?: never; }; mediaLines?: { clusterName?: string; connectionType?: "none" | "direct" | "proxy"; direction: "sendrecv" | "sendonly" | "recvonly" | "inactive"; errorCode?: number; extension?: {}; failureDescription?: string; failureReason?: "network" | "transport" | "rejected" | "timeout" | "notstarted" | "succeeded"; iceMangled?: boolean; localIP?: string; localNetworkPrefix?: string; localPort?: number; mediaLineData?: {}; mediaType: "audio" | "video" | "share" | "share_audio" | "whiteboard" | "gamestate" | "all"; protocol: "udp" | "tcp" | "xtls" | "unknown"; recvRespTime?: string; remoteIP?: string; remotePort?: number; sentReqTime?: string; status?: "succeeded" | "in-progress" | "failed"; tlsDomain?: string; transactionId?: string; ufrag?: string; additionalProperties?: never; }[]; /** * allows client to specify media preferences */ clientMediaPreferences?: { preferTranscoding: boolean; additionalProperties?: never; }; pstnAudioType?: "dial-in" | "dial-out"; /** * Base type for the various identifiers used to connect the dots. * In general, these should be populated whenever possible. Subtypes may make a particular key required. * */ identifiers: { aggregatedBreakoutMoveId?: string; attendeeId?: string; participantId?: string; breakoutGroupId?: string; breakoutMoveId?: string; breakoutTrackingId?: string; breakoutSessionId?: string; browserId?: string; ciExchangeTokenUrl?: string; confluenceId?: string; correlationId?: string; /** * Set of identifiers dedicated to CPaaS clients * In general, these should be populated whenever possible. Subtypes may make a particular key required. * */ cpaasIdentifiers?: { imiTenantId: string; devClientId: string; imiServiceId: string; imiAppId: string; sessionId: string; sessionInstanceId: string; additionalProperties?: never; }; csdmDeviceUrl?: string; destinationBreakoutSessionId?: string; destinationLocusSessionId?: string; destinationLocusUrl?: string; destinationVenueId?: string; deviceId?: string; globalMeetingId?: string; installationId?: string; webexMeetingUUID?: string; ivrCallId?: string; ivrDialogId?: string; ivrId?: string; callId?: string; pairCallId?: string; llmWebsocketUrl?: string; locusCluster?: string; locusId?: string; locusJoinUrl?: string; locusSessionId?: string; locusStartTime?: string; locusUrl?: string; machineId?: string; mediaAgentAlias?: string; mediaAgentGroupId?: string; meetClusterName?: string; meetingInstanceId?: string; meetingLookupUrl?: string; meetingOrgId?: string; metricServiceUrl?: string; mercuryWebsocketUrl?: string; msteamsTenantGuid?: string; msteamsConferenceId?: string; msteamsMeetingId?: string; mtid?: string; oauth2ClientId?: string; orgId?: string; provisionalCorrelationId?: string; roomId?: string; sessionCorrelationId?: string; sharedMediaId?: string; sipCallId?: string; sipSessionId?: { local?: string; remote?: string; additionalProperties?: never; }; sipUri?: string; subConfId?: string; tenantId?: string; trackingId?: string; userId?: string; venueId?: string; venueUrl?: string; whiteboardUrl?: string; wdmDeviceRegistrationUrl?: string; webexConferenceId?: number; webexClusterName?: string; webexConferenceIdStr?: string; webexDataCenter?: string; webexGuestId?: number; webexMeetingId?: number; webexNodeId?: number; webexSiteId?: number; webexSiteName?: string; webexSiteUuid?: string; webexUserId?: number; webexWebDomain?: string; recordingId?: string; clientCorrelationId?: string; idForEndpointAB?: string; customerOrgId?: string; additionalProperties?: never; }; homeDataCenter?: string; success?: boolean; isTranscoded?: boolean; isGatewayed?: boolean; isComposed?: boolean; /** * determine how the events are processed as well as how the reports are aggregated and sliced */ registrationMode?: "SIP" | "Cloud" | "CloudAware"; /** * protocols used to help determine how the events are processed as well as how the reports are aggregated and sliced */ protocol?: "SIP" | "H323" | "H323_IP" | "Locus" | "WebRTC"; /** * The underlying service provider of the call. */ meetingPlatform?: "MsTeams" | "GoogleMeet" | "Zoom" | "Webex"; labels?: string[]; labelsStr?: string; webexServiceType?: "MC" | "EC" | "SC" | "TC" | "AA" | "RA" | "NBR" | "WRF" | "HOL"; /** * this defines the sub service type */ webexSubServiceType?: | "PMR" | "Event" | "Training" | "ScheduleMeeting" | "ScheduledMeeting" | "Webcast" | "Webinar" | "LargeScaleWebinar" | "others"; ivrDialogType?: | "MEDIA_ON_HOLD" | "ANNOUNCEMENT" | "TONE" | "COLLECT_PIN" | "PROMPT" | "MEDIA_SERVICE_AGENT" | "COLLECT"; ivrDialogResult?: | "SUCCESS" | "FAILURE" | "HOST_PIN_MATCH" | "GUEST_PIN_MATCH" | "PANELIST_PIN_MATCH" | "NO_MATCH" | "INVALID_PIN"; callType?: | "VIDEO_DIALIN" | "VIDEO_DIALOUT" | "CASCADE" | "HYBRID_CASCADE" | "PSTN_SIP" | "PSTN_DIALIN" | "PSTN_DIALOUT" | "PSTN_ONLY_DIALIN" | "PSTN_ONLY_DIALOUT" | "AUDIO_DIALIN" | "AUDIO_ONLY_DIALIN" | "H323" | "H323_IP" | "SIP_ENTERPRISE" | "SIP_MOBILE" | "SIP_NATIONAL" | "SIP_INTERNATIONAL" | "SIP_EMERGENCY" | "SIP_OPERATOR" | "SIP_SHORTCODE" | "SIP_TOLLFREE" | "SIP_PREMIUM" | "SIP_URI" | "SIP_INBOUND" | "UNKNOWN" | "ZTM" | "SIP_MEETING" | "SIP_DIALOUT" | "SIP_ONLY_DIALOUT"; eventData?: {}; derivedSipClientType?: | "SIP_CE_SINGLE_SCREEN" | "SIP_CE_MULTI_SCREEN" | "SIP_JABBER" | "SIP_TIP_SINGLE_SCREEN" | "SIP_TIP_THREE_SCREEN" | "SIP_PSTN" | "SIP_OTHER" | "SIP_WEBEX_CASCADE" | "SIP_NONE"; /** * this defines the major client types */ derivedClientType?: | "MEETING_CENTER" | "EVENT_CENTER" | "TRAINING_CENTER" | "TEAMS_CLIENT" | "TEAMS_DEVICE" | "TEAMS_SHARE" | "SIP" | "RECORDING" | "CLOUD_AWARE_SIP" | "TEAMS_WXC_CLIENT" | "WXC_CLIENT" | "WXC_DEVICE" | "WEBEX_JS_SDK" | "VOICEA_CLIENT" | "CISCO_SIP_GW" | "WEBEX_SDK" | "CPAAS_THIRD_PARTY_SDK" | "WXC_THIRD_PARTY" | "WXCC" | "TEAMS_PHONE" | "WEBEX_RELAY"; /** * this defines the sub types of clients */ derivedSubClientType?: | "AUTOMOTIVE_APP" | "BROWSER_EXTENSION" | "DESKTOP_APP" | "DESKTOP_APP_VDI" | "DEVICE_CURRENT" | "DEVICE_LEGACY_2020" | "HOLOGRAM_HEADSET_APP" | "HVDI_APP" | "MIXED" | "MOBILE_APP" | "MOBILE_NETWORK" | "PAGE" | "TEAMS_DEVICE" | "VDI_APP" | "WEB_APP" | "PHONE_NOVUM" | "PHONE_ESPRESSO" | "PHONE_BUMBLEBEE" | "SIP" | "SIP_PSTN"; meetingRole?: "PANELIST" | "ATTENDEE"; serverRole?: | "CONFERENCE" | "TRANSCODER" | "WHITEBOARD_INJECTOR" | "MS_TEAMS_CONFERENCE" | "RECORDING" | "GATEWAY" | "GATEWAY_CLIENT_SIDE" | "UNKNOWN" | "HOLOGRAM_RENDER" | "EDGE"; reconnect?: boolean; retryCount?: number; meetSimple?: boolean; /** * represents media quality status report such as no media or drop out */ mediaStatus?: { mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard"; mediaSuccess?: boolean; shareType?: | "cb-normal-share" | "ce-airplay-share" | "ce-direct-share" | "ce-gui-loopback-share" | "ce-input-source-share" | "ce-input-source-share-hdmi" | "ce-input-source-share-usbc" | "ce-jpg-share" | "ce-miracast-share" | "mcs-normal-share" | "mcs-normal-audio-share" | "mcs-hfps-share" | "mcs-hfps-audio-share"; isTransmitter?: boolean; audioJoinType?: | "phone-call-in" | "phone-call-back" | "voip" | "device-call-back" | "never-join-audio" | "tried-but-never-join"; /** * indicates transport type used */ transportType?: "UDP" | "TCP" | "xTLS" | "TLS"; additionalData?: {}; /** * information object for the peripheral */ mediaDeviceInfo?: { name: "camera" | "microphone" | "speaker"; information?: string; driver?: string; errorCode?: string; subErrorCode?: string; captureFrameSize?: number; captureFps?: number; captureFrameworkType?: number; captureRawType?: number; deviceCapabilitiesTime?: number; connectionType?: {}; bluetoothMode?: {}; openDeviceCostTimeMilliSecond?: number; startCaptureCostTimeMilliSecond?: number; txSampleRate?: number; rxSampleRate?: number; isAAudioLowLatency?: number; isStartNDKFailed?: number; startPlaybackCostTimeMilliSecond?: number; changeCount?: number; /** * indicates capture device's system volume, between -1 and 100, -1 means invalid */ captureSystemVolume?: number; /** * indicates playback device's system volume, between -1 and 100, -1 means invalid */ playbackSystemVolume?: number; started?: boolean; sysAudioSEStatus?: number; isVolumeControlAvailable?: boolean; rawStreamStatus?: number; status?: string; initCaptureFrameworkType?: "unknown" | "dshow" | "mf" | "mfPrefer"; cameraRetried?: boolean; captureCameraType?: | "unknown" | "builtIn" | "aggregate" | "virtual" | "pci" | "usb" | "fireWire" | "bluetooth" | "hdmi" | "displayPort" | "airPlay" | "avb" | "thunderbolt" | "lineLevel" | "external" | "continuityCaptureWired" | "continuityCaptureWireless" | "audioRemote" | "iphoneCamera" | "deskViewCamera" | "virtualCamera" | "builtInMinijack"; captureCameraFailNum?: number; videoCaptureEnumTime?: number; additionalProperties?: never; }; additionalProperties?: never; }; shareInstanceId?: string; ipVersion?: "IPv4" | "IPv6" | "Dual"; isTransmitter?: boolean; shareDuration?: number; stopReason?: string; shareStartReason?: string; hologramStreamId?: string; /** * represents all of the properities that could cause delay during media setup process. */ audioSetupDelay?: { floorReqSentReceived?: number; floorRespSentReceived?: number; mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard"; txReqFloorGranted?: number; txSessionCreateConfirm?: number; txApeEnrollConfirm?: number; txUIDelay?: number; txScreenCaptureDelay?: number; txScreenCaptureDelayReasonCode?: number; txShareStartOverallDelay?: number; floorGranted2tx1stPacketSendDelay?: number; rx1stPacket2RenderDelay?: number; rxGranted2RenderDelay?: number; rxFailFrameNumB4Success?: number; e2eFirstFrameDelay?: number; CBSessionRespToLocusFloorGrantDelay?: number; CBShareReceiveToServerShareTransmitDelay?: number; CBShareReceiveToTPGWFirstKeyFrameDelay?: number; /** * phrased HTTP timing */ floorRequestHttpTiming?: { connect?: number; dnsLookup?: number; sendRequest?: number; compressRequest?: number; receiveResponse?: number; extractJson?: number; verifyCert?: number; refreshToken?: number; additionalProperties?: never; }; TPGWFirstKeyFrameToServerShareTransmitDelay?: number; MCSSessionActivateToLocusFloorGrantDelay?: number; ServerShareInitiateToLocusFloorGrantDelay?: number; LocusFloorGrantToCBSessionStartDelay?: number; ServerShareReceiveToTPGWFirstKeyFrameDelay?: number; LocusFloorGrantToTPGWFloorGrantDelay?: number; LocusFloorGrantToReceiverNotificationDelay?: number; CBShareSessionRespDelay?: number; LocusShareFloorGrantRespDelay?: number; LocusFloorReqToRespDelay?: number; ServerShareFloorGrantRespDelay?: number; joinRespRxStart?: number; joinRespTxStart?: number; maxRemoteLossRate?: number; media2SignalDelay?: number; warholDownloadTime?: number; contentDownloadTime?: number; boardCreationTime?: number; totalBoardServiceRespDelay?: number; additionalProperties?: never; }; /** * represents all of the properities that could cause delay during media setup process. */ videoSetupDelay?: { floorReqSentReceived?: number; floorRespSentReceived?: number; mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard"; txReqFloorGranted?: number; txSessionCreateConfirm?: number; txApeEnrollConfirm?: number; txUIDelay?: number; txScreenCaptureDelay?: number; txScreenCaptureDelayReasonCode?: number; txShareStartOverallDelay?: number; floorGranted2tx1stPacketSendDelay?: number; rx1stPacket2RenderDelay?: number; rxGranted2RenderDelay?: number; rxFailFrameNumB4Success?: number; e2eFirstFrameDelay?: number; CBSessionRespToLocusFloorGrantDelay?: number; CBShareReceiveToServerShareTransmitDelay?: number; CBShareReceiveToTPGWFirstKeyFrameDelay?: number; /** * phrased HTTP timing */ floorRequestHttpTiming?: { connect?: number; dnsLookup?: number; sendRequest?: number; compressRequest?: number; receiveResponse?: number; extractJson?: number; verifyCert?: number; refreshToken?: number; additionalProperties?: never; }; TPGWFirstKeyFrameToServerShareTransmitDelay?: number; MCSSessionActivateToLocusFloorGrantDelay?: number; ServerShareInitiateToLocusFloorGrantDelay?: number; LocusFloorGrantToCBSessionStartDelay?: number; ServerShareReceiveToTPGWFirstKeyFrameDelay?: number; LocusFloorGrantToTPGWFloorGrantDelay?: number; LocusFloorGrantToReceiverNotificationDelay?: number; CBShareSessionRespDelay?: number; LocusShareFloorGrantRespDelay?: number; LocusFloorReqToRespDelay?: number; ServerShareFloorGrantRespDelay?: number; joinRespRxStart?: number; joinRespTxStart?: number; maxRemoteLossRate?: number; media2SignalDelay?: number; warholDownloadTime?: number; contentDownloadTime?: number; boardCreationTime?: number; totalBoardServiceRespDelay?: number; additionalProperties?: never; }; /** * represents all of the properities that could cause delay during media setup process. */ shareSetupDelay?: { floorReqSentReceived?: number; floorRespSentReceived?: number; mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard"; txReqFloorGranted?: number; txSessionCreateConfirm?: number; txApeEnrollConfirm?: number; txUIDelay?: number; txScreenCaptureDelay?: number; txScreenCaptureDelayReasonCode?: number; txShareStartOverallDelay?: number; floorGranted2tx1stPacketSendDelay?: number; rx1stPacket2RenderDelay?: number; rxGranted2RenderDelay?: number; rxFailFrameNumB4Success?: number; e2eFirstFrameDelay?: number; CBSessionRespToLocusFloorGrantDelay?: number; CBShareReceiveToServerShareTransmitDelay?: number; CBShareReceiveToTPGWFirstKeyFrameDelay?: number; /** * phrased HTTP timing */ floorRequestHttpTiming?: { connect?: number; dnsLookup?: number; sendRequest?: number; compressRequest?: number; receiveResponse?: number; extractJson?: number; verifyCert?: number; refreshToken?: number; additionalProperties?: never; }; TPGWFirstKeyFrameToServerShareTransmitDelay?: number; MCSSessionActivateToLocusFloorGrantDelay?: number; ServerShareInitiateToLocusFloorGrantDelay?: number; LocusFloorGrantToCBSessionStartDelay?: number; ServerShareReceiveToTPGWFirstKeyFrameDelay?: number; LocusFloorGrantToTPGWFloorGrantDelay?: number; LocusFloorGrantToReceiverNotificationDelay?: number; CBShareSessionRespDelay?: number; LocusShareFloorGrantRespDelay?: number; LocusFloorReqToRespDelay?: number; ServerShareFloorGrantRespDelay?: number; joinRespRxStart?: number; joinRespTxStart?: number; maxRemoteLossRate?: number; media2SignalDelay?: number; warholDownloadTime?: number; contentDownloadTime?: number; boardCreationTime?: number; totalBoardServiceRespDelay?: number; additionalProperties?: never; }; /** * represents all of the properities that could cause delay during media setup process. */ shareAudioSetupDelay?: { floorReqSentReceived?: number; floorRespSentReceived?: number; mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard"; txReqFloorGranted?: number; txSessionCreateConfirm?: number; txApeEnrollConfirm?: number; txUIDelay?: number; txScreenCaptureDelay?: number; txScreenCaptureDelayReasonCode?: number; txShareStartOverallDelay?: number; floorGranted2tx1stPacketSendDelay?: number; rx1stPacket2RenderDelay?: number; rxGranted2RenderDelay?: number; rxFailFrameNumB4Success?: number; e2eFirstFrameDelay?: number; CBSessionRespToLocusFloorGrantDelay?: number; CBShareReceiveToServerShareTransmitDelay?: number; CBShareReceiveToTPGWFirstKeyFrameDelay?: number; /** * phrased HTTP timing */ floorRequestHttpTiming?: { connect?: number; dnsLookup?: number; sendRequest?: number; compressRequest?: number; receiveResponse?: number; extractJson?: number; verifyCert?: number; refreshToken?: number; additionalProperties?: never; }; TPGWFirstKeyFrameToServerShareTransmitDelay?: number; MCSSessionActivateToLocusFloorGrantDelay?: number; ServerShareInitiateToLocusFloorGrantDelay?: number; LocusFloorGrantToCBSessionStartDelay?: number; ServerShareReceiveToTPGWFirstKeyFrameDelay?: number; LocusFloorGrantToTPGWFloorGrantDelay?: number; LocusFloorGrantToReceiverNotificationDelay?: number; CBShareSessionRespDelay?: number; LocusShareFloorGrantRespDelay?: number; LocusFloorReqToRespDelay?: number; ServerShareFloorGrantRespDelay?: number; joinRespRxStart?: number; joinRespTxStart?: number; maxRemoteLossRate?: number; media2SignalDelay?: number; warholDownloadTime?: number; contentDownloadTime?: number; boardCreationTime?: number; totalBoardServiceRespDelay?: number; additionalProperties?: never; }; /** * represents all of the properities that could cause delay during media setup process. */ whiteboardSetupDelay?: { floorReqSentReceived?: number; floorRespSentReceived?: number; mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard"; txReqFloorGranted?: number; txSessionCreateConfirm?: number; txApeEnrollConfirm?: number; txUIDelay?: number; txScreenCaptureDelay?: number; txScreenCaptureDelayReasonCode?: number; txShareStartOverallDelay?: number; floorGranted2tx1stPacketSendDelay?: number; rx1stPacket2RenderDelay?: number; rxGranted2RenderDelay?: number; rxFailFrameNumB4Success?: number; e2eFirstFrameDelay?: number; CBSessionRespToLocusFloorGrantDelay?: number; CBShareReceiveToServerShareTransmitDelay?: number; CBShareReceiveToTPGWFirstKeyFrameDelay?: number; /** * phrased HTTP timing */ floorRequestHttpTiming?: { connect?: number; dnsLookup?: number; sendRequest?: number; compressRequest?: number; receiveResponse?: number; extractJson?: number; verifyCert?: number; refreshToken?: number; additionalProperties?: never; }; TPGWFirstKeyFrameToServerShareTransmitDelay?: number; MCSSessionActivateToLocusFloorGrantDelay?: number; ServerShareInitiateToLocusFloorGrantDelay?: number; LocusFloorGrantToCBSessionStartDelay?: number; ServerShareReceiveToTPGWFirstKeyFrameDelay?: number; LocusFloorGrantToTPGWFloorGrantDelay?: number; LocusFloorGrantToReceiverNotificationDelay?: number; CBShareSessionRespDelay?: number; LocusShareFloorGrantRespDelay?: number; LocusFloorReqToRespDelay?: number; ServerShareFloorGrantRespDelay?: number; joinRespRxStart?: number; joinRespTxStart?: number; maxRemoteLossRate?: number; media2SignalDelay?: number; warholDownloadTime?: number; contentDownloadTime?: number; boardCreationTime?: number; totalBoardServiceRespDelay?: number; additionalProperties?: never; }; isFocus?: boolean; processingDelay?: number; shareResourceType?: | "APPLICATION_OR_WINDOW" | "CAMERA" | "DEFAULT" | "EMBEDDED_APP" | "FILE" | "MOBILE_FILE" | "MOBILE_SCREEN_MIRRORING" | "SCREEN"; shareResourceName?: string; shareType?: | "cb-normal-share" | "ce-airplay-share" | "ce-direct-share" | "ce-gui-loopback-share" | "ce-input-source-share" | "ce-input-source-share-hdmi" | "ce-input-source-share-usbc" | "ce-jpg-share" | "ce-miracast-share" | "mcs-normal-share" | "mcs-normal-audio-share" | "mcs-hfps-share" | "mcs-hfps-audio-share"; isShareBeingTakenOver?: boolean; floorBeneficiaryUpdated?: boolean; meetingJoinedTime?: string; /** * join phase of event */ meetingJoinPhase?: "pre-join" | "join" | "in-meeting"; meetingScheduledTime?: string; seconds2StartTime?: number; e2eeKeyEpoch?: number; e2eeDecompressRatio?: number; keyResponses?: { gotKeyTime?: number; useKeyTime?: number; cacheKeyTime?: number; additionalProperties?: never; }[]; e2eeVersion?: "E2EEV1" | "E2EEV2" | "E2EEV3" | "E2EEV4" | "E2EEV4_PLUS" | "E2EEV4_B" | "E2EEV5"; isZeroTrust?: boolean; /** * Version of SFrame in use. */ sframeVersion?: "SFRAMEV1" | "SFRAMEV2"; isConvergedArchitectureEnabled?: boolean; isCustomBrowser?: boolean; callingServiceType?: "CUCM" | "WEBEXCALLING" | "BROADWORKS" | "LOCUS" | "BROADCLOUDCARRIER"; supplementaryMediaSessionType?: "DirectShare"; isPaired?: boolean; inLobby?: boolean; isVIPMeeting?: boolean; webexAppEntrypoint?: string; firstParticipant?: boolean; isImmersiveShare?: boolean; /** * Request/Response Time for Internal Services / Clients */ registeredTimestamps?: { locusCreateConfluenceRequestTime?: string; locusCreateConfluenceResponseTime?: string; locusCreateVenueRequestTime?: string; locusCreateVenueResponseTime?: string; interstitialWindowLaunchedTime?: string; additionalProperties?: never; }; skipInterstitialWindow?: boolean; callDurationSecs?: number; connectionDurationSecs?: number; lobbyType?: string; callDirection?: "ORIGINATING" | "TERMINATING"; /** * Details associated with a breakout move */ breakout?: { moveType?: "between_breakout" | "to_breakout" | "to_main"; trigger?: "assignment_changed" | "client_initiated" | "session_ended" | "session_started"; startState?: "joined" | "lobby"; endState?: "joined" | "lobby"; additionalProperties?: never; }; /** * Latency values associated with breakout session */ breakoutLatency?: { clientBreakoutMoveReqJoinResp?: number; boBreakoutMoveProcessed?: number; boBreakoutMoveResp?: number; boLocusBreakoutMoveResp?: number; locusBreakoutMoveResp?: number; orpheusConfluenceMoveReqResp?: number; additionalProperties?: never; }; /** * two-way whiteboard related info */ whiteboard?: { action?: "open" | "create"; type?: "whiteboard" | "annotation"; capability?: "one_way" | "two_way"; granted?: "one_way" | "two_way"; additionalProperties?: never; }; /** * ROAP message details */ roap?: { type?: | "ANSWER" | "ERROR" | "OFFER" | "OFFER_REQUEST" | "OFFER_RESPONSE" | "OK" | "OKAY" | "TURN_DISCOVERY_REQUEST" | "TURN_DISCOVERY_RESPONSE"; messageType?: | "ANSWER" | "ERROR" | "OFFER" | "OFFER_REQUEST" | "OFFER_RESPONSE" | "OK" | "OKAY" | "TURN_DISCOVERY_REQUEST" | "TURN_DISCOVERY_RESPONSE"; error?: string; duration?: number; seq?: number; additionalProperties?: never; }; /** * Pstn Carrier Infos */ pstnCarrierInfo?: { cic?: string; carrierName?: string; ucreDnsSrvs?: string[]; additionalProperties?: never; }; pstnAudioCallType?: "PSTN" | "CCA_E" | "CCA_SP" | "EDGE_AUDIO" | "CCA_S" | "VMN_AUDIO"; l2sipCallbackUrl?: string; ivrDialingStatusOriginator?: "L2SIP" | "CLOUD_PROXY" | "CARRIER" | "UNIDENTIFIED"; cic?: string; carrierName?: string; originator?: string; ucreDnsSrvs?: string[]; ivrServiceUcreAttempts?: number; antiFraudPolicyType?: string; antiFraudBlocked?: boolean; sipResponseCode?: | "100_Trying" | "183_Ringing" | "200_Ok" | "404_NotFound" | "407_ProxyAuthRequired" | "486_BusyHere" | "503_ServiceUnavailable" | "606_NotAcceptable"; /** * details of scheduling information */ schedulingInfo?: { /** * this defines calendar type for scheduling */ calendarType?: "exchange_online" | "exchange_onprem" | "google" | "other" | "webex"; /** * this defines meeting categories for scheduling */ meetingCategory?: "AdhocUSM" | "Instant" | "Scheduled" | "ScheduledPMR" | "ScheduledUSM" | "SpaceMeetingV1"; /** * this defines where the meeting was scheduled from */ scheduledFrom?: | "ADDIN_O365" | "ADDIN_ONPREM" | "ADHOC_USM" | "AT_WEBEX_GOOGLE" | "AT_WEBEX_MSFT" | "AT_MEET_GOOGLE" | "AT_MEET_MSFT" | "GOOGLE_ADDON" | "INSTANT_MEETING" | "OTHER" | "PT" | "PUBLIC_API" | "TEAMS_CLIENT" | "TEAMS_CLIENT_CROSS_LAUNCH" | "UNIFIED_PAGE" | "WEBEX_PAGE"; /** * this defines meeting categories for scheduling */ schedulingOperationType?: "prepare" | "create" | "update" | "delete"; additionalProperties?: never; }; /** * details of setting information */ settingInfo?: { /** * this defines where the type of Setting being modified/updated */ settingType: "AUDIO_VIDEO" | "EMAIL_TEMPLATE" | "GENERAL" | "PMR" | "RECORDING" | "SCHEDULING" | "WEBEX_SITE"; additionalProperties?: never; }; sessionJoinCount?: number; /** * indicates transport type used */ transportType?: "UDP" | "TCP" | "xTLS" | "TLS"; joinFlowVersion?: "NewFTE" | "Other"; locale?: string; accessNumber?: string; isVVipMeeting?: boolean; /** * Login-related information. */ loginInfo?: { loginType?: | "user-hub" | "control-hub" | "meeting-site" | "global-sign-in-page" | "web-client" | "native-client"; method?: "idbroker" | "enterprise" | "social"; grantType?: "client-credential" | "authorization-code" | "scope-reduction"; /** * Sign-in Time */ signInDelay?: { signInTime?: number; additionalProperties?: never; }; signInSignUpType?: "sign-in" | "sign-up"; userFound?: boolean; additionalProperties?: never; }; isPrivateMeeting?: boolean; /** * Low Latency Mercury latency measurements */ llmLatency?: { clientLLMDatachannelResponseTime?: number; clientLLMWebSocketConnectTime?: number; additionalProperties?: never; }; /** * Sync Latency measurements. Expected to be sent in client.locus.sync.complete and locus.sync.sent events that could be triggered in a converged webinar session */ syncLatency?: { randomBackoffTime?: number; hashtreePrepTime?: number; hashtreeProcessingTime?: number; hashtreeResponseTime?: number; syncPrepTime?: number; syncResponseTime?: number; syncProcessingTime?: number; syncMessageReceiveTime?: number; totalTime?: number; additionalProperties?: never; }; /** * Low Latency Mercury related information. */ llmInfo?: { dataSet?: "main" | "atd-active" | "atd-unmuted"; additionalProperties?: never; }; remoteAgent?: string; name: | "addin.scheduling.request" | "addin.scheduling.response" | "appapi.scheduling.request" | "appapi.scheduling.response" | "breakout.breakout-session.move.initiated" | "breakout.breakout-session.move.processed" | "breakout.breakout-session.move.request" | "breakout.breakout-session.move.response" | "breakout.locus.breakout-session.move.request" | "breakout.locus.breakout-session.move.response" | "calendar.scheduling.request" | "calendar.scheduling.response" | "cascade.created" | "cb.cmr.meeting.initiated" | "cb.cmr.meeting.started" | "cb.lookup.url.response" | "cb.meeting.info.request" | "cb.meeting.join.response" | "cb.share.session.response" | "cca.scheduling.request" | "cca.scheduling.response" | "ccc.scheduling.request" | "ccc.scheduling.response" | "givr.poros.connect" | "givr.poros.verification" | "givr.sip.refer.request" | "givr.sip.refer.response" | "idbroker.authorize.request" | "idbroker.authorize.response" | "idbroker.client-credential.request" | "idbroker.client-credential.response" | "idbroker.direct-authorize.request" | "idbroker.direct-authorize.response" | "idbroker.cloud-reduced-scope.request" | "idbroker.cloud-reduced-scope.response" | "idbroker.exchange-token.request" | "idbroker.exchange-token.response" | "idbroker.kms-reduced-scope.request" | "idbroker.kms-reduced-scope.response" | "ivr.antifraud.query" | "ivr.calliope.confluence.creation.request" | "ivr.calliope.confluence.creation.response" | "ivr.calliope.confluence.script-interruption.request" | "ivr.calliope.confluence.script-interruption.response" | "ivr.calliope.venue.creation.request" | "ivr.calliope.venue.creation.response" | "ivr.dialog.begin" | "ivr.dialog.end" | "ivr.givr.attendeeid.validation" | "ivr.givr.meetinginfo.query" | "ivr.ivr.attendeeid.validation" | "ivr.join.request" | "ivr.join.response" | "ivr.l2sip.call.request" | "ivr.l2sip.call.response" | "ivr.l2sip.call.transfer" | "ivr.l2sip.createmedia.request" | "ivr.l2sip.createmedia.response" | "ivr.l2sip.dialing.status" | "ivr.l2sip.sipinfo.request" | "ivr.l2sip.sipinfo.callback" | "ivr.l2sip.terminate.request" | "ivr.l2sip.terminate.response" | "ivr.leave.request" | "ivr.leave.response" | "ivr.locus.cancel.request" | "ivr.locus.cancel.response" | "ivr.locus.connect.request" | "ivr.locus.connect.response" | "ivr.locus.connect.status.update" | "ivr.locus.handover.request" | "ivr.locus.handover.response" | "ivr.locus.query" | "ivr.locus.url.lookup" | "ivr.mrs.accessnumber.validation" | "ivr.mrs.meetinginfo.instanceid.query" | "ivr.mrs.meetinginfo.query" | "ivr.mrs.pcn.query" | "ivr.mrs.routingprofile.query" | "ivr.mrs.usersummary.query" | "ivr.notify.request" | "ivr.notify.response" | "ivr.pstn.carrier.info" | "j2ee.scheduling.request" | "j2ee.scheduling.response" | "l2sip.ivr.call.request" | "l2sip.ivr.call.response" | "l2sip.ivr.createmedia.request" | "l2sip.ivr.createmedia.response" | "locus.breakout-session.move.request" | "locus.breakout-session.move.response" | "locus.call.summary" | "locus.correlation-id.replaced" | "locus.decline.response" | "locus.device.state-change" | "locus.disconnected-client" | "locus.host.joined" | "locus.intent.delete" | "locus.ivr.begin" | "locus.ivr.end" | "locus.join.authorized" | "locus.join.request" | "locus.join.response" | "locus.leave.response" | "locus.lobby.enter" | "locus.lobby.left" | "locus.lobby.moved-to-meeting" | "locus.lobby.pin-required" | "locus.lookup.url.response" | "locus.media.connected" | "locus.media.muted" | "locus.media.request" | "locus.media.response" | "locus.media.unmuted" | "locus.meeting-bridge.cancel" | "locus.meeting-bridge.initiated" | "locus.meeting-bridge.terminated" | "locus.meeting.ended" | "locus.migrate" | "locus.poros.call.connected" | "locus.dial.status.update" | "locus.sessionid.conferenceid.map" | "locus.share.calliope.floor-granted.request" | "locus.share.calliope.floor-released.request" | "locus.share.floor-granted.local" | "locus.share.floor-released.local" | "locus.share.floor-steal.local" | "locus.share.floor-granted.request" | "locus.sync.sent" | "mbs.scheduling.request" | "mbs.scheduling.response" | "mbs.setting.request" | "mbs.setting.response" | "mcs.cascade.join" | "mcs.cascade.leave" | "mcs.media.session.started" | "mcc.meeting.created" | "mcc.meeting.info.request" | "mcs.meeting.info.response" | "mcs.share.session.activated" | "media.server.cascade.initiated" | "media.server.leave" | "media.server.cascade.disconnected" | "mercury.message.sent" | "mes.join.request" | "mrs.get-site-url.request" | "mrs.get-site-url.response" | "ngpage.setting.start" | "ngpage.setting.end" | "ngservice.mrs.get-site-url.request" | "ngservice.mrs.get-site-url.response" | "ngservice.idbroker.authorize.request" | "ngservice.idbroker.authorize.response" | "ngservice.oauth.get-session-ticket.request" | "ngservice.oauth.get-session-ticket.response" | "ngservice.scheduling.request" | "ngservice.scheduling.response" | "ngservice.setting.request" | "ngservice.setting.response" | "oauth.get-ci-login-url.request" | "oauth.get-ci-login-url.response" | "oauth.get-session-ticket.request" | "oauth.get-session-ticket.response" | "orpheus.cascade.create.request" | "orpheus.confluence.allocated" | "orpheus.confluence.move.response" | "orpheus.confluence.update" | "orpheus.discovery.clusters" | "poros.dial.status.update" | "poros.givr.call.connect.end" | "poros.givr.call.connect.start" | "poros.givr.call.inquiry.request" | "poros.givr.call.inquiry.response" | "poros.givr.call.provision.request" | "poros.givr.call.provision.response" | "poros.locus.connect.request" | "poros.locus.connect.response" | "publicapi.scheduling.request" | "publicapi.scheduling.response" | "sbs.setting.request" | "sbs.setting.response" | "server.breakout-session.join.response" | "server.breakout-session.move.request" | "server.breakout-session.move.response" | "server.cascade.initiated" | "server.confluence.move.response" | "server.keyframe.request" | "server.lobby-media.rx.start" | "server.lobby-media.tx.start" | "server.media.alert.info" | "server.media.capabilities.negotiated" | "server.media.rx.start" | "server.media.rx.stop" | "server.media.tx.start" | "server.media.tx.stop" | "server.media.render.start" | "server.meeting.data-prepared" | "server.meeting.docshow.response" | "server.meeting.gpcparameter.response" | "server.meetinginfo.response" | "server.meeting.initiated" | "server.meeting.validated" | "server.reconnect.initiated" | "server.roap-message.received" | "server.roap-message.sent" | "server.share.bridge.floor-requested.failed" | "server.share.floor-grant.request" | "server.share.floor-granted.local" | "server.share.floor-released.local" | "server.share.stopped" | "server.u2c.response" | "server.wca.response" | "sip.bye.rx" | "sip.bye.response.tx" | "sip.cancel.response.rx" | "sip.cancel.tx" | "sip.info.tx" | "sip.info.response.rx" | "sip.invite.response.rx" | "sip.invite.response.tx" | "sip.invite.rx" | "sip.invite.tx" | "sip.notify.rx" | "sip.notify.response.tx" | "sip.refer.tx" | "sip.refer.response.rx" | "tpgw.share.first.keyframe.recv" | "tpgw.share.floor-granted.local" | "notification.sent" | "server.hologram.initiated" | "server.hologram.stopped" | "xmlapi.scheduling.request" | "xmlapi.scheduling.response" | "meetingcontainer.floor.grant.request" | "meetingcontainer.floor.grant.response"; errors?: { fatal: boolean; category: "signaling" | "media" | "network" | "other" | "expected"; errorDescription?: string; errorCode?: number; errorCodeStr?: string; httpCode?: number; errorCodeExt1?: number; errorData?: {}; rawErrorMessage?: string; mediaDeviceErrors?: string; name: "timeout" | "unauthorized" | "downstream-failure" | "upstream-failure" | "other"; component?: string; additionalProperties?: never; }[]; /** * media quality error report such as no media or drop out */ serviceMediaError?: { mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard"; mediaFailureType?: "noMedia" | "mediaDrop" | "mediaEvent"; isDropAtStart?: boolean; isJMF?: boolean; txError?: | "NO_ERROR" | "DEVICE_ERROR" | "LOAD_LIBRARY_ERROR" | "MCS_SESSION_CONNECT_ERROR" | "CB_SESSION_CREATE_ERROR" | "NO_FRAME_DECODE_ERROR" | "NO_PACKET_RECV_ERROR" | "LOW_VOLUME_ERROR" | "INITIAL_MEMORY_ERROR" | "MAC_VIRTUAL_AUDIO_DRV_ERROR" | "MMP_SESSION_CONNECT_ERROR" | "MEDIA_PROCESS_CRASH_ERROR" | "HEARTBEAT_LOST_WITH_MEDIA_PROCESS_ERROR" | "MEDIA_SERVER_CONNECT_ERROR" | "LOCUS_SESSION_CONNECT_ERROR" | "NO_PACKET_SEND_ERROR" | "NETWORK_LOST_ERROR" | "MEDIA_NOT_AVAILABLE" | "FAIL_TO_OPEN_SHARE_DIALOG"; rxError?: | "NO_ERROR" | "DEVICE_ERROR" | "LOAD_LIBRARY_ERROR" | "MCS_SESSION_CONNECT_ERROR" | "CB_SESSION_CREATE_ERROR" | "NO_FRAME_DECODE_ERROR" | "NO_PACKET_RECV_ERROR" | "LOW_VOLUME_ERROR" | "INITIAL_MEMORY_ERROR" | "MAC_VIRTUAL_AUDIO_DRV_ERROR" | "MMP_SESSION_CONNECT_ERROR" | "MEDIA_PROCESS_CRASH_ERROR" | "HEARTBEAT_LOST_WITH_MEDIA_PROCESS_ERROR" | "MEDIA_SERVER_CONNECT_ERROR" | "LOCUS_SESSION_CONNECT_ERROR" | "NO_PACKET_SEND_ERROR" | "NETWORK_LOST_ERROR" | "MEDIA_NOT_AVAILABLE" | "FAIL_TO_OPEN_SHARE_DIALOG"; txDeviceErrorCode?: number; rxDeviceErrorCode?: number; sessionConnectErrorCode?: number; firstDropTime?: string; totalDropCount?: number; failureDuration?: number; txMoreError?: string; rxMoreError?: string; totalUserWhenCBStartError?: number; sessionConnectExtErrorCode?: number; sessionConnectErrorType?: "unknown" | "MCC_error" | "MCS_error" | "Tahoe_error"; txSystemErrorCode?: number; rxSystemErrorCode?: number; errorDetails?: {}; additionalProperties?: never; }; trigger?: "client-initiated" | "timeout" | "signaling" | "other"; sessionType?: | "AD_HOC" | "ADHOC_UNIFIED_SPACE_MEETING" | "ANSWERED_ELSEWHERE" | "BUTLER" | "CFNA" | "CMR_MEETING" | "DPC_CONTROL" | "EVENT_CENTER_MEETING" | "HALF_ZTM" | "JABBER" | "MEDIA" | "MS_TEAMS" | "NO_JOINS" | "REMOTE_ACCESS" | "SINGLE_PARTICIPANT" | "SIP_CALL" | "SIP_MEETING" | "SPACE_MEETING" | "SPACE_SHARE" | "SPARK_CALL" | "SPARK_MEETING" | "SPARK_SIP_CALL" | "SPARK_SIP_MEETING" | "UNIFIED_SPACE_MEETING" | "UNKNOWN" | "WHITEBOARD_ONLY_SHARE" | "WIRELESS_SHARE" | "ZTM"; device?: { deviceId?: string; deviceJoinType?: string; devicePairingType?: string; deviceType?: string; deviceURL?: string; isPersonalDevice?: boolean; modelNumber?: string; productName?: string; tempSipUri?: string; additionalProperties?: never; }; deviceState?: "idle" | "idle-observed" | "joined" | "joined-observing"; disconnectReason?: | "all_participants_left" | "answered_elsewhere" | "busy" | "call_max_duration" | "callback_cancel" | "callback_disconnect" | "cascade_connect_timeout" | "collect_dialog_failure" | "collect_pin_dialog_failure" | "dnd" | "duplicate_call" | "forbidden" | "forced" | "host_session_limit_exceeded" | "inactive" | "intent_canceled" | "intent_expired" | "invalid_join_time" | "invalid_pin" | "ivr_expired" | "leave_pstn_only_host" | "leave_transfer_host" | "lobby_expired" | "media_moved" | "media_released" | "meeting_ended" | "meeting_full" | "meeting_locked" | "no_host" | "not_acceptable" | "not_found" | "observed_left" | "one_to_one_call_cleanup" | "operation_limit_exceeded" | "other" | "resource_declined" | "resource_left" | "sip_host_left" | "unknown" | "unreachable" | "waiting_for_mps_end_meeting_timeout"; /** * Base type for the various identifiers used to connect the dots. * In general, these should be populated whenever possible. Subtypes may make a particular key required. * */ newIdentifiers?: { aggregatedBreakoutMoveId?: string; attendeeId?: string; participantId?: string; breakoutGroupId?: string; breakoutMoveId?: string; breakoutTrackingId?: string; breakoutSessionId?: string; browserId?: string; ciExchangeTokenUrl?: string; confluenceId?: string; correlationId?: string; /** * Set of identifiers dedicated to CPaaS clients * In general, these should be populated whenever possible. Subtypes may make a particular key required. * */ cpaasIdentifiers?: { imiTenantId: string; devClientId: string; imiServiceId: string; imiAppId: string; sessionId: string; sessionInstanceId: string; additionalProperties?: never; }; csdmDeviceUrl?: string; destinationBreakoutSessionId?: string; destinationLocusSessionId?: string; destinationLocusUrl?: string; destinationVenueId?: string; deviceId?: string; globalMeetingId?: string; installationId?: string; webexMeetingUUID?: string; ivrCallId?: string; ivrDialogId?: string; ivrId?: string; callId?: string; pairCallId?: string; llmWebsocketUrl?: string; locusCluster?: string; locusId?: string; locusJoinUrl?: string; locusSessionId?: string; locusStartTime?: string; locusUrl?: string; machineId?: string; mediaAgentAlias?: string; mediaAgentGroupId?: string; meetClusterName?: string; meetingInstanceId?: string; meetingLookupUrl?: string; meetingOrgId?: string; metricServiceUrl?: string; mercuryWebsocketUrl?: string; msteamsTenantGuid?: string; msteamsConferenceId?: string; msteamsMeetingId?: string; mtid?: string; oauth2ClientId?: string; orgId?: string; provisionalCorrelationId?: string; roomId?: string; sessionCorrelationId?: string; sharedMediaId?: string; sipCallId?: string; sipSessionId?: { local?: string; remote?: string; additionalProperties?: never; }; sipUri?: string; subConfId?: string; tenantId?: string; trackingId?: string; userId?: string; venueId?: string; venueUrl?: string; whiteboardUrl?: string; wdmDeviceRegistrationUrl?: string; webexConferenceId?: number; webexClusterName?: string; webexConferenceIdStr?: string; webexDataCenter?: string; webexGuestId?: number; webexMeetingId?: number; webexNodeId?: number; webexSiteId?: number; webexSiteName?: string; webexSiteUuid?: string; webexUserId?: number; webexWebDomain?: string; recordingId?: string; clientCorrelationId?: string; idForEndpointAB?: string; customerOrgId?: string; additionalProperties?: never; }; pstnDialStatus?: | "DIALING" | "RINGING" | "CONNECTED" | "CONFIRMING" | "NEGOTIATING" | "TRANSFERRING" | "SUCCESS" | "FAILURE" | "BUSY" | "NOANSWER" | "DECLINED" | "CANCELLED" | "HUNGUP" | "BLOCKED"; messageType?: "paired-device-join" | "locus-active" | "incoming-call"; responseCode?: number; ivrDialogState?: "DIALOGUE_ACTIVE" | "DIALOGUE_IN_PROGRESS" | "DIALOGUE_COMPLETE" | "DIALOGUE_ERROR"; ccpShareInstanceId?: string; wbxShareInstanceId?: string; isWbx2CCPShare?: boolean; /** * Details of media agent selected for a call */ mediaAgentInfo?: { reason: | "CALLER_CLUSTER" | "CLIENT_SOURCE_REGION" | "CLOUD_INGRESS_REGION" | "DEFAULT_CLUSTER" | "DESIGNATED_CLUSTER" | "FAILOVER_CLUSTER" | "GEO_HINT" | "LINUS_SELECT" | "OVERRIDE_PREFERRED_CLUSTER" | "PREFERRED_CLUSTER" | "REACHABILITY" | "USER_SETTING" | "VMN_RECORDING_ANY" | "VMN_RECORDING_CONFLUENCE" | "VMN_RECORDING_EDONUS_CONFLUENCE"; usedReason?: | "CALLER_CLUSTER" | "CLIENT_SOURCE_REGION" | "CLOUD_INGRESS_REGION" | "DEFAULT_CLUSTER" | "DESIGNATED_CLUSTER" | "FAILOVER_CLUSTER" | "GEO_HINT" | "LINUS_SELECT" | "OVERRIDE_PREFERRED_CLUSTER" | "PREFERRED_CLUSTER" | "REACHABILITY" | "USER_SETTING" | "VMN_RECORDING_ANY" | "VMN_RECORDING_CONFLUENCE" | "VMN_RECORDING_EDONUS_CONFLUENCE"; /** * metadata associated with a media cluster. */ selectedCluster: { serverOrgId: string; serverGroupId: string; isHybridMedia: boolean; clusterAlreadyInVenue?: boolean; transportTypes?: ("UDP" | "TCP" | "xTLS" | "TLS")[]; latency?: number; skippedReason?: | "CAPACITY" | "CLIENT_EXCLUSION" | "LATENCY" | "OFFLINE" | "UNREACHABLE" | "CAPACITY_OR_UNREACHABLE" | "PRIVATE_MEETING_CLUSTER" | "NO_MEDIA_NODES"; reason?: | "CLOUD_INGRESS_REGION" | "CLIENT_SOURCE_REGION" | "CALLER_CLUSTER" | "DESIGNATED_CLUSTER" | "GEO_HINT" | "LINUS_SELECT" | "OVERRIDE_PREFERRED_CLUSTER" | "PREFERRED_CLUSTER" | "REACHABILITY" | "USER_SETTING" | "FAILOVER_CLUSTER" | "DEFAULT_CLUSTER"; region?: string; reachabilityDueToFolding?: boolean; additionalProperties?: never; }; /** * metadata associated with a media cluster. */ usedCluster: { serverOrgId: string; serverGroupId: string; isHybridMedia: boolean; clusterAlreadyInVenue?: boolean; transportTypes?: ("UDP" | "TCP" | "xTLS" | "TLS")[]; latency?: number; skippedReason?: | "CAPACITY" | "CLIENT_EXCLUSION" | "LATENCY" | "OFFLINE" | "UNREACHABLE" | "CAPACITY_OR_UNREACHABLE" | "PRIVATE_MEETING_CLUSTER" | "NO_MEDIA_NODES"; reason?: | "CLOUD_INGRESS_REGION" | "CLIENT_SOURCE_REGION" | "CALLER_CLUSTER" | "DESIGNATED_CLUSTER" | "GEO_HINT" | "LINUS_SELECT" | "OVERRIDE_PREFERRED_CLUSTER" | "PREFERRED_CLUSTER" | "REACHABILITY" | "USER_SETTING" | "FAILOVER_CLUSTER" | "DEFAULT_CLUSTER"; region?: string; reachabilityDueToFolding?: boolean; additionalProperties?: never; }; usedJunctionBoxAlias?: string; usedMediaServerAlias?: string; usedMediaServerType?: | "CB" | "CMS" | "CRC" | "HESIOD" | "LINUS" | "MCC" | "MCS" | "MES" | "MJS" | "MRS" | "MYGDONUS" | "MZM" | "TERMINUS" | "TPGW" | "TA" | "HOMER" | "SUPERHOMER" | "U2C" | "WCA" | "MSE" | "UNKNOWN"; usedMediaServiceServerAlias?: string; usedMediaServiceServerType?: | "CB" | "CMS" | "CRC" | "HESIOD" | "LINUS" | "MCC" | "MCS" | "MES" | "MJS" | "MRS" | "MYGDONUS" | "MZM" | "TERMINUS" | "TPGW" | "TA" | "HOMER" | "SUPERHOMER" | "U2C" | "WCA" | "MSE" | "UNKNOWN"; /** * Details of media agent selection parameters to choose a media cluster for a call. Refer https://confluence-eng-gpk2.cisco.com/conf/pages/viewpage.action?spaceKey=CLO&title=SIP+GDM for details */ parameters?: { clusterScope?: "PUBLIC_ONLY" | "PRIVATE_ONLY" | "PUBLIC_AND_PRIVATE"; /** * Geographical information derived from a client's IP Address */ clientDiscoverySignallingGeoIpInformation?: { ipVersion?: "IPv4" | "IPv6" | "Dual"; networkPrefix?: string; clientRegion?: string; clientCountryCode?: string; /** * An approximation of the client's geographical location */ GeoInformation?: { latitudeLongitude?: {}; accuracyRadius?: number; additionalProperties?: never; }; additionalProperties?: never; }; /** * Geographical information derived from a client's IP Address */ clientJoinSignallingGeoIpInformation?: { ipVersion?: "IPv4" | "IPv6" | "Dual"; networkPrefix?: string; clientRegion?: string; clientCountryCode?: string; /** * An approximation of the client's geographical location */ GeoInformation?: { latitudeLongitude?: {}; accuracyRadius?: number; additionalProperties?: never; }; additionalProperties?: never; }; /** * Geographical information derived from a client's IP Address */ clientServerReflexiveMediaGeoIpInformation?: { ipVersion?: "IPv4" | "IPv6" | "Dual"; networkPrefix?: string; clientRegion?: string; clientCountryCode?: string; /** * An approximation of the client's geographical location */ GeoInformation?: { latitudeLongitude?: {}; accuracyRadius?: number; additionalProperties?: never; }; additionalProperties?: never; }; clientSourceRegion?: string; clientSourceRegionClusters?: string[]; clientSourceRegionClustersLoadBalanced?: string[]; clientSourceTheaterClustersLoadBalanced?: string[]; cloudIngressRegion?: string; cloudIngressRegionClustersLoadBalanced?: string[]; cloudIngressTheaterClustersLoadBalanced?: string[]; clientCountryCode?: string; clientSplitTunnelDetected?: boolean; clientUaType?: string; clientUaVersion?: string; deviceType?: string; expectedCloudReachabilityClustersCount?: number; geoHint?: string[]; geoHintClusters?: string[]; geoHintCandidates?: { geoHints?: string[]; source?: {}; additionalProperties?: never; }[]; geoHintClusterInformation?: { geoHintClusters?: string[]; source?: {}; additionalProperties?: never; }[]; isCall?: boolean; isTIP: boolean; /** * metadata associated with a media cluster. */ lowestLatencyCluster?: { serverOrgId: string; serverGroupId: string; isHybridMedia: boolean; clusterAlreadyInVenue?: boolean; transportTypes?: ("UDP" | "TCP" | "xTLS" | "TLS")[]; latency?: number; skippedReason?: | "CAPACITY" | "CLIENT_EXCLUSION" | "LATENCY" | "OFFLINE" | "UNREACHABLE" | "CAPACITY_OR_UNREACHABLE" | "PRIVATE_MEETING_CLUSTER" | "NO_MEDIA_NODES"; reason?: | "CLOUD_INGRESS_REGION" | "CLIENT_SOURCE_REGION" | "CALLER_CLUSTER" | "DESIGNATED_CLUSTER" | "GEO_HINT" | "LINUS_SELECT" | "OVERRIDE_PREFERRED_CLUSTER" | "PREFERRED_CLUSTER" | "REACHABILITY" | "USER_SETTING" | "FAILOVER_CLUSTER" | "DEFAULT_CLUSTER"; region?: string; reachabilityDueToFolding?: boolean; additionalProperties?: never; }; /** * metadata associated with a media cluster. */ lowestLatencyCloudVenueCluster?: { serverOrgId: string; serverGroupId: string; isHybridMedia: boolean; clusterAlreadyInVenue?: boolean; transportTypes?: ("UDP" | "TCP" | "xTLS" | "TLS")[]; latency?: number; skippedReason?: | "CAPACITY" | "CLIENT_EXCLUSION" | "LATENCY" | "OFFLINE" | "UNREACHABLE" | "CAPACITY_OR_UNREACHABLE" | "PRIVATE_MEETING_CLUSTER" | "NO_MEDIA_NODES"; reason?: | "CLOUD_INGRESS_REGION" | "CLIENT_SOURCE_REGION" | "CALLER_CLUSTER" | "DESIGNATED_CLUSTER" | "GEO_HINT" | "LINUS_SELECT" | "OVERRIDE_PREFERRED_CLUSTER" | "PREFERRED_CLUSTER" | "REACHABILITY" | "USER_SETTING" | "FAILOVER_CLUSTER" | "DEFAULT_CLUSTER"; region?: string; reachabilityDueToFolding?: boolean; additionalProperties?: never; }; venueClusters?: string[]; meetingType?: string; meetingRole?: string; numberOfClustersTried?: number; preferredClustersLoadBalanced?: string[]; preferTranscode?: boolean; reachableCloudReachabilityClustersCount?: number; reachableCloudReachabilityClustersCountFolded?: number; reachableHybridMediaReachabilityClustersCount?: number; reachableHybridMediaReachabilityClustersCountFolded?: number; reachabilityClusters?: string[]; reportedCloudReachabilityClustersCount?: number; reportedHybridMediaReachabilityClustersCount?: number; reportedMediaConnectivity?: { mediaDc?: string; avgAudioRtt?: number; additionalProperties?: never; }[]; use3DRenderer?: boolean; useCloudIngressRegion: boolean; cloudIngressRegionUsed?: boolean; useTheaterCluster: boolean; expectedHybridMediaReachabilityClustersCount?: number; weightedClusters?: string[]; isPSTN?: boolean; enhancedGeoHintsMode?: "ORPHEUS_DISABLED" | "CUSTOMER_DISABLED" | "ENABLED"; additionalProperties?: never; }; apiVersion?: number; apiTrigger?: string; skippedClusters?: { serverOrgId: string; serverGroupId: string; isHybridMedia: boolean; clusterAlreadyInVenue?: boolean; transportTypes?: ("UDP" | "TCP" | "xTLS" | "TLS")[]; latency?: number; skippedReason?: | "CAPACITY" | "CLIENT_EXCLUSION" | "LATENCY" | "OFFLINE" | "UNREACHABLE" | "CAPACITY_OR_UNREACHABLE" | "PRIVATE_MEETING_CLUSTER" | "NO_MEDIA_NODES"; reason?: | "CLOUD_INGRESS_REGION" | "CLIENT_SOURCE_REGION" | "CALLER_CLUSTER" | "DESIGNATED_CLUSTER" | "GEO_HINT" | "LINUS_SELECT" | "OVERRIDE_PREFERRED_CLUSTER" | "PREFERRED_CLUSTER" | "REACHABILITY" | "USER_SETTING" | "FAILOVER_CLUSTER" | "DEFAULT_CLUSTER"; region?: string; reachabilityDueToFolding?: boolean; additionalProperties?: never; }[]; designatedClusters?: { serverOrgId: string; serverGroupId: string; isHybridMedia: boolean; clusterAlreadyInVenue?: boolean; transportTypes?: ("UDP" | "TCP" | "xTLS" | "TLS")[]; latency?: number; skippedReason?: | "CAPACITY" | "CLIENT_EXCLUSION" | "LATENCY" | "OFFLINE" | "UNREACHABLE" | "CAPACITY_OR_UNREACHABLE" | "PRIVATE_MEETING_CLUSTER" | "NO_MEDIA_NODES"; reason?: | "CLOUD_INGRESS_REGION" | "CLIENT_SOURCE_REGION" | "CALLER_CLUSTER" | "DESIGNATED_CLUSTER" | "GEO_HINT" | "LINUS_SELECT" | "OVERRIDE_PREFERRED_CLUSTER" | "PREFERRED_CLUSTER" | "REACHABILITY" | "USER_SETTING" | "FAILOVER_CLUSTER" | "DEFAULT_CLUSTER"; region?: string; reachabilityDueToFolding?: boolean; additionalProperties?: never; }[]; additionalProperties?: never; }; /** * Details of the newly selected media agent for a call */ mediaAgentUpdateInfo?: { newMediaServiceServerAlias?: string; newMediaServiceServerType?: | "CB" | "CMS" | "CRC" | "HESIOD" | "LINUS" | "MCC" | "MCS" | "MES" | "MJS" | "MRS" | "MYGDONUS" | "MZM" | "TERMINUS" | "TPGW" | "TA" | "HOMER" | "SUPERHOMER" | "U2C" | "WCA" | "MSE" | "UNKNOWN"; previousMediaServiceServerAlias?: string; previousMediaServiceServerType?: | "CB" | "CMS" | "CRC" | "HESIOD" | "LINUS" | "MCC" | "MCS" | "MES" | "MJS" | "MRS" | "MYGDONUS" | "MZM" | "TERMINUS" | "TPGW" | "TA" | "HOMER" | "SUPERHOMER" | "U2C" | "WCA" | "MSE" | "UNKNOWN"; additionalProperties?: never; }; /** * metadata associated with a media cascade. */ mediaCascadeInfo?: { /** * metadata associated with a media agent node. */ mediaNodeSource: { /** * metadata associated with a media cluster. */ clusterInfo: { serverOrgId: string; serverGroupId: string; isHybridMedia: boolean; clusterAlreadyInVenue?: boolean; transportTypes?: ("UDP" | "TCP" | "xTLS" | "TLS")[]; latency?: number; skippedReason?: | "CAPACITY" | "CLIENT_EXCLUSION" | "LATENCY" | "OFFLINE" | "UNREACHABLE" | "CAPACITY_OR_UNREACHABLE" | "PRIVATE_MEETING_CLUSTER" | "NO_MEDIA_NODES"; reason?: | "CLOUD_INGRESS_REGION" | "CLIENT_SOURCE_REGION" | "CALLER_CLUSTER" | "DESIGNATED_CLUSTER" | "GEO_HINT" | "LINUS_SELECT" | "OVERRIDE_PREFERRED_CLUSTER" | "PREFERRED_CLUSTER" | "REACHABILITY" | "USER_SETTING" | "FAILOVER_CLUSTER" | "DEFAULT_CLUSTER"; region?: string; reachabilityDueToFolding?: boolean; additionalProperties?: never; }; isClusterReachabilityProvided?: boolean; isClusterReachable?: boolean; serverType: | "CB" | "CMS" | "CRC" | "HESIOD" | "LINUS" | "MCC" | "MCS" | "MES" | "MJS" | "MRS" | "MYGDONUS" | "MZM" | "TERMINUS" | "TPGW" | "TA" | "HOMER" | "SUPERHOMER" | "U2C" | "WCA" | "MSE" | "UNKNOWN"; serverAlias: string; additionalProperties?: never; }; /** * metadata associated with a media agent node. */ mediaNodeDest: { /** * metadata associated with a media cluster. */ clusterInfo: { serverOrgId: string; serverGroupId: string; isHybridMedia: boolean; clusterAlreadyInVenue?: boolean; transportTypes?: ("UDP" | "TCP" | "xTLS" | "TLS")[]; latency?: number; skippedReason?: | "CAPACITY" | "CLIENT_EXCLUSION" | "LATENCY" | "OFFLINE" | "UNREACHABLE" | "CAPACITY_OR_UNREACHABLE" | "PRIVATE_MEETING_CLUSTER" | "NO_MEDIA_NODES"; reason?: | "CLOUD_INGRESS_REGION" | "CLIENT_SOURCE_REGION" | "CALLER_CLUSTER" | "DESIGNATED_CLUSTER" | "GEO_HINT" | "LINUS_SELECT" | "OVERRIDE_PREFERRED_CLUSTER" | "PREFERRED_CLUSTER" | "REACHABILITY" | "USER_SETTING" | "FAILOVER_CLUSTER" | "DEFAULT_CLUSTER"; region?: string; reachabilityDueToFolding?: boolean; additionalProperties?: never; }; isClusterReachabilityProvided?: boolean; isClusterReachable?: boolean; serverType: | "CB" | "CMS" | "CRC" | "HESIOD" | "LINUS" | "MCC" | "MCS" | "MES" | "MJS" | "MRS" | "MYGDONUS" | "MZM" | "TERMINUS" | "TPGW" | "TA" | "HOMER" | "SUPERHOMER" | "U2C" | "WCA" | "MSE" | "UNKNOWN"; serverAlias: string; additionalProperties?: never; }; isBridging?: boolean; additionalProperties?: never; }; /** * Information of Orpheus discovery request */ discoveryInfo?: { anycastEntryPoint?: string; clientReportedIpVersion?: number; clientPublicNetworkPrefix?: string; /** * Result and timing information for Calling Services discovery. */ calling?: { /** * Outcome of a Calling Services discovery attempt. */ outcome?: "skipped" | "resolved" | "unavailable" | "pending" | "fail_open"; /** * Reason associated with a Calling Services discovery outcome. */ reason?: | "none" | "method_not_post" | "missing_auth_context" | "anonymous_user" | "missing_org_id" | "missing_user_id" | "calling_not_enabled" | "resolver_exception"; clientRequested?: boolean; resolverLatencyMs?: number; additionalProperties?: never; }; timeShotAgeSeconds?: number; trigger?: string; additionalProperties?: never; }; isMeetingStartedByCCPUser?: boolean; /** * Details of information about start of CMR meeting, populated by CB. */ meetingStartedInfo?: { isCCPUserJoined?: boolean; isWebexUserJoined?: boolean; isTelephonyUserJoined?: boolean; firstUserJoinedTime: string; additionalProperties?: never; }; confluenceIsMeeting?: boolean; /** * Server Latency */ latencies?: { mrsTime?: number; tpgwTime?: number; orpheusTime?: number; homerWASTime?: number; homerMOSTime?: number; locusCreateConfluenceReqResp?: number; locusCreateVenueReqResp?: number; orpheusCreateConfluenceReqResp?: number; additionalProperties?: never; }; isPermissionTokenPresent?: boolean; numLocusCreateConfluenceRequest?: number; numLocusCreateVenueRequest?: number; indentityTrustLevel?: "internal" | "external" | "unverified"; joinedUserCount?: number; joinedUserLicense?: number; lobbyUserCount?: number; participantCount?: number; confluenceCount?: number; countryCode?: string; region?: string; signInRegion?: string; isAnswered?: boolean; secureMedia?: boolean; isMain?: boolean; additionalProperties?: never; } | { canProceed?: boolean; state?: string; mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard" | "gamestate"; /** * Details associated with a share floor type */ floorType?: { name: "DEFAULT" | "EMBEDDED_APP" | "OTHER"; priority?: {}; additionalProperties?: never; }; csi?: number; /** * media capability for both transmit and receive */ mediaCapabilities?: { /** * explicit indication of media capabilities. true=supported */ tx: { audio: boolean; video: boolean; share: boolean; share_audio: boolean; whiteboard: boolean; gamestate?: boolean; additionalProperties?: never; }; /** * explicit indication of media capabilities. true=supported */ rx: { audio: boolean; video: boolean; share: boolean; share_audio: boolean; whiteboard: boolean; gamestate?: boolean; additionalProperties?: never; }; additionalProperties?: never; }; mediaLines?: { clusterName?: string; connectionType?: "none" | "direct" | "proxy"; direction: "sendrecv" | "sendonly" | "recvonly" | "inactive"; errorCode?: number; extension?: {}; failureDescription?: string; failureReason?: "network" | "transport" | "rejected" | "timeout" | "notstarted" | "succeeded"; iceMangled?: boolean; localIP?: string; localNetworkPrefix?: string; localPort?: number; mediaLineData?: {}; mediaType: "audio" | "video" | "share" | "share_audio" | "whiteboard" | "gamestate" | "all"; protocol: "udp" | "tcp" | "xtls" | "unknown"; recvRespTime?: string; remoteIP?: string; remotePort?: number; sentReqTime?: string; status?: "succeeded" | "in-progress" | "failed"; tlsDomain?: string; transactionId?: string; ufrag?: string; additionalProperties?: never; }[]; /** * allows client to specify media preferences */ clientMediaPreferences?: { preferTranscoding: boolean; additionalProperties?: never; }; pstnAudioType?: "dial-in" | "dial-out"; homeDataCenter?: string; success?: boolean; isTranscoded?: boolean; isGatewayed?: boolean; isComposed?: boolean; /** * determine how the events are processed as well as how the reports are aggregated and sliced */ registrationMode?: "SIP" | "Cloud" | "CloudAware"; /** * protocols used to help determine how the events are processed as well as how the reports are aggregated and sliced */ protocol?: "SIP" | "H323" | "H323_IP" | "Locus" | "WebRTC"; /** * The underlying service provider of the call. */ meetingPlatform?: "MsTeams" | "GoogleMeet" | "Zoom" | "Webex"; labels?: string[]; labelsStr?: string; webexServiceType?: "MC" | "EC" | "SC" | "TC" | "AA" | "RA" | "NBR" | "WRF" | "HOL"; /** * this defines the sub service type */ webexSubServiceType?: | "PMR" | "Event" | "Training" | "ScheduleMeeting" | "ScheduledMeeting" | "Webcast" | "Webinar" | "LargeScaleWebinar" | "others"; ivrDialogType?: | "MEDIA_ON_HOLD" | "ANNOUNCEMENT" | "TONE" | "COLLECT_PIN" | "PROMPT" | "MEDIA_SERVICE_AGENT" | "COLLECT"; ivrDialogResult?: | "SUCCESS" | "FAILURE" | "HOST_PIN_MATCH" | "GUEST_PIN_MATCH" | "PANELIST_PIN_MATCH" | "NO_MATCH" | "INVALID_PIN"; callType?: | "VIDEO_DIALIN" | "VIDEO_DIALOUT" | "CASCADE" | "HYBRID_CASCADE" | "PSTN_SIP" | "PSTN_DIALIN" | "PSTN_DIALOUT" | "PSTN_ONLY_DIALIN" | "PSTN_ONLY_DIALOUT" | "AUDIO_DIALIN" | "AUDIO_ONLY_DIALIN" | "H323" | "H323_IP" | "SIP_ENTERPRISE" | "SIP_MOBILE" | "SIP_NATIONAL" | "SIP_INTERNATIONAL" | "SIP_EMERGENCY" | "SIP_OPERATOR" | "SIP_SHORTCODE" | "SIP_TOLLFREE" | "SIP_PREMIUM" | "SIP_URI" | "SIP_INBOUND" | "UNKNOWN" | "ZTM" | "SIP_MEETING" | "SIP_DIALOUT" | "SIP_ONLY_DIALOUT"; eventData?: {}; derivedSipClientType?: | "SIP_CE_SINGLE_SCREEN" | "SIP_CE_MULTI_SCREEN" | "SIP_JABBER" | "SIP_TIP_SINGLE_SCREEN" | "SIP_TIP_THREE_SCREEN" | "SIP_PSTN" | "SIP_OTHER" | "SIP_WEBEX_CASCADE" | "SIP_NONE"; /** * this defines the major client types */ derivedClientType?: | "MEETING_CENTER" | "EVENT_CENTER" | "TRAINING_CENTER" | "TEAMS_CLIENT" | "TEAMS_DEVICE" | "TEAMS_SHARE" | "SIP" | "RECORDING" | "CLOUD_AWARE_SIP" | "TEAMS_WXC_CLIENT" | "WXC_CLIENT" | "WXC_DEVICE" | "WEBEX_JS_SDK" | "VOICEA_CLIENT" | "CISCO_SIP_GW" | "WEBEX_SDK" | "CPAAS_THIRD_PARTY_SDK" | "WXC_THIRD_PARTY" | "WXCC" | "TEAMS_PHONE" | "WEBEX_RELAY"; /** * this defines the sub types of clients */ derivedSubClientType?: | "AUTOMOTIVE_APP" | "BROWSER_EXTENSION" | "DESKTOP_APP" | "DESKTOP_APP_VDI" | "DEVICE_CURRENT" | "DEVICE_LEGACY_2020" | "HOLOGRAM_HEADSET_APP" | "HVDI_APP" | "MIXED" | "MOBILE_APP" | "MOBILE_NETWORK" | "PAGE" | "TEAMS_DEVICE" | "VDI_APP" | "WEB_APP" | "PHONE_NOVUM" | "PHONE_ESPRESSO" | "PHONE_BUMBLEBEE" | "SIP" | "SIP_PSTN"; meetingRole?: "PANELIST" | "ATTENDEE"; serverRole?: | "CONFERENCE" | "TRANSCODER" | "WHITEBOARD_INJECTOR" | "MS_TEAMS_CONFERENCE" | "RECORDING" | "GATEWAY" | "GATEWAY_CLIENT_SIDE" | "UNKNOWN" | "HOLOGRAM_RENDER" | "EDGE"; reconnect?: boolean; retryCount?: number; meetSimple?: boolean; /** * represents media quality status report such as no media or drop out */ mediaStatus?: { mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard"; mediaSuccess?: boolean; shareType?: | "cb-normal-share" | "ce-airplay-share" | "ce-direct-share" | "ce-gui-loopback-share" | "ce-input-source-share" | "ce-input-source-share-hdmi" | "ce-input-source-share-usbc" | "ce-jpg-share" | "ce-miracast-share" | "mcs-normal-share" | "mcs-normal-audio-share" | "mcs-hfps-share" | "mcs-hfps-audio-share"; isTransmitter?: boolean; audioJoinType?: | "phone-call-in" | "phone-call-back" | "voip" | "device-call-back" | "never-join-audio" | "tried-but-never-join"; /** * indicates transport type used */ transportType?: "UDP" | "TCP" | "xTLS" | "TLS"; additionalData?: {}; /** * information object for the peripheral */ mediaDeviceInfo?: { name: "camera" | "microphone" | "speaker"; information?: string; driver?: string; errorCode?: string; subErrorCode?: string; captureFrameSize?: number; captureFps?: number; captureFrameworkType?: number; captureRawType?: number; deviceCapabilitiesTime?: number; connectionType?: {}; bluetoothMode?: {}; openDeviceCostTimeMilliSecond?: number; startCaptureCostTimeMilliSecond?: number; txSampleRate?: number; rxSampleRate?: number; isAAudioLowLatency?: number; isStartNDKFailed?: number; startPlaybackCostTimeMilliSecond?: number; changeCount?: number; /** * indicates capture device's system volume, between -1 and 100, -1 means invalid */ captureSystemVolume?: number; /** * indicates playback device's system volume, between -1 and 100, -1 means invalid */ playbackSystemVolume?: number; started?: boolean; sysAudioSEStatus?: number; isVolumeControlAvailable?: boolean; rawStreamStatus?: number; status?: string; initCaptureFrameworkType?: "unknown" | "dshow" | "mf" | "mfPrefer"; cameraRetried?: boolean; captureCameraType?: | "unknown" | "builtIn" | "aggregate" | "virtual" | "pci" | "usb" | "fireWire" | "bluetooth" | "hdmi" | "displayPort" | "airPlay" | "avb" | "thunderbolt" | "lineLevel" | "external" | "continuityCaptureWired" | "continuityCaptureWireless" | "audioRemote" | "iphoneCamera" | "deskViewCamera" | "virtualCamera" | "builtInMinijack"; captureCameraFailNum?: number; videoCaptureEnumTime?: number; additionalProperties?: never; }; additionalProperties?: never; }; shareInstanceId?: string; ipVersion?: "IPv4" | "IPv6" | "Dual"; isTransmitter?: boolean; shareDuration?: number; stopReason?: string; shareStartReason?: string; hologramStreamId?: string; /** * represents all of the properities that could cause delay during media setup process. */ audioSetupDelay?: { floorReqSentReceived?: number; floorRespSentReceived?: number; mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard"; txReqFloorGranted?: number; txSessionCreateConfirm?: number; txApeEnrollConfirm?: number; txUIDelay?: number; txScreenCaptureDelay?: number; txScreenCaptureDelayReasonCode?: number; txShareStartOverallDelay?: number; floorGranted2tx1stPacketSendDelay?: number; rx1stPacket2RenderDelay?: number; rxGranted2RenderDelay?: number; rxFailFrameNumB4Success?: number; e2eFirstFrameDelay?: number; CBSessionRespToLocusFloorGrantDelay?: number; CBShareReceiveToServerShareTransmitDelay?: number; CBShareReceiveToTPGWFirstKeyFrameDelay?: number; /** * phrased HTTP timing */ floorRequestHttpTiming?: { connect?: number; dnsLookup?: number; sendRequest?: number; compressRequest?: number; receiveResponse?: number; extractJson?: number; verifyCert?: number; refreshToken?: number; additionalProperties?: never; }; TPGWFirstKeyFrameToServerShareTransmitDelay?: number; MCSSessionActivateToLocusFloorGrantDelay?: number; ServerShareInitiateToLocusFloorGrantDelay?: number; LocusFloorGrantToCBSessionStartDelay?: number; ServerShareReceiveToTPGWFirstKeyFrameDelay?: number; LocusFloorGrantToTPGWFloorGrantDelay?: number; LocusFloorGrantToReceiverNotificationDelay?: number; CBShareSessionRespDelay?: number; LocusShareFloorGrantRespDelay?: number; LocusFloorReqToRespDelay?: number; ServerShareFloorGrantRespDelay?: number; joinRespRxStart?: number; joinRespTxStart?: number; maxRemoteLossRate?: number; media2SignalDelay?: number; warholDownloadTime?: number; contentDownloadTime?: number; boardCreationTime?: number; totalBoardServiceRespDelay?: number; additionalProperties?: never; }; /** * represents all of the properities that could cause delay during media setup process. */ videoSetupDelay?: { floorReqSentReceived?: number; floorRespSentReceived?: number; mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard"; txReqFloorGranted?: number; txSessionCreateConfirm?: number; txApeEnrollConfirm?: number; txUIDelay?: number; txScreenCaptureDelay?: number; txScreenCaptureDelayReasonCode?: number; txShareStartOverallDelay?: number; floorGranted2tx1stPacketSendDelay?: number; rx1stPacket2RenderDelay?: number; rxGranted2RenderDelay?: number; rxFailFrameNumB4Success?: number; e2eFirstFrameDelay?: number; CBSessionRespToLocusFloorGrantDelay?: number; CBShareReceiveToServerShareTransmitDelay?: number; CBShareReceiveToTPGWFirstKeyFrameDelay?: number; /** * phrased HTTP timing */ floorRequestHttpTiming?: { connect?: number; dnsLookup?: number; sendRequest?: number; compressRequest?: number; receiveResponse?: number; extractJson?: number; verifyCert?: number; refreshToken?: number; additionalProperties?: never; }; TPGWFirstKeyFrameToServerShareTransmitDelay?: number; MCSSessionActivateToLocusFloorGrantDelay?: number; ServerShareInitiateToLocusFloorGrantDelay?: number; LocusFloorGrantToCBSessionStartDelay?: number; ServerShareReceiveToTPGWFirstKeyFrameDelay?: number; LocusFloorGrantToTPGWFloorGrantDelay?: number; LocusFloorGrantToReceiverNotificationDelay?: number; CBShareSessionRespDelay?: number; LocusShareFloorGrantRespDelay?: number; LocusFloorReqToRespDelay?: number; ServerShareFloorGrantRespDelay?: number; joinRespRxStart?: number; joinRespTxStart?: number; maxRemoteLossRate?: number; media2SignalDelay?: number; warholDownloadTime?: number; contentDownloadTime?: number; boardCreationTime?: number; totalBoardServiceRespDelay?: number; additionalProperties?: never; }; /** * represents all of the properities that could cause delay during media setup process. */ shareSetupDelay?: { floorReqSentReceived?: number; floorRespSentReceived?: number; mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard"; txReqFloorGranted?: number; txSessionCreateConfirm?: number; txApeEnrollConfirm?: number; txUIDelay?: number; txScreenCaptureDelay?: number; txScreenCaptureDelayReasonCode?: number; txShareStartOverallDelay?: number; floorGranted2tx1stPacketSendDelay?: number; rx1stPacket2RenderDelay?: number; rxGranted2RenderDelay?: number; rxFailFrameNumB4Success?: number; e2eFirstFrameDelay?: number; CBSessionRespToLocusFloorGrantDelay?: number; CBShareReceiveToServerShareTransmitDelay?: number; CBShareReceiveToTPGWFirstKeyFrameDelay?: number; /** * phrased HTTP timing */ floorRequestHttpTiming?: { connect?: number; dnsLookup?: number; sendRequest?: number; compressRequest?: number; receiveResponse?: number; extractJson?: number; verifyCert?: number; refreshToken?: number; additionalProperties?: never; }; TPGWFirstKeyFrameToServerShareTransmitDelay?: number; MCSSessionActivateToLocusFloorGrantDelay?: number; ServerShareInitiateToLocusFloorGrantDelay?: number; LocusFloorGrantToCBSessionStartDelay?: number; ServerShareReceiveToTPGWFirstKeyFrameDelay?: number; LocusFloorGrantToTPGWFloorGrantDelay?: number; LocusFloorGrantToReceiverNotificationDelay?: number; CBShareSessionRespDelay?: number; LocusShareFloorGrantRespDelay?: number; LocusFloorReqToRespDelay?: number; ServerShareFloorGrantRespDelay?: number; joinRespRxStart?: number; joinRespTxStart?: number; maxRemoteLossRate?: number; media2SignalDelay?: number; warholDownloadTime?: number; contentDownloadTime?: number; boardCreationTime?: number; totalBoardServiceRespDelay?: number; additionalProperties?: never; }; /** * represents all of the properities that could cause delay during media setup process. */ shareAudioSetupDelay?: { floorReqSentReceived?: number; floorRespSentReceived?: number; mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard"; txReqFloorGranted?: number; txSessionCreateConfirm?: number; txApeEnrollConfirm?: number; txUIDelay?: number; txScreenCaptureDelay?: number; txScreenCaptureDelayReasonCode?: number; txShareStartOverallDelay?: number; floorGranted2tx1stPacketSendDelay?: number; rx1stPacket2RenderDelay?: number; rxGranted2RenderDelay?: number; rxFailFrameNumB4Success?: number; e2eFirstFrameDelay?: number; CBSessionRespToLocusFloorGrantDelay?: number; CBShareReceiveToServerShareTransmitDelay?: number; CBShareReceiveToTPGWFirstKeyFrameDelay?: number; /** * phrased HTTP timing */ floorRequestHttpTiming?: { connect?: number; dnsLookup?: number; sendRequest?: number; compressRequest?: number; receiveResponse?: number; extractJson?: number; verifyCert?: number; refreshToken?: number; additionalProperties?: never; }; TPGWFirstKeyFrameToServerShareTransmitDelay?: number; MCSSessionActivateToLocusFloorGrantDelay?: number; ServerShareInitiateToLocusFloorGrantDelay?: number; LocusFloorGrantToCBSessionStartDelay?: number; ServerShareReceiveToTPGWFirstKeyFrameDelay?: number; LocusFloorGrantToTPGWFloorGrantDelay?: number; LocusFloorGrantToReceiverNotificationDelay?: number; CBShareSessionRespDelay?: number; LocusShareFloorGrantRespDelay?: number; LocusFloorReqToRespDelay?: number; ServerShareFloorGrantRespDelay?: number; joinRespRxStart?: number; joinRespTxStart?: number; maxRemoteLossRate?: number; media2SignalDelay?: number; warholDownloadTime?: number; contentDownloadTime?: number; boardCreationTime?: number; totalBoardServiceRespDelay?: number; additionalProperties?: never; }; /** * represents all of the properities that could cause delay during media setup process. */ whiteboardSetupDelay?: { floorReqSentReceived?: number; floorRespSentReceived?: number; mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard"; txReqFloorGranted?: number; txSessionCreateConfirm?: number; txApeEnrollConfirm?: number; txUIDelay?: number; txScreenCaptureDelay?: number; txScreenCaptureDelayReasonCode?: number; txShareStartOverallDelay?: number; floorGranted2tx1stPacketSendDelay?: number; rx1stPacket2RenderDelay?: number; rxGranted2RenderDelay?: number; rxFailFrameNumB4Success?: number; e2eFirstFrameDelay?: number; CBSessionRespToLocusFloorGrantDelay?: number; CBShareReceiveToServerShareTransmitDelay?: number; CBShareReceiveToTPGWFirstKeyFrameDelay?: number; /** * phrased HTTP timing */ floorRequestHttpTiming?: { connect?: number; dnsLookup?: number; sendRequest?: number; compressRequest?: number; receiveResponse?: number; extractJson?: number; verifyCert?: number; refreshToken?: number; additionalProperties?: never; }; TPGWFirstKeyFrameToServerShareTransmitDelay?: number; MCSSessionActivateToLocusFloorGrantDelay?: number; ServerShareInitiateToLocusFloorGrantDelay?: number; LocusFloorGrantToCBSessionStartDelay?: number; ServerShareReceiveToTPGWFirstKeyFrameDelay?: number; LocusFloorGrantToTPGWFloorGrantDelay?: number; LocusFloorGrantToReceiverNotificationDelay?: number; CBShareSessionRespDelay?: number; LocusShareFloorGrantRespDelay?: number; LocusFloorReqToRespDelay?: number; ServerShareFloorGrantRespDelay?: number; joinRespRxStart?: number; joinRespTxStart?: number; maxRemoteLossRate?: number; media2SignalDelay?: number; warholDownloadTime?: number; contentDownloadTime?: number; boardCreationTime?: number; totalBoardServiceRespDelay?: number; additionalProperties?: never; }; isFocus?: boolean; processingDelay?: number; shareResourceType?: | "APPLICATION_OR_WINDOW" | "CAMERA" | "DEFAULT" | "EMBEDDED_APP" | "FILE" | "MOBILE_FILE" | "MOBILE_SCREEN_MIRRORING" | "SCREEN"; shareResourceName?: string; shareType?: | "cb-normal-share" | "ce-airplay-share" | "ce-direct-share" | "ce-gui-loopback-share" | "ce-input-source-share" | "ce-input-source-share-hdmi" | "ce-input-source-share-usbc" | "ce-jpg-share" | "ce-miracast-share" | "mcs-normal-share" | "mcs-normal-audio-share" | "mcs-hfps-share" | "mcs-hfps-audio-share"; isShareBeingTakenOver?: boolean; floorBeneficiaryUpdated?: boolean; meetingJoinedTime?: string; /** * join phase of event */ meetingJoinPhase?: "pre-join" | "join" | "in-meeting"; meetingScheduledTime?: string; seconds2StartTime?: number; e2eeKeyEpoch?: number; e2eeDecompressRatio?: number; keyResponses?: { gotKeyTime?: number; useKeyTime?: number; cacheKeyTime?: number; additionalProperties?: never; }[]; e2eeVersion?: "E2EEV1" | "E2EEV2" | "E2EEV3" | "E2EEV4" | "E2EEV4_PLUS" | "E2EEV4_B" | "E2EEV5"; isZeroTrust?: boolean; /** * Version of SFrame in use. */ sframeVersion?: "SFRAMEV1" | "SFRAMEV2"; isConvergedArchitectureEnabled?: boolean; isCustomBrowser?: boolean; callingServiceType?: "CUCM" | "WEBEXCALLING" | "BROADWORKS" | "LOCUS" | "BROADCLOUDCARRIER"; supplementaryMediaSessionType?: "DirectShare"; isPaired?: boolean; inLobby?: boolean; isVIPMeeting?: boolean; webexAppEntrypoint?: string; firstParticipant?: boolean; isImmersiveShare?: boolean; /** * Request/Response Time for Internal Services / Clients */ registeredTimestamps?: { locusCreateConfluenceRequestTime?: string; locusCreateConfluenceResponseTime?: string; locusCreateVenueRequestTime?: string; locusCreateVenueResponseTime?: string; interstitialWindowLaunchedTime?: string; additionalProperties?: never; }; skipInterstitialWindow?: boolean; callDurationSecs?: number; connectionDurationSecs?: number; lobbyType?: string; callDirection?: "ORIGINATING" | "TERMINATING"; /** * Details associated with a breakout move */ breakout?: { moveType?: "between_breakout" | "to_breakout" | "to_main"; trigger?: "assignment_changed" | "client_initiated" | "session_ended" | "session_started"; startState?: "joined" | "lobby"; endState?: "joined" | "lobby"; additionalProperties?: never; }; /** * Latency values associated with breakout session */ breakoutLatency?: { clientBreakoutMoveReqJoinResp?: number; boBreakoutMoveProcessed?: number; boBreakoutMoveResp?: number; boLocusBreakoutMoveResp?: number; locusBreakoutMoveResp?: number; orpheusConfluenceMoveReqResp?: number; additionalProperties?: never; }; /** * two-way whiteboard related info */ whiteboard?: { action?: "open" | "create"; type?: "whiteboard" | "annotation"; capability?: "one_way" | "two_way"; granted?: "one_way" | "two_way"; additionalProperties?: never; }; /** * ROAP message details */ roap?: { type?: | "ANSWER" | "ERROR" | "OFFER" | "OFFER_REQUEST" | "OFFER_RESPONSE" | "OK" | "OKAY" | "TURN_DISCOVERY_REQUEST" | "TURN_DISCOVERY_RESPONSE"; messageType?: | "ANSWER" | "ERROR" | "OFFER" | "OFFER_REQUEST" | "OFFER_RESPONSE" | "OK" | "OKAY" | "TURN_DISCOVERY_REQUEST" | "TURN_DISCOVERY_RESPONSE"; error?: string; duration?: number; seq?: number; additionalProperties?: never; }; /** * Pstn Carrier Infos */ pstnCarrierInfo?: { cic?: string; carrierName?: string; ucreDnsSrvs?: string[]; additionalProperties?: never; }; pstnAudioCallType?: "PSTN" | "CCA_E" | "CCA_SP" | "EDGE_AUDIO" | "CCA_S" | "VMN_AUDIO"; l2sipCallbackUrl?: string; ivrDialingStatusOriginator?: "L2SIP" | "CLOUD_PROXY" | "CARRIER" | "UNIDENTIFIED"; cic?: string; carrierName?: string; originator?: string; ucreDnsSrvs?: string[]; ivrServiceUcreAttempts?: number; antiFraudPolicyType?: string; antiFraudBlocked?: boolean; sipResponseCode?: | "100_Trying" | "183_Ringing" | "200_Ok" | "404_NotFound" | "407_ProxyAuthRequired" | "486_BusyHere" | "503_ServiceUnavailable" | "606_NotAcceptable"; /** * details of scheduling information */ schedulingInfo?: { /** * this defines calendar type for scheduling */ calendarType?: "exchange_online" | "exchange_onprem" | "google" | "other" | "webex"; /** * this defines meeting categories for scheduling */ meetingCategory?: "AdhocUSM" | "Instant" | "Scheduled" | "ScheduledPMR" | "ScheduledUSM" | "SpaceMeetingV1"; /** * this defines where the meeting was scheduled from */ scheduledFrom?: | "ADDIN_O365" | "ADDIN_ONPREM" | "ADHOC_USM" | "AT_WEBEX_GOOGLE" | "AT_WEBEX_MSFT" | "AT_MEET_GOOGLE" | "AT_MEET_MSFT" | "GOOGLE_ADDON" | "INSTANT_MEETING" | "OTHER" | "PT" | "PUBLIC_API" | "TEAMS_CLIENT" | "TEAMS_CLIENT_CROSS_LAUNCH" | "UNIFIED_PAGE" | "WEBEX_PAGE"; /** * this defines meeting categories for scheduling */ schedulingOperationType?: "prepare" | "create" | "update" | "delete"; additionalProperties?: never; }; /** * details of setting information */ settingInfo?: { /** * this defines where the type of Setting being modified/updated */ settingType: "AUDIO_VIDEO" | "EMAIL_TEMPLATE" | "GENERAL" | "PMR" | "RECORDING" | "SCHEDULING" | "WEBEX_SITE"; additionalProperties?: never; }; sessionJoinCount?: number; /** * indicates transport type used */ transportType?: "UDP" | "TCP" | "xTLS" | "TLS"; joinFlowVersion?: "NewFTE" | "Other"; locale?: string; accessNumber?: string; isVVipMeeting?: boolean; /** * Login-related information. */ loginInfo?: { loginType?: | "user-hub" | "control-hub" | "meeting-site" | "global-sign-in-page" | "web-client" | "native-client"; method?: "idbroker" | "enterprise" | "social"; grantType?: "client-credential" | "authorization-code" | "scope-reduction"; /** * Sign-in Time */ signInDelay?: { signInTime?: number; additionalProperties?: never; }; signInSignUpType?: "sign-in" | "sign-up"; userFound?: boolean; additionalProperties?: never; }; isPrivateMeeting?: boolean; /** * Low Latency Mercury latency measurements */ llmLatency?: { clientLLMDatachannelResponseTime?: number; clientLLMWebSocketConnectTime?: number; additionalProperties?: never; }; /** * Sync Latency measurements. Expected to be sent in client.locus.sync.complete and locus.sync.sent events that could be triggered in a converged webinar session */ syncLatency?: { randomBackoffTime?: number; hashtreePrepTime?: number; hashtreeProcessingTime?: number; hashtreeResponseTime?: number; syncPrepTime?: number; syncResponseTime?: number; syncProcessingTime?: number; syncMessageReceiveTime?: number; totalTime?: number; additionalProperties?: never; }; /** * Low Latency Mercury related information. */ llmInfo?: { dataSet?: "main" | "atd-active" | "atd-unmuted"; additionalProperties?: never; }; trigger?: "dummyTrigger1" | "dummyTrigger2" | "media-quality"; name: "server.mediaquality.event" | "client.mediaquality.event"; /** * Details of MeetingJoinInfo. */ meetingJoinInfo?: { globalMeetingIdentifier?: string; joinUri?: string; joinUriHash?: string; /** * The underlying service provider of the call. */ meetingPlatform?: "MsTeams" | "GoogleMeet" | "Zoom" | "Webex"; /** * The underlying service provider of the call. */ inferredMeetingPlatform?: "MsTeams" | "GoogleMeet" | "Zoom" | "Webex"; /** * protocols used to help determine how the events are processed as well as how the reports are aggregated and sliced */ clientSignallingProtocol?: "SIP" | "H323" | "H323_IP" | "Locus" | "WebRTC"; additionalProperties?: never; }; /** * Base type for the various identifiers used to connect the dots. * In general, these should be populated whenever possible. Subtypes may make a particular key required. * */ identifiers: { aggregatedBreakoutMoveId?: string; attendeeId?: string; participantId?: string; breakoutGroupId?: string; breakoutMoveId?: string; breakoutTrackingId?: string; breakoutSessionId?: string; browserId?: string; ciExchangeTokenUrl?: string; confluenceId?: string; /** * Set of identifiers dedicated to CPaaS clients * In general, these should be populated whenever possible. Subtypes may make a particular key required. * */ cpaasIdentifiers?: { imiTenantId: string; devClientId: string; imiServiceId: string; imiAppId: string; sessionId: string; sessionInstanceId: string; additionalProperties?: never; }; csdmDeviceUrl?: string; destinationBreakoutSessionId?: string; destinationLocusSessionId?: string; destinationLocusUrl?: string; destinationVenueId?: string; deviceId?: string; globalMeetingId?: string; installationId?: string; webexMeetingUUID?: string; ivrCallId?: string; ivrDialogId?: string; ivrId?: string; callId?: string; pairCallId?: string; llmWebsocketUrl?: string; locusCluster?: string; locusId?: string; locusJoinUrl?: string; locusSessionId?: string; locusStartTime?: string; locusUrl?: string; machineId?: string; mediaAgentAlias?: string; mediaAgentGroupId?: string; meetClusterName?: string; meetingInstanceId?: string; meetingLookupUrl?: string; meetingOrgId?: string; metricServiceUrl?: string; mercuryWebsocketUrl?: string; msteamsTenantGuid?: string; msteamsConferenceId?: string; msteamsMeetingId?: string; mtid?: string; oauth2ClientId?: string; orgId?: string; provisionalCorrelationId?: string; roomId?: string; sessionCorrelationId?: string; sharedMediaId?: string; sipCallId?: string; sipSessionId?: { local?: string; remote?: string; additionalProperties?: never; }; sipUri?: string; subConfId?: string; tenantId?: string; trackingId?: string; userId?: string; venueId?: string; venueUrl?: string; whiteboardUrl?: string; wdmDeviceRegistrationUrl?: string; webexConferenceId?: number; webexClusterName?: string; webexConferenceIdStr?: string; webexDataCenter?: string; webexGuestId?: number; webexMeetingId?: number; webexNodeId?: number; webexSiteId?: number; webexSiteName?: string; webexSiteUuid?: string; webexUserId?: number; webexWebDomain?: string; recordingId?: string; clientCorrelationId?: string; idForEndpointAB?: string; customerOrgId?: string; correlationId: string; additionalProperties?: never; }; /** * metadata associated with emitter of the event. This data is included only in the first emitted for a given call and does not need to be repeated with each event. */ sourceMetadata?: { mediaEngineSoftwareType: string; applicationSoftwareType: string; applicationSoftwareVersion: string; mediaEngineSoftwareVersion?: string; hardwareType?: string; clientRegion?: string; serverRegion?: string; serverOrg?: string; serverGroup?: string; serverAlias?: string; serverDeployType?: "private" | "public"; startTime: string; endTime?: string; csi?: number[]; isCascade?: boolean; isHybridMedia?: boolean; videoMeshClusterName?: string; videoMeshServerName?: string; isTIP?: boolean; isMARI?: boolean; has264Checksum?: boolean; intervalPeriod?: number; cascadePeerRegion?: string; cascadePeerOrg?: string; cascadePeerGroup?: string; cascadePeerAlias?: string; cascadePeerServerType?: | "CB" | "CMS" | "CRC" | "HESIOD" | "LINUS" | "MCC" | "MCS" | "MES" | "MJS" | "MRS" | "MYGDONUS" | "MZM" | "TERMINUS" | "TPGW" | "TA" | "HOMER" | "SUPERHOMER" | "U2C" | "WCA" | "MSE" | "UNKNOWN"; cascadePeerDeployType?: "private" | "public"; additionalProperties?: never; }; passThroughMQEventData?: {}; /** * Details of a media edge server which is in the media path but does not generate MQE directly */ edgeInfo?: { alias: string; publicIP: string; privateIP: string; version: string; labels?: string; additionalProperties?: never; }; intervals: { intervalNumber: number; /** * The metadata associated with the emitter of the event. This data is separate from the source metadata and must be emitted with every event. */ intervalMetadata: { peerReflexiveIP?: string; maskedPeerReflexiveIP?: string; remoteMediaIP?: string; maskedRemoteMediaIP?: string; /** * indicate user local ICE candidates IP type */ localIPType?: "IPTypeUnknown" | "IPv4Only" | "IPv6Only" | "DualIPType"; staticPerformanceLevel?: number; staticPerformanceScore?: number; processAverageCPU?: number; processAverageCPUWithTurbo?: number; processMaximumCPU?: number; systemAverageCPU?: number; systemAverageCPUWithTurbo?: number; systemAverageCPUTimeBased?: number; systemMaximumCPU?: number; systemMaximumCPUTimeBased?: number; systemAverageGPU?: number; systemMaximumGPU?: number; systemAverageVIC?: number; systemMaximumVIC?: number; systemAverageCPUPerfLoad?: number; systemMaximumCPUPerfLoad?: number; processAverageIdleWakeUps?: number; processMaximumIdleWakeUps?: number; processAveragePowerUsage?: number; processMaximumPowerUsage?: number; /** * this object defines the memory related fields that are tracked in media quality events and reports */ memoryUsage?: { processAverageMemoryUsage: number; processMaximumMemoryUsage: number; systemAverageMemoryUsage: number; systemMaximumMemoryUsage: number; processMaximumMemoryBytes: number; mainProcessMaximumMemoryBytes: number; systemTotalMemoryBytes?: number; osBitWidth: number; cpuBitWidth: number; additionalProperties?: never; }; /** * Indicates battery health. See https://developer.android.com/reference/android/os/BatteryManager for more information. */ batteryHealth?: "unknown" | "good" | "cold" | "overvoltage" | "overheat" | "unspecifiedfailure" | "dead"; /** * Provides visibility in charger type in use */ batteryPlugged?: "unknown" | "ac" | "usb" | "wireless" | "dock"; /** * Provides visibility into charging status */ batteryStatus?: "unknown" | "charging" | "discharging" | "notcharging" | "full"; /** * Battery temperature in celsius */ batteryTemperature?: number; /** * Provides visibility of customer experience in limited thermal headroom environments on Apple devices. See https://developer.apple.com/documentation/foundation/processinfo/thermalstate for more information. */ darwinThermalState?: number; androidThermalHeadroom?: number; /** * Indicates thermal status on Android devices. See https://developer.android.com/ndk/reference/group/thermal for more information. */ androidThermalStatus?: number; peripherals?: { name: "camera" | "microphone" | "speaker"; information?: string; driver?: string; errorCode?: string; subErrorCode?: string; captureFrameSize?: number; captureFps?: number; captureFrameworkType?: number; captureRawType?: number; deviceCapabilitiesTime?: number; connectionType?: {}; bluetoothMode?: {}; openDeviceCostTimeMilliSecond?: number; startCaptureCostTimeMilliSecond?: number; txSampleRate?: number; rxSampleRate?: number; isAAudioLowLatency?: number; isStartNDKFailed?: number; startPlaybackCostTimeMilliSecond?: number; changeCount?: number; /** * indicates capture device's system volume, between -1 and 100, -1 means invalid */ captureSystemVolume?: number; /** * indicates playback device's system volume, between -1 and 100, -1 means invalid */ playbackSystemVolume?: number; started?: boolean; sysAudioSEStatus?: number; isVolumeControlAvailable?: boolean; rawStreamStatus?: number; status?: string; initCaptureFrameworkType?: "unknown" | "dshow" | "mf" | "mfPrefer"; cameraRetried?: boolean; captureCameraType?: | "unknown" | "builtIn" | "aggregate" | "virtual" | "pci" | "usb" | "fireWire" | "bluetooth" | "hdmi" | "displayPort" | "airPlay" | "avb" | "thunderbolt" | "lineLevel" | "external" | "continuityCaptureWired" | "continuityCaptureWireless" | "audioRemote" | "iphoneCamera" | "deskViewCamera" | "virtualCamera" | "builtInMinijack"; captureCameraFailNum?: number; videoCaptureEnumTime?: number; additionalProperties?: never; }[]; /** * information object for the peripheral */ cameraInfo?: { name: "camera" | "microphone" | "speaker"; information?: string; driver?: string; errorCode?: string; subErrorCode?: string; captureFrameSize?: number; captureFps?: number; captureFrameworkType?: number; captureRawType?: number; deviceCapabilitiesTime?: number; connectionType?: {}; bluetoothMode?: {}; openDeviceCostTimeMilliSecond?: number; startCaptureCostTimeMilliSecond?: number; txSampleRate?: number; rxSampleRate?: number; isAAudioLowLatency?: number; isStartNDKFailed?: number; startPlaybackCostTimeMilliSecond?: number; changeCount?: number; /** * indicates capture device's system volume, between -1 and 100, -1 means invalid */ captureSystemVolume?: number; /** * indicates playback device's system volume, between -1 and 100, -1 means invalid */ playbackSystemVolume?: number; started?: boolean; sysAudioSEStatus?: number; isVolumeControlAvailable?: boolean; rawStreamStatus?: number; status?: string; initCaptureFrameworkType?: "unknown" | "dshow" | "mf" | "mfPrefer"; cameraRetried?: boolean; captureCameraType?: | "unknown" | "builtIn" | "aggregate" | "virtual" | "pci" | "usb" | "fireWire" | "bluetooth" | "hdmi" | "displayPort" | "airPlay" | "avb" | "thunderbolt" | "lineLevel" | "external" | "continuityCaptureWired" | "continuityCaptureWireless" | "audioRemote" | "iphoneCamera" | "deskViewCamera" | "virtualCamera" | "builtInMinijack"; captureCameraFailNum?: number; videoCaptureEnumTime?: number; additionalProperties?: never; }; /** * information object for the peripheral */ microphoneInfo?: { name: "camera" | "microphone" | "speaker"; information?: string; driver?: string; errorCode?: string; subErrorCode?: string; captureFrameSize?: number; captureFps?: number; captureFrameworkType?: number; captureRawType?: number; deviceCapabilitiesTime?: number; connectionType?: {}; bluetoothMode?: {}; openDeviceCostTimeMilliSecond?: number; startCaptureCostTimeMilliSecond?: number; txSampleRate?: number; rxSampleRate?: number; isAAudioLowLatency?: number; isStartNDKFailed?: number; startPlaybackCostTimeMilliSecond?: number; changeCount?: number; /** * indicates capture device's system volume, between -1 and 100, -1 means invalid */ captureSystemVolume?: number; /** * indicates playback device's system volume, between -1 and 100, -1 means invalid */ playbackSystemVolume?: number; started?: boolean; sysAudioSEStatus?: number; isVolumeControlAvailable?: boolean; rawStreamStatus?: number; status?: string; initCaptureFrameworkType?: "unknown" | "dshow" | "mf" | "mfPrefer"; cameraRetried?: boolean; captureCameraType?: | "unknown" | "builtIn" | "aggregate" | "virtual" | "pci" | "usb" | "fireWire" | "bluetooth" | "hdmi" | "displayPort" | "airPlay" | "avb" | "thunderbolt" | "lineLevel" | "external" | "continuityCaptureWired" | "continuityCaptureWireless" | "audioRemote" | "iphoneCamera" | "deskViewCamera" | "virtualCamera" | "builtInMinijack"; captureCameraFailNum?: number; videoCaptureEnumTime?: number; additionalProperties?: never; }; /** * information object for the peripheral */ speakerInfo?: { name: "camera" | "microphone" | "speaker"; information?: string; driver?: string; errorCode?: string; subErrorCode?: string; captureFrameSize?: number; captureFps?: number; captureFrameworkType?: number; captureRawType?: number; deviceCapabilitiesTime?: number; connectionType?: {}; bluetoothMode?: {}; openDeviceCostTimeMilliSecond?: number; startCaptureCostTimeMilliSecond?: number; txSampleRate?: number; rxSampleRate?: number; isAAudioLowLatency?: number; isStartNDKFailed?: number; startPlaybackCostTimeMilliSecond?: number; changeCount?: number; /** * indicates capture device's system volume, between -1 and 100, -1 means invalid */ captureSystemVolume?: number; /** * indicates playback device's system volume, between -1 and 100, -1 means invalid */ playbackSystemVolume?: number; started?: boolean; sysAudioSEStatus?: number; isVolumeControlAvailable?: boolean; rawStreamStatus?: number; status?: string; initCaptureFrameworkType?: "unknown" | "dshow" | "mf" | "mfPrefer"; cameraRetried?: boolean; captureCameraType?: | "unknown" | "builtIn" | "aggregate" | "virtual" | "pci" | "usb" | "fireWire" | "bluetooth" | "hdmi" | "displayPort" | "airPlay" | "avb" | "thunderbolt" | "lineLevel" | "external" | "continuityCaptureWired" | "continuityCaptureWireless" | "audioRemote" | "iphoneCamera" | "deskViewCamera" | "virtualCamera" | "builtInMinijack"; captureCameraFailNum?: number; videoCaptureEnumTime?: number; additionalProperties?: never; }; /** * This object defines the fields related to the CPU being used by the emitter of the event */ cpuInfo?: { description: string; numberOfCores: number; architecture: | "intel32" | "intel64" | "amd32" | "amd64" | "arm32" | "arm64" | "armv9" | "armv8" | "armv7" | "armv6" | "x86_64" | "x86_32" | "unknown"; staticPerformance?: string; clockSpeedGigaHertz?: number; additionalProperties?: never; }; /** * Thread level cpu performance insights */ cpuDataDetail?: { processesData?: {}[]; coresCpuData?: {}[]; coreVariance?: number; additionalProperties?: never; }; /** * This object defines the fields related to the GPU being used by the emitter of the event */ defaultGpuInfo?: { description: string; memoryMegaBytes: number; gpuVersion?: string; additionalProperties?: never; }; otherGpuInfo?: { description: string; memoryMegaBytes: number; gpuVersion?: string; additionalProperties?: never; }[]; /** * This object defines the fields related to the NPU being used by the emitter of the event */ npuInfo?: { description?: string; npuVersion?: string; memoryMegaBytes?: number; additionalProperties?: never; }; dpcRecord?: string[]; mediaLabels?: string[]; screenResolution?: number; screenWidth?: number; screenHeight?: number; appWindowSize?: number; appWindowHeight?: number; appWindowWidth?: number; meetingUserCount?: number; videoUserCount?: number; numScreens?: number; configuredBitrate?: number; configuredPixelRateMainVideo?: number; configuredPixelRateContentVideo?: number; /** * provisioning room type for CE devices */ roomType?: "Briefing" | "Classroom" | "Standard" | "PresenterAndAudience"; peopleCount?: number; /** * currently selected camera mode */ cameraMode?: | "Unknown" | "BestOverview" | "Closeup" | "Frames" | "GroupAndSpeaker" | "Desktop" | "Dynamic" | "Combined" | "Manual"; /** * type of crop/composition created by automatic framing on a video device */ cameraAppliedView?: { /** * name of the view */ viewName: "Overview" | "Closeup" | "Frames" | "OverlaidCloseup" | "Manual" | "Other"; /** * number of composed video panes (usually 1, but can be more in Frames view) */ numberOfVideoPanes: number; additionalProperties?: never; }; /** * This object tracks the evaluated bandwidth associated with Bandwidth Evaluator(MARI) */ evaluatedBandwidth?: { /** * The min bandwidth evaluated by the BW Evaluator (in bits per second) */ minBandwidth?: number; /** * The maximum bandwidth evaluated the BW Evaluator (in bits per second) */ maxBandwidth?: number; /** * The sum of bandwidth down adjustments (in bits per second) */ sumAdjustmentDown?: number; /** * The sum of bandwidth up adjustments (in bits per second) */ sumAdjustmentUp?: number; /** * Number of times bandwidth adjustment caused a change evaluated bandwidth */ countAdjustments?: number; /** * Number of times the Bandwidth Adjustment changed direction Up->Down/Down->Up */ countDirectionChange?: number; /** * Number of times the evaluated bandwidth was affected due to config change */ countConfigChange?: number; additionalProperties?: never; }; uiRenderMinimumFPS?: number; uiRenderMaximumFPS?: number; uiRenderAverageFPS?: number; /** * This object tracks TWCC report exchange(MARI) */ twccReports?: { /** * Number of RTP packets marked with TWSN */ packetsSentWithTwsn?: number; /** * Number of packets sent without TWSN */ packetsSentWithoutTwsn?: number; /** * Number of reports received */ reportsReceived?: number; /** * Number of reports lost */ reportsLost?: number; /** * Longest consecutive run of reports lost */ reportLossBurstLength?: number; /** * Number of packets not acknowledged due to loss of reports */ unacknowledgedPackets?: number; /** * Average bandwidth in kbps */ avgBandwidth?: number; /** * min bandwidth in interval (kbps) */ minBandwidth?: number; /** * max bandwidth in interval (kbps) */ maxBandwidth?: number; additionalProperties?: never; }; isCarbonAwareModeOn?: boolean; isCarbonAwareModeConfigured?: boolean; /** * Network infrastructure identification - uniquely identifies network elements (switches, WiFi APs, cell towers). */ networkInfrastructureInfo?: { /** * Friendly name of the network element (switch name, access point name, or cellular provider name). It can be empty example for wifi, the AP names can be hidden. */ elementName?: string; /** * ID is BSSID for WiFi- derived from AP's mac address, designed to be globally unique. ID is PLMN ID for Cellular- It is globally unique. ID is Chassis ID for Switch- derived from switch's mac address, designed to be globally unique. */ id: string; /** * LLDP Port ID or interface identifier on the switch or Service Set Identifier (WiFi network name) */ interfaceName?: string; additionalProperties?: never; }; additionalProperties?: never; }; audioTransmit: { /** * contains the transmit related fields common between all session types for each interval */ common: { /** * contains the fields common to both transmit and receive sessions for each interval */ common: { isMain: boolean; mariFecEnabled: boolean; mariRtxEnabled?: boolean; mariQosEnabled: boolean; mariLiteEnabled?: boolean; multistreamEnabled: boolean; isMediaBypassEdge?: boolean; isNewAudioPipeline?: boolean; direction: "sendrecv" | "sendonly" | "recvonly" | "inactive"; localPort?: number; peerReflexivePort?: number; remotePort?: number; maxConsecutiveStunAckInterval?: number; yellowMQITimes?: number; redMQITimes?: number; /** * "An indication if the relay point (Homer, MSE etc) was expecting to have media flowing and did so * Example for troubleshooting would be where the enterprise firewall is blocking * inbound rtp. In that case status=FLOW, client rx packets = 0" * */ hbhFlowStatus?: "FLOW" | "FLOW_PRE_ICE" | "FLOW_MEDIA_TIMEOUT" | "NO_FLOW_ERROR" | "NO_FLOW_EXPECTED"; additionalProperties?: never; }; fecPackets: number; fecBitrate: number; dscpValue?: number; rtxPackets?: number; rtxBitrate?: number; rtpPackets: number; rtpBitrate: number; rtcpPackets: number; rtcpBitrate: number; /** * RTCP Information for a given Interval */ txRtcpInfo?: { rtcpSrPackets: number; rtcpRrPackets: number; rtcpReportBlocks: number; rtcpSdesPackets: number; rtcpByePackets: number; rtcpAppPackets: number; rtcpRtpFbPacket: number; rtcpRtpFbNackPackets?: number; rtcpPsFbPackets: number; rtcpPsFbMariPackets: number; rtcpPsFbMariAdaptationPackets?: number; rtcpPsFbMariSyncPackets?: number; rtcpPsFbMultistreamPackets: number; rtcpPsFbMultistreamScrPackets?: number; rtcpPsFbMultistreamScrDuplicatePackets?: number; rtcpPsFbMultistreamScaAckingScrPackets?: number; rtcpPsFbMultistreamScaAutonomousPackets?: number; rtcpPsFbMultistreamScaAutonomousRetransmittedPackets?: number; rtcpPsFbMultistreamScaAckPackets?: number; rtcpPsFbFirPackets?: number; rtcpPsFbPliPackets?: number; rtcpXrPackets: number; additionalProperties?: never; }; stunPackets: number; stunBitrate: number; dtlsPackets: number; dtlsBitrate: number; transportType: "UDP" | "TCP" | "xTLS" | "TLS"; maxBitrate: number; availableBitrate: number; queueDelay: number; meanRoundTripTime?: number; maxRoundTripTime?: number; roundTripTime?: number; remoteReceiveRate?: number; maxRemoteLossRate?: number; remoteLossRate?: number; meanRemoteLossRate?: number; maxRemoteJitter?: number; remoteJitter?: number; meanRemoteJitter?: number; traversalMinDelayMs?: number; traversalMaxDelayMs?: number; traversalMeanDelayMs?: number; rtpInputFifoDelayMs?: number; rtpInputFifoMaxDelayMs?: number; rtpInputFifoMinDelayMs?: number; rtpInputFifoMeanDelayMs?: number; totalPackets?: number; totalBitrate?: number; /** * Tracks RTP/RTCP packet sizes */ mediaPacketSize?: { /** * Maximum RTP packet size (including media payload and RTP headers) */ maxRtpPacketSize?: number; /** * Average RTP packet size (including media payload and RTP headers) */ meanRtpPacketSize?: number; /** * Minimum RTP packet size (including media payload and RTP headers) */ minRtpPacketSize?: number; /** * Maximum RTCP packet size */ maxRtcpPacketSize?: number; additionalProperties?: never; }; cellularType?: | "cellular_2G" | "cellular_2.5G" | "cellular_3G" | "cellular_3.5G" | "cellular_4G" | "cellular_5G"; isVPN?: boolean; isVPNSplitTunneling?: boolean; additionalProperties?: never; }; streams: { /** * contains fields common to all transmit streams types */ common: { ssci: number; duplicateSsci?: number; rtpPackets: number; transmittedFrameRate?: number; requestedFrames?: number; transmittedBitrate: number; requestedBitrate: number; captureOffset?: number; codec: string; csi?: number[]; /** * This object tracks SSRC and CSRC changes for an RTP stream, session, etc */ sourceChanges?: { /** * The number of RTP SSRC changes seen. The first RTP packet seen should NOT be counted as a change. */ ssrcChanges: number; /** * The number of RTP CSRC changes seen. The first RTP packet seen should NOT be counted as a change. Changes from zero to non-zero CSRC should be counted as a change. */ csrcChanges: number; additionalProperties?: never; }; largeSceneChangeCount?: number; /** * This object tracks the the end to end delay(the delay between capture time of sender side and render time of receiver side) */ internalDelay?: { /** * The average delay (in milliseconds) from end to end */ meanDelay: number; /** * The maximum delay (in milliseconds) from end to end */ maxDelay: number; /** * The minimum delay (in milliseconds) from end to end */ minDelay: number; additionalProperties?: never; }; additionalProperties?: never; }; backgroundNoiseReductionMode?: | "AUDIO_BACKGROUND_NOISE_REDUCTION_NONE" | "AUDIO_BACKGROUND_NOISE_REDUCTION_HIGH_PERFORMANCE" | "AUDIO_BACKGROUND_NOISE_REDUCTION_LOW_POWER" | "AUDIO_BACKGROUND_NOISE_REDUCTION_AUTO_HIGH_PERFORMANCE" | "AUDIO_BACKGROUND_NOISE_REDUCTION_AUTO_LOW_POWER"; backgroundNoiseReductionTalkerMode?: | "AUDIO_BACKGROUND_NOISE_REDUCTION_TALKER_NONE" | "AUDIO_BACKGROUND_NOISE_REDUCTION_CLASSIC_MODE" | "AUDIO_BACKGROUND_NOISE_REDUCTION_SINGLE_TALKER_MODE" | "AUDIO_BACKGROUND_NOISE_REDUCTION_MULTI_TALKER_MODE" | "AUDIO_BACKGROUND_NOISE_REDUCTION_MUSIC_MODE"; audioTXSPCStatus?: | "AUDIO_SPC_STATUS_DISABLED" | "AUDIO_SPC_STATUS_SUSPENDED" | "AUDIO_SPC_STATUS_ENABLED"; audioTXSPCLevel?: | "AUDIO_NONE" | "AUDIO_LOW" | "AUDIO_MEDIUM" | "AUDIO_NORMAL" | "AUDIO_HIGH" | "AUDIO_HIGHPLUS" | "AUDIO_TOP"; /** * audio encoder engine performance data */ audioEncoderEngineInfo?: { /** * The number of audio packets sent to the encoder buffer */ encoderBufferPacket?: number; /** * The number of dropped audio packets before sent to the encoder buffer */ encoderBufferDroppedPacket?: number; /** * The average processing time (microseconds) on background noise reduction (BNR) */ averageBNRProcessTime?: number; /** * The average processing time (microseconds) on audio encoder pipeline */ averageEncoderProcessTime?: number; /** * how many frames are encoded by Xcodec in one minute. */ xcodecTotalEncodedFrames?: number; /** * what is the condition that encoder switch into Xcodec and back to other codec, and xcodec duration larger than 30s */ xcodecLongCaseCondition?: number; /** * what is the condition that encoder switch into Xcodec and back to other codec, and xcodec duration shorter than 30s */ xcodecShortCaseCondition?: number; /** * Xcodec encoder duration, larger than 30s */ xcodecLongEncodeTime?: number; /** * Xcodec encoder duration, shorter than 30s */ xcodecShortEncodeTime?: number; /** * number of encoder switch to Xcodec within 1 minute */ switchToXcodecCount?: number; /** * For every minute, the status related to xcodec will be represented by the value of the corresponding bit. */ xcodecStatus?: number; /** * is audio encode thread use lock-free queue */ encoderLockFree?: boolean; /** * Peak of 1-second average audio encoder queue sizes during the reporting interval. */ encoderQueueSizePeakAvg?: number; /** * Maximum queue wait time (in microseconds) for audio frames in the encoder buffer. */ encoderQueueLatencyMaxUs?: number; /** * Peak of 1-second average queue latencies (in microseconds) for audio frames in the encoder buffer. */ encoderQueueLatencyPeakAvgUs?: number; additionalProperties?: never; }; /** * audio transmitted algorithm modules performance data(AEC,AGC,NR,MultiChannelPreprocess) */ audioAlgorithmModulesInfo?: { /** * one char every 1 minute, 0 indicate 0db, plus 1 indicate -0.5dB */ aecNearPower: number; /** * one char every 1 minute, 0 indicate 0db, plus 1 indicate -0.5dB */ aecFarPower: number; /** * one char every 1 minute, 0 indicate 0db, plus 1 indicate -0.5dB */ aecLinearOutPower?: number; /** * one char every 1 minute, 0 indicate 0db, plus 1 indicate -0.5dB */ aecOutPower?: number; /** * one char every 1 minute, 0 indicate 54dB, plus 1 indicate +0.5dB */ aecERLE?: number; /** * one unsigned short every 1 minute */ aecProcessTime?: number; /** * one char every 1 minute, 0 indicate 0dB, plus 1 indicate +0.5dB */ aecERL?: number; /** * one char every 1 minute, 0 indicate 54dB, plus 1 indicate +0.5dB */ linearAecERLE?: number; /** * one char every 1 minute, 0 indicate 0ms, plus 1 indicate 10ms */ estDelay?: number; /** * one char every 1 minute */ aecType?: number; /** * one unsigned short every 1 minute */ aecCostTime?: number; /** * one unsigned short every 1 minute */ multichannelChangedDelay?: number; /** * one unsigend char every 1 minute, 0 indicate 0db, plus 1 indicate -0.5dB */ multichannelDelaySumOutPower?: number; /** * one unsigend char every 1 minute, 0 indicate 0db, plus 1 indicate -0.5dB */ multichannelAverageOutPower?: number; /** * one unsigned char every 1 minute, 0 for 0dB, plus 1 for -0.5dB */ speechRMS?: number; /** * one unsigned char every 1 minute, 0 for 0dB, plus 1 for -0.5dB */ maxSpeechRMS?: number; /** * one unsigned char every 1 minute, 0 for 0dB, plus 1 for -0.5dB */ maxRMS?: number; /** * one unsigned char every 1 minute, 0 for 0dB, plus 1 for -0.5dB */ maxRMSBeforeEncode?: number; /** * one unsigned char every 1 minute, 0 for 0dB, plus 1 for -0.5dB */ speechRMSBeforeDAGC?: number; /** * one unsigned char every 1 minute, 0 for 0dB, plus 1 for -0.5dB */ speechRMSAfterBNR?: number; /** * one unsigned char every 1 minute, 0 for 0dB, plus 1 for -0.5dB */ speechRMSBeforeEncode?: number; /** * one unsigned char every 1 minute, 0 for 0dB, plus 1 for -0.5dB */ avrRMS?: number; /** * one integer value in dB every 1 minute, range is -10dB to 40dB */ appliedInitialGain?: number; /** * one unsigned char every 1 minute, 10 means capture zero data ratio is 10% */ captureZeroRatio?: number; /** * one unsigned char every 1 minute, 10 means volume drop times is 10 */ volumeDropTimes?: number; /** * one unsigned char every 1 minute, 0 for 0s, plus 4 for +1s */ speechLength?: number; /** * one unsigned char every 1 minute, 0 for 0s, plus 20 for +1s */ agcConvergenceTime?: number; /** * one unsigned char every 1 minute, VAD value to reflect speech quality */ speechQuality?: number; /** * one char every 1 minute. */ remoteIOStatus?: number; /** * one char every 1 minute */ multichannelPreprocessEnabled?: number; /** * one char every 1 minute */ bypassWindowsAPOAllowListEnabled?: number; /** * one char every 1 minute, 0 for 0dB, plus 1 for 0.5dB */ bnrSNR?: number; /** * one unsigned short every 1 minute */ bnrTRN?: number; /** * one short every 1 minute */ ftTotal?: number; /** * one short every 1 minute */ noiseTotal?: number; /** * one short every 1 minute */ echoTotal?: number; /** * one short every 1 minute */ ftLeakage?: number; /** * one short every 1 minute */ noiseLeakage?: number; /** * one short every 1 minute */ echoLeakage?: number; /** * one char every 1 minute, 0 indicate 0db, plus 1 indicate 0.0472dB. */ multichannelDelaySumAndDirectMixRMSRatio?: number; windowsAPOBypassed?: boolean; /** * one short every 1 minute */ aecStereoStatus?: number; /** * one short every 1 minute,0 indicate 90%,plus 1 indicate 0.1% */ vadRetentionOnMute?: number; /** * one unsigned short every 1 minute */ averageTxModuleCostTime?: number; captureAnalogAGCEnabled?: boolean; /** * one float every 1 minute */ bnrInEnergyBelow4K?: number; /** * one float every 1 minute */ bnrInEnergy4KTo8K?: number; /** * one short every 1 minute */ opusDredEncodeFramesPerMin?: number; /** * one short every 1 minute */ opusDredTxMaxCostTimePerMin?: number; /** * one short every 1 minute */ opusDredTxAvgCostTimePerMin?: number; /** * one short every 1 minute */ encoderTxMaxCostTimePerMin?: number; /** * one short every 1 minute */ encoderTxAvgCostTimePerMin?: number; /** * one int every 1 minute */ txEffectiveBandwidth?: number; /** * one int64 every 1 minute */ txBeforeOnCaptureDataJitterHistorgram?: number; /** * one int64 every 1 minute */ txAfterOnCaptureDataJitterHistorgram?: number; /** * one int64 every 1 minute */ txBeforeBufferAndEncodeJitterHistorgram?: number; /** * one int64 every 1 minute */ txAfterBufferAndEncodeJitterHistorgram?: number; /** * one short every 1 minute */ txBeforeBufferAndEncodeJitterP50Offset?: number; /** * one short every 1 minute */ txBeforeBufferAndEncodeJitterP95Offset?: number; /** * one short every 1 minute */ txAfterBufferAndEncodeJitterP50Offset?: number; /** * one short every 1 minute */ txAfterBufferAndEncodeJitterP95Offset?: number; /** * one float every 1 minute */ txbweExecuteTime?: number; /** * one int8 every 1 minute */ aecLookBackFrames?: number; additionalProperties?: never; }; /** * audio transmit pipeline modules' quality metric */ audioModuleQualityInfo?: {}; audioCaptureMethod?: "AUDIO_ANDROID_JAVA_METHOD" | "AUDIO_ANDROID_AAUDIO_METHOD"; additionalProperties?: never; }[]; /** * information about tracked audio levels */ levels?: { /** * The average audio input gain for a microphone or speaker, in decibels */ audioMeanGain?: number; /** * The minimum audio input gain for a microphone or speaker, in decibels */ audioMinGain?: number; /** * The maximum audio input gain for a microphone or speaker, in decibels */ audioMaxGain?: number; /** * The mean audio output volume for a microphone or speaker, in absolute volume [0-65535] */ audioMeanVolume?: number; /** * The min audio output volume for a microphone or speaker, in absolute volume [0-65535] */ audioMinVolume?: number; /** * The max audio output volume for a microphone or speaker, in absolute volume [0-65535] */ audioMaxVolume?: number; additionalProperties?: never; }; captureHardwareProvidedAudioPacketsPerSecond?: number; sharedAudioPacketsPerSecond?: number; /** * one int64 every 1 minute */ txAfterNetworkThreadJitterHistorgram?: number; /** * one short every 1 minute */ txAfterNetworkThreadJitterP50Offset?: number; /** * one short every 1 minute */ txAfterNetworkThreadJitterP95Offset?: number; mediaFoundationState?: number; /** * information about audio driver both on capture and playback side. */ audioCapturePlaybackDriverInfo?: { capture?: {}; playback?: {}; additionalProperties?: never; }; /** * The max jitter of time interval for audio system callback data and the sum of the audio data duration both on capture and playback side for all platforms. */ audioCapturePlaybackSystemCallback?: { capture?: {}; playback?: {}; additionalProperties?: never; }; /** * The audio processing cost time both on capture and playback side for all platforms. */ audioCapturePlaybackProcessingCostTime?: { capture?: {}; playback?: {}; additionalProperties?: never; }; /** * information about audio share device. */ audioShareDeviceInfo?: { openCostTimeMs?: number; reservedCost?: number; maxRms?: number; additionalProperties?: never; }; /** * The duration of audio system callback data lost both on capture and playback side for all platforms. */ audioCapturePlaybackCallbackLostDuration?: { capture?: {}; playback?: {}; additionalProperties?: never; }; additionalProperties?: never; }[]; videoTransmit: { /** * contains the transmit related fields common between all session types for each interval */ common: { /** * contains the fields common to both transmit and receive sessions for each interval */ common: { isMain: boolean; mariFecEnabled: boolean; mariRtxEnabled?: boolean; mariQosEnabled: boolean; mariLiteEnabled?: boolean; multistreamEnabled: boolean; isMediaBypassEdge?: boolean; isNewAudioPipeline?: boolean; direction: "sendrecv" | "sendonly" | "recvonly" | "inactive"; localPort?: number; peerReflexivePort?: number; remotePort?: number; maxConsecutiveStunAckInterval?: number; yellowMQITimes?: number; redMQITimes?: number; /** * "An indication if the relay point (Homer, MSE etc) was expecting to have media flowing and did so * Example for troubleshooting would be where the enterprise firewall is blocking * inbound rtp. In that case status=FLOW, client rx packets = 0" * */ hbhFlowStatus?: "FLOW" | "FLOW_PRE_ICE" | "FLOW_MEDIA_TIMEOUT" | "NO_FLOW_ERROR" | "NO_FLOW_EXPECTED"; additionalProperties?: never; }; fecPackets: number; fecBitrate: number; dscpValue?: number; rtxPackets?: number; rtxBitrate?: number; rtpPackets: number; rtpBitrate: number; rtcpPackets: number; rtcpBitrate: number; /** * RTCP Information for a given Interval */ txRtcpInfo?: { rtcpSrPackets: number; rtcpRrPackets: number; rtcpReportBlocks: number; rtcpSdesPackets: number; rtcpByePackets: number; rtcpAppPackets: number; rtcpRtpFbPacket: number; rtcpRtpFbNackPackets?: number; rtcpPsFbPackets: number; rtcpPsFbMariPackets: number; rtcpPsFbMariAdaptationPackets?: number; rtcpPsFbMariSyncPackets?: number; rtcpPsFbMultistreamPackets: number; rtcpPsFbMultistreamScrPackets?: number; rtcpPsFbMultistreamScrDuplicatePackets?: number; rtcpPsFbMultistreamScaAckingScrPackets?: number; rtcpPsFbMultistreamScaAutonomousPackets?: number; rtcpPsFbMultistreamScaAutonomousRetransmittedPackets?: number; rtcpPsFbMultistreamScaAckPackets?: number; rtcpPsFbFirPackets?: number; rtcpPsFbPliPackets?: number; rtcpXrPackets: number; additionalProperties?: never; }; stunPackets: number; stunBitrate: number; dtlsPackets: number; dtlsBitrate: number; transportType: "UDP" | "TCP" | "xTLS" | "TLS"; maxBitrate: number; availableBitrate: number; queueDelay: number; meanRoundTripTime?: number; maxRoundTripTime?: number; roundTripTime?: number; remoteReceiveRate?: number; maxRemoteLossRate?: number; remoteLossRate?: number; meanRemoteLossRate?: number; maxRemoteJitter?: number; remoteJitter?: number; meanRemoteJitter?: number; traversalMinDelayMs?: number; traversalMaxDelayMs?: number; traversalMeanDelayMs?: number; rtpInputFifoDelayMs?: number; rtpInputFifoMaxDelayMs?: number; rtpInputFifoMinDelayMs?: number; rtpInputFifoMeanDelayMs?: number; totalPackets?: number; totalBitrate?: number; /** * Tracks RTP/RTCP packet sizes */ mediaPacketSize?: { /** * Maximum RTP packet size (including media payload and RTP headers) */ maxRtpPacketSize?: number; /** * Average RTP packet size (including media payload and RTP headers) */ meanRtpPacketSize?: number; /** * Minimum RTP packet size (including media payload and RTP headers) */ minRtpPacketSize?: number; /** * Maximum RTCP packet size */ maxRtcpPacketSize?: number; additionalProperties?: never; }; cellularType?: | "cellular_2G" | "cellular_2.5G" | "cellular_3G" | "cellular_3.5G" | "cellular_4G" | "cellular_5G"; isVPN?: boolean; isVPNSplitTunneling?: boolean; additionalProperties?: never; }; streams: { /** * contains fields common to all transmit streams types */ common: { ssci: number; duplicateSsci?: number; rtpPackets: number; transmittedFrameRate?: number; requestedFrames?: number; transmittedBitrate: number; requestedBitrate: number; captureOffset?: number; codec: string; csi?: number[]; /** * This object tracks SSRC and CSRC changes for an RTP stream, session, etc */ sourceChanges?: { /** * The number of RTP SSRC changes seen. The first RTP packet seen should NOT be counted as a change. */ ssrcChanges: number; /** * The number of RTP CSRC changes seen. The first RTP packet seen should NOT be counted as a change. Changes from zero to non-zero CSRC should be counted as a change. */ csrcChanges: number; additionalProperties?: never; }; largeSceneChangeCount?: number; /** * This object tracks the the end to end delay(the delay between capture time of sender side and render time of receiver side) */ internalDelay?: { /** * The average delay (in milliseconds) from end to end */ meanDelay: number; /** * The maximum delay (in milliseconds) from end to end */ maxDelay: number; /** * The minimum delay (in milliseconds) from end to end */ minDelay: number; additionalProperties?: never; }; additionalProperties?: never; }; transmittedFrameSize: number; requestedFrameSize: number; transmittedHeight: number; transmittedWidth: number; transmittedKeyFrames: number; requestedKeyFrames: number; transmittedKeyFramesFeedback?: number; transmittedKeyFramesConfigurationChange?: number; transmittedKeyFramesSceneChange?: number; transmittedKeyFramesOtherLayer?: number; transmittedKeyFramesClient?: number; transmittedKeyFramesPeriodic?: number; transmittedKeyFramesLocalDrop?: number; transmittedKeyFramesStartup?: number; transmittedKeyFramesUnknown?: number; transmittedKeyFramesEncLayerIndexChange?: number; transmittedKeyFramesSwitchingPoint?: number; localConfigurationChanges: number; remoteConfigurationChanges: number; h264CodecProfile: "BP" | "CHP"; /** * This object tracks AV1 encoder performance metrics and configuration */ av1Metrics?: { /** * AV1 encoder speed setting (0-5, where 0 is slowest/highest quality, 5 is fastest/lowest quality). * When AV1 is not active, 0 is reported and disableReason is set; when AV1 is active, the actual speed is reported and disableReason is absent. * Speed 0 when AV1 is active is reserved (e.g. research) and not used in production. * */ encodeSpeed?: number; /** * SIMD instruction set used by the AV1 encoder (e.g., "C", "SSE", "SSE2", "SSE3", "SSSE3", "SSE4_1", "AVX", "AVX2", "AVX512"). Only present when AV1 is actively encoding. */ simdType?: string; /** * Reason why AV1 encoding is disabled, if applicable. Empty or absent when AV1 is actively encoding. Examples include "NotEnabled", "RecordingOn", "DPCDisableAV1", "SPCDisableAV1", "RemoteNotSubscribed", "FeatureToggleOff". */ disableReason?: string; additionalProperties?: never; }; /** * Windowed PSNR (Peak Signal-to-Noise Ratio) metrics for local encoded video quality monitoring. * Reported when windowed PSNR is enabled for the encoder (AV1 or OpenH264/ H.264); values are * averaged over the reporting interval. Only present when at least one PSNR sample was taken * in the interval. * */ videoQuality?: { /** * Y-plane (luma) PSNR in dB, average over the reporting interval. */ psnrY?: number; /** * U-plane PSNR in dB, average over the reporting interval. Reserved (e.g. 0) when only luma is measured. */ psnrU?: number; /** * V-plane PSNR in dB, average over the reporting interval. Reserved (e.g. 0) when only luma is measured. */ psnrV?: number; /** * Combined YUV PSNR in dB, average over the reporting interval. Reserved (e.g. 0) when only luma is measured. */ psnrYuv?: number; /** * Number of PSNR samples included in the interval average. */ psnrSampleCount?: number; additionalProperties?: never; }; isAvatar?: boolean; /** * video encode quality metrics */ encodeQuality?: { minRegionQp?: number; maxFrameQp?: number; avgFrameQp?: number; maxNoiseLevel?: number; maxStrobeLevel?: number; videoStrobePattern?: | "VIDEO_STROBE_PATTERN_NONE" | "VIDEO_STROBE_PATTERN_LOCAL" | "VIDEO_STROBE_PATTERN_GLOBAL" | "VIDEO_STROBE_PATTERN_BAND" | "VIDEO_STROBE_PATTERN_MIXED"; maxAntiStrobeProcessMillis?: number; additionalProperties?: never; }; /** * video transmit downgrade reasons */ downgradeReason?: { isCamera: boolean; isNetwork: boolean; isCpu: boolean; isRequested?: boolean; isUser?: boolean; isHardware?: boolean; additionalProperties?: never; }; isHardwareEncoded?: boolean; backgroundAugmentationType?: | "VIDEO_BACKGROUND_AUGMENT_NONE" | "VIDEO_BACKGROUND_AUGMENT_BLUR" | "VIDEO_BACKGROUND_AUGMENT_REPLACE_IMAGE" | "VIDEO_BACKGROUND_AUGMENT_REPLACE_VIDEO" | "VIDEO_BACKGROUND_AUGMENT_BLUR_INHOUSE" | "VIDEO_BACKGROUND_AUGMENT_REPLACE_IMAGE_INHOUSE" | "VIDEO_BACKGROUND_AUGMENT_REPLACE_VIDEO_INHOUSE"; backgroundAugmentationFrameworkType?: | "VIDEO_VBG_FRAMEWORK_NONE" | "VIDEO_VBG_FRAMEWORK_COREML" | "VIDEO_VBG_FRAMEWORK_METAL" | "VIDEO_VBG_FRAMEWORK_CBASED" | "VIDEO_VBG_FRAMEWORK_OPENVINO" | "VIDEO_VBG_FRAMEWORK_OPENVINO_CPU" | "VIDEO_VBG_FRAMEWORK_XNN_GPU" | "VIDEO_VBG_FRAMEWORK_XNN_CPU" | "VIDEO_VBG_FRAMEWORK_XNN_NPU" | "VIDEO_VBG_FRAMEWORK_COREML_LADON" | "VIDEO_VBG_FRAMEWORK_METAL_LADON" | "VIDEO_VBG_FRAMEWORK_CBASED_LADON" | "VIDEO_VBG_FRAMEWORK_OPENVINO_LADON"; touchupMode?: "DISABLED" | "WEAK" | "MEDIUM" | "STRONG"; touchupBlendFactor?: number; /** * transmit video pipeline performance metric */ encoderProcessInfo?: { meanEncoderProcessMillis: number; maxEncoderProcessMillis: number; meanVbgProcessMillis?: number; maxVbgProcessMillis?: number; additionalProperties?: never; }; /** * transmit video processing pipeline performance metrics */ videoProcessInfo?: { meanDenoiseMillis?: number; meanMiaMillis?: number; meanDownsampleMillis?: number; maxDenoiseMillis?: number; maxMiaMillis?: number; maxDownsampleMillis?: number; additionalProperties?: never; }; backgroundAugmentationModelVersion?: string; ladonModelGpuLoadTime?: number; wmlHostStartErrorType?: | "NONE" | "FILE_NOT_FOUND" | "ACCESS_DENIED" | "BAD_EXE_FORMAT" | "EXE_MACHINE_TYPE_MISMATCH" | "POLICY_BLOCKED" | "VERIFICATION_FAILED" | "HOST_PATH_EMPTY" | "IPC_OPEN_FAILED" | "OTHER"; isGestureDetectorOn?: boolean; isBrbDetectorOn?: boolean; isRelightingOn?: boolean; relightingNeededFrameCount?: number; relightingSkippedFrameCount?: number; relightingConfidenceScore?: number; meanRelitPostProcessMillis?: number; faceDetectMillis?: number; faceDetectCount?: number; faceDetectSuccessRate?: number; badFacePositionRate?: number; capturedFrameRateNormalShare?: number; capturedFrameRateHFPSShare?: number; transmittedFrameRateNormalShare?: number; transmittedFrameRateHFPSShare?: number; /** * the method use to capture the screen for screen sharing */ screenCaptureMode?: | "Unknown" | "Default" | "MAG" | "DUP" | "AVF" | "CGS" | "GDI" | "DIRECTX" | "WINDOW" | "SCK" | "WGC" | "X11" | "MTR" | "WLD"; screenCaptureModeFallbackCount?: number; screenCaptureRecord?: string[]; /** * the mode of Presenter Overlay feature Apple provides */ presenterOverlayMode?: "Disabled" | "Small" | "Large"; processShareContentDetectMillis?: number; shareContentDetectedToApplyDelayMax?: number; /** * content type of sharing session */ shareContentDetectedType?: "video" | "text"; /** * method used to detect the content type of sharing session */ shareContentDetectedMethod?: "ai" | "vp" | "preferred" | "others"; shareContentSwitchedToVideoCount?: number; shareContentSwitchedToTextCount?: number; shareContentVideoDetectionFluctuatesMaxCount?: number; shareContentTextDetectionFluctuatesMaxCount?: number; shareContentVideoDuration?: number; shareContentTextDuration?: number; sharedDisplayWidth?: number; sharedDisplayHeight?: number; maxCodedFrameSize?: number; maxCodedFrameSizeIsFromKeyFrame?: boolean; /** * Details associated with a share floor type */ floorType?: { name: "DEFAULT" | "EMBEDDED_APP" | "OTHER"; priority?: {}; additionalProperties?: never; }; /** * view type of a video stream */ announcedView?: "Default" | "Speaker" | "Stereoscopic"; /** * type of crop/composition created by automatic framing on a video device */ cameraAppliedView?: { /** * name of the view */ viewName: "Overview" | "Closeup" | "Frames" | "OverlaidCloseup" | "Manual" | "Other"; /** * number of composed video panes (usually 1, but can be more in Frames view) */ numberOfVideoPanes: number; additionalProperties?: never; }; contentSourceInputs?: { sourceType: {}; sourceIdentifier: string; correlationId?: string; lastIntervalNumber?: number; height: number; width: number; frameRate: number; additionalProperties?: never; }[]; videoSourceInputs?: { /** * Video source type for outgoing video sessions */ sourceType: | "HDMI" | "SDI" | "InternCamera" | "VGA" | "USBC" | "USBCamera" | "VideoOverEthernet" | "AirPlay" | "Miracast" | "DirectShare" | "JpgPresentation" | "JpgVideoMutePoster" | "JpgRemoteAccess" | "Other"; sourceIdentifier: string; correlationId?: string; lastIntervalNumber?: number; height: number; width: number; frameRate: number; additionalProperties?: never; }[]; camOutputFps?: number; camOutputIntervalMin?: number; camOutputIntervalMax?: number; camOutputSysIntervalMin?: number; camOutputSysIntervalMax?: number; adaptedFrames?: number; droppedFrames?: number; sentFps?: number; vbgOutputFps?: number; encCtrlTargetedFps?: number; qstarTargetedFps?: number; feedToEncodeFps?: number; qstarBiasedFpsCount?: number; qstarBiasedFps?: number; qstarBiasedResCount?: number; qstarBiasedRes?: number; txMinSentFps?: number; maxFrameTransmitDelay?: number; maxFrameTransmitDelayIsFromKeyframe?: boolean; isSmoothEncodeEnabled?: boolean; numRcSkippedFrames?: number; largestRcSkippedFrames?: number; meanRcTheoreticalLatency?: number; maxRcTheoreticalLatency?: number; additionalProperties?: never; }[]; viewAnnouncements?: ("Default" | "Speaker" | "Stereoscopic")[]; viewReconfigurations?: number; txSimulcastNum?: number; additionalProperties?: never; }[]; audioReceive: { /** * contains the receive related fields between all sessions types for each interval. */ common: { /** * contains the fields common to both transmit and receive sessions for each interval */ common: { isMain: boolean; mariFecEnabled: boolean; mariRtxEnabled?: boolean; mariQosEnabled: boolean; mariLiteEnabled?: boolean; multistreamEnabled: boolean; isMediaBypassEdge?: boolean; isNewAudioPipeline?: boolean; direction: "sendrecv" | "sendonly" | "recvonly" | "inactive"; localPort?: number; peerReflexivePort?: number; remotePort?: number; maxConsecutiveStunAckInterval?: number; yellowMQITimes?: number; redMQITimes?: number; /** * "An indication if the relay point (Homer, MSE etc) was expecting to have media flowing and did so * Example for troubleshooting would be where the enterprise firewall is blocking * inbound rtp. In that case status=FLOW, client rx packets = 0" * */ hbhFlowStatus?: "FLOW" | "FLOW_PRE_ICE" | "FLOW_MEDIA_TIMEOUT" | "NO_FLOW_ERROR" | "NO_FLOW_EXPECTED"; additionalProperties?: never; }; fecPackets: number; fecBitrate: number; dscpValue?: number; rtxPackets?: number; rtxBitrate?: number; meanRtxDelay?: number; maxRtxDelay?: number; rtpPackets: number; rtpBitrate: number; rtpHopByHopLost: number; mediaHopByHopLost: number; rtpRecovered: number; rtxRecovered?: number; rtcpPackets: number; rtcpBitrate: number; /** * RTCP Information for a given Interval */ rxRtcpInfo?: { rtcpSrPackets: number; rtcpRrPackets: number; rtcpReportBlocks: number; rtcpSdesPackets: number; rtcpByePackets: number; rtcpAppPackets: number; rtcpRtpFbPacket: number; rtcpRtpFbNackPackets?: number; rtcpPsFbPackets: number; rtcpPsFbMariPackets: number; rtcpPsFbMariAdaptationPackets?: number; rtcpPsFbMariSyncPackets?: number; rtcpPsFbMultistreamPackets: number; rtcpPsFbMultistreamScrPackets?: number; rtcpPsFbMultistreamScrDuplicatePackets?: number; rtcpPsFbMultistreamScaAckingScrPackets?: number; rtcpPsFbMultistreamScaAutonomousPackets?: number; rtcpPsFbMultistreamScaAutonomousRetransmittedPackets?: number; rtcpPsFbMultistreamScaAckPackets?: number; rtcpPsFbFirPackets?: number; rtcpPsFbPliPackets?: number; rtcpXrPackets: number; additionalProperties?: never; }; stunPackets: number; stunBitrate: number; dtlsPackets: number; dtlsBitrate: number; transportType: "UDP" | "TCP" | "xTLS" | "TLS"; maxBitrate: number; srtpUnprotectErrors: number; /** * SRTP/SRTCP unprotect error details */ srtpUnprotectErrorDetails?: { authFailures: number; cipherFailures: number; replayFailures: number; unknownFailures: number; additionalProperties?: never; }; srtcpUnprotectErrors?: number; /** * SRTP/SRTCP unprotect error details */ srtcpUnprotectErrorDetails?: { authFailures: number; cipherFailures: number; replayFailures: number; unknownFailures: number; additionalProperties?: never; }; totalPackets?: number; totalBitrate?: number; /** * Tracks RTP/RTCP packet sizes */ mediaPacketSize?: { /** * Maximum RTP packet size (including media payload and RTP headers) */ maxRtpPacketSize?: number; /** * Average RTP packet size (including media payload and RTP headers) */ meanRtpPacketSize?: number; /** * Minimum RTP packet size (including media payload and RTP headers) */ minRtpPacketSize?: number; /** * Maximum RTCP packet size */ maxRtcpPacketSize?: number; additionalProperties?: never; }; cellularType?: | "cellular_2G" | "cellular_2.5G" | "cellular_3G" | "cellular_3.5G" | "cellular_4G" | "cellular_5G"; isVPN?: boolean; isVPNSplitTunneling?: boolean; maxHbhJitter?: number; meanHbhJitter?: number; additionalProperties?: never; }; streams: { /** * contains fields common to all types of receive stream */ common: { ssci: number; rtpPackets: number; rtpEndToEndLost: number; rtpMaxEndToEndLoss?: number; rtpMinEndToEndLoss?: number; concealedFrames: number; maxConcealRunLength: number; activeSpeech?: number; activeSpeechConcealment?: number; maxConsecutiveActiveSpeechConcealment?: number; silenceFromGatewayNum?: number; inbandPacketLossRate?: number; cngPacketNum?: number; silenceSuppressionNum?: number; maxTimestampInterval?: number; maxUnderrunNum?: number; receivedFrameRate?: number; renderedFrameRate?: number; requestedFrameRate?: number; optimalFrameRate?: number; renderedHarmonicScore?: number; sentToRenderFrames?: number; renderedFrames?: number; renderedFrameSkips?: number; renderedFrameMaxContinuousSkip?: number; meanRtpJitter?: number; maxRtpJitter?: number; rtpJitter?: number; receivedBitrate: number; requestedBitrate: number; optimalBitrate: number; durationForSpeedChanged?: number; endToEndTransmitDelay?: number; csi: number[]; codec: string; language?: | "floor" | "si-af" | "si-sq" | "si-am" | "si-ar" | "si-hy" | "si-az" | "si-eu" | "si-be" | "si-bn" | "si-bs" | "si-bg" | "si-zh-HK" | "si-ca" | "si-ceb" | "si-co" | "si-hr" | "si-cs" | "si-da" | "si-nl" | "si-en" | "si-eo" | "si-et" | "si-fi" | "si-fr" | "si-fy" | "si-gl" | "si-ka" | "si-de" | "si-el" | "si-gu" | "si-zh-TW" | "si-ht" | "si-ha" | "si-haw" | "si-he" | "si-hi" | "si-hmn" | "si-hu" | "si-is" | "si-ig" | "si-id" | "si-ga" | "si-it" | "si-ja" | "si-jv" | "si-kn" | "si-kk" | "si-km" | "si-rw" | "si-ko" | "si-ku" | "si-ky" | "si-lo" | "si-la" | "si-lv" | "si-lt" | "si-lb" | "si-mk" | "si-mg" | "si-ms" | "si-ml" | "si-mt" | "si-zh" | "si-mi" | "si-mr" | "si-mn" | "si-my" | "si-ne" | "si-no" | "si-ny" | "si-or" | "si-ps" | "si-fa" | "si-pl" | "si-pt" | "si-pa" | "si-ro" | "si-ru" | "si-sm" | "si-gd" | "si-sr" | "si-st" | "si-sn" | "si-sd" | "si-si" | "si-sk" | "si-sl" | "si-so" | "si-es" | "si-su" | "si-sw" | "si-sv" | "si-tl" | "si-tg" | "si-ta" | "si-tt" | "si-te" | "si-th" | "si-tr" | "si-tk" | "si-uk" | "si-ur" | "si-ug" | "si-uz" | "si-vi" | "si-cy" | "si-xh" | "si-yi" | "si-yo" | "si-zu" | "si-Other"; /** * This object tracks SSRC and CSRC changes for an RTP stream, session, etc */ sourceChanges?: { /** * The number of RTP SSRC changes seen. The first RTP packet seen should NOT be counted as a change. */ ssrcChanges: number; /** * The number of RTP CSRC changes seen. The first RTP packet seen should NOT be counted as a change. Changes from zero to non-zero CSRC should be counted as a change. */ csrcChanges: number; additionalProperties?: never; }; /** * The object tracks the detail reasons by which concealment is caused. The unit of metrics depend on upper-level objects. Currently, packet or frame can be used as unit. */ concealmentReasonByPacket?: { /** * concealment caused by network loss */ byNetwork?: number; /** * concealment caused by buffer overflow. when total buffer length exceeds max delay threshold, buffer will overflow and data will be dropped. */ byOverflow?: number; /** * concealment caused by buffer is reset. */ byReset?: number; /** * concealment caused by late packet or frame. some packets or frames arrive late and the previous one has been played. */ byLate?: number; /** * concealment caused by poor performance. */ byPoorPerformance?: number; /** * only for audio. Number of concealment packets/frames sent to the audio decoder when frames are held back to increase re-order audio delay. */ byIncreasedDelay?: number; /** * only for video. concealment caused by AV sync */ byAVSync?: number; /** * only for video. Some video frames which have not been complete are forced to pop up because the subsequent frame has been complete. This cause video concealment. */ byPrevFramePopped?: number; /** * concealment caused by the other unknown reasons */ byOthers?: number; additionalProperties?: never; }; /** * The object tracks the detail reasons by which concealment is caused. The unit of metrics depend on upper-level objects. Currently, packet or frame can be used as unit. */ concealmentReasonByFrame?: { /** * concealment caused by network loss */ byNetwork?: number; /** * concealment caused by buffer overflow. when total buffer length exceeds max delay threshold, buffer will overflow and data will be dropped. */ byOverflow?: number; /** * concealment caused by buffer is reset. */ byReset?: number; /** * concealment caused by late packet or frame. some packets or frames arrive late and the previous one has been played. */ byLate?: number; /** * concealment caused by poor performance. */ byPoorPerformance?: number; /** * only for audio. Number of concealment packets/frames sent to the audio decoder when frames are held back to increase re-order audio delay. */ byIncreasedDelay?: number; /** * only for video. concealment caused by AV sync */ byAVSync?: number; /** * only for video. Some video frames which have not been complete are forced to pop up because the subsequent frame has been complete. This cause video concealment. */ byPrevFramePopped?: number; /** * concealment caused by the other unknown reasons */ byOthers?: number; additionalProperties?: never; }; /** * the number of consecutive concealment time which is larger than the threshold in one minute. Currently, 60 and 120 ms are used as the threshold. */ interruptCount?: { /** * interrupt count longer than 60 ms in one minute */ longerThan60?: number; /** * interrupt count longer than 120 ms in one minute */ longerThan120?: number; additionalProperties?: never; }; /** * This object tracks the delay associated with a jitter buffer */ jitterBufferDelay?: { /** * The average delay (in milliseconds) used by the jitter buffer */ meanDelay: number; /** * The maximum delay (in milliseconds) used by the jitter buffer */ maxDelay: number; /** * The minimum delay (in milliseconds) used by the jitter buffer */ minDelay: number; additionalProperties?: never; }; /** * This object tracks the the end to end delay(the delay between capture time of sender side and render time of receiver side) */ endToEndDelay?: { /** * The average delay (in milliseconds) from end to end */ meanDelay: number; /** * The maximum delay (in milliseconds) from end to end */ maxDelay: number; /** * The minimum delay (in milliseconds) from end to end */ minDelay: number; additionalProperties?: never; }; /** * This object tracks the the end to end delay(the delay between capture time of sender side and render time of receiver side) */ endToEndDelayKeyFrame?: { /** * The average delay (in milliseconds) from end to end */ meanDelay: number; /** * The maximum delay (in milliseconds) from end to end */ maxDelay: number; /** * The minimum delay (in milliseconds) from end to end */ minDelay: number; additionalProperties?: never; }; endToEndDelayByRtcp?: number; /** * The components of the E2E delay */ endToEndDelayComponents?: { /** * avg Time(MS) spent in sender processing */ senderTraversalDelay?: number; /** * Avg of RTT/2 between sender client and server */ senderTransmitDelay?: number; /** * Avg of total transmit time spent among all servers */ totalServerTransmitDelay?: number; /** * Avg of total processing time spent in all servers */ totalServerTraversalDelay?: number; /** * avg Time(MS) spent in receiver processing */ receiverTraversalDelay?: number; /** * Avg of RTT/2 between receiver client and server */ receiverTransmitDelay?: number; additionalProperties?: never; }; totalHops?: number; serverCrossDataCenterCnt?: number; linkNodeList?: { /** * The node type which shows the client and server type shown in the enum lists. */ nodeType?: | "WME_CLIENT_WINDOWS" | "WME_CLIENT_MAC" | "WME_CLIENT_IOS" | "WME_CLIENT_ANDROID" | "WME_CLIENT_LINUX" | "DEVICE_CLIENT" | "HOMER_VIDEO_MESH" | "HOMER_CLOUD" | "EDONUS_CLOUD" | "EDONUS_VIDEO_MESH" | "EDGE"; /** * The location info, for example 'CN' */ regionInfo?: string; /** * The processing time spent in client or server */ traversalDelay?: number; /** * RTT/2 between the current node with the last hop */ transmitDelay?: number; /** * The max processing time spent in client or server */ maxTraversalDelay?: number; /** * The max RTT/2 between the current node with the last hop */ maxTransmitDelay?: number; /** * Whether the current node is cross region with the last hop. false means "not cross" and true means "cross region". */ isCrossRegion?: boolean; additionalProperties?: never; }[]; /** * Aggregated end to end delay representing the mean, max, min delay group by csi */ endToEndDelayByCsi?: { csi?: number; /** * This object tracks the the end to end delay(the delay between capture time of sender side and render time of receiver side) */ delay?: { /** * The average delay (in milliseconds) from end to end */ meanDelay: number; /** * The maximum delay (in milliseconds) from end to end */ maxDelay: number; /** * The minimum delay (in milliseconds) from end to end */ minDelay: number; additionalProperties?: never; }; additionalProperties?: never; }[]; additionalProperties?: never; }; isRxCallBackgroundNoiseReductionModeOn?: boolean; isMeasureSNROn?: boolean; averageSNRValue?: number; /** * contains fields for QOEM MOS score */ audioqoem?: { version: string; /** * Average Estimated Mean Opinion Score by considering network’s jitter, loss etc. */ averageNetMOS: number; /** * Min Estimated Mean Opinion score by considering network’s jitter, loss etc. */ minNetMOS: number; /** * Average Estimated Mean Opinion Score jitter buffer’s status, such as drop packet, do PLC, do recover etc. */ averageJitterMOS: number; /** * Min Estimated Mean Opinion Score jitter buffer’s status, such as drop packet, do PLC, do recover etc. */ minJitterMOS: number; /** * Perceptual Evaluation of Speech Quality - Listening Quality Objective (PESQ-LQO) */ pesqLQO?: number; additionalProperties?: never; }; audioPlaybackMethod?: "AUDIO_ANDROID_JAVA_METHOD" | "AUDIO_ANDROID_AAUDIO_METHOD"; /** * audio received algorithm modules performance data(AGC,NR,MultiChannelPreprocess) */ audioAlgorithmModulesInfo?: { /** * one unsigned char every 1 minute, 0 for 0dB, plus 1 for -0.5dB */ speechRMS?: number; /** * one unsigned char every 1 minute, 0 for 0dB, plus 1 for -0.5dB */ maxSpeechRMS?: number; /** * one unsigned char every 1 minute, 0 for 0dB, plus 1 for -0.5dB */ maxRMS?: number; /** * one unsigned char every 1 minute, 0 for 0dB, plus 1 for -0.5dB */ avrRMS?: number; /** * one unsigned char every 1 minute, 0 for 0dB, plus 1 for -0.5dB */ maxRMSBeforeRxSE?: number; /** * one unsigned char every 1 minute, 0 for 0dB, plus 1 for -0.5dB */ maxRMSAfterRxSE?: number; /** * one unsigned char every 1 minute, 0 for 0dB, plus 1 for -0.5dB */ maxRMSBeforePDAGC?: number; /** * one unsigned char every 1 minute, 0 for 0s, plus 4 for +1s */ speechLength?: number; /** * one unsigned char every 1 minute, VAD value to reflect speech quality */ speechQuality?: number; /** * one unsigned short every 1 minute */ bnrTRN?: number; /** * one float every 1 minute, in milliseconds */ averageSEProcessTime?: number; /** * one int every 1 minute, in milliseconds */ maxSEProcessTime?: number; /** * one unsigned char every 1 minute, in seconds */ bnrLength?: number; /** * one unsigned char every 1 minute, in seconds */ bweLength?: number; /** * one unsigned char every 1 minute, in seconds */ mohLength?: number; /** * one unsigned char every 1 minute, in seconds */ beepLength?: number; /** * sum count in number */ sumSEOvertimeCount?: number; /** * sum count in number */ sumDisableSECountbyDPC?: number; /** * one float every 1 minute. */ wmosMedian?: number; /** * one float every 1 minute. */ wmosDispersion?: number; /** * one unsigned char every 1 minute, 0 for 0dB, plus 1 for -0.5dB */ speechRMSRaw?: number; /** * one unsigned short every 1 minute */ averageRxModuleCostTime?: number; /** * one short every 1 minute */ opusDredRxFrameCount?: number; /** * one short every 1 minute */ opusDredRxMaxCostTime?: number; /** * one short every 1 minute */ opusDredRxAvgCostTime?: number; /** * one short every 1 minute */ decoderRxMaxCostTimePerMin?: number; /** * one short every 1 minute */ decoderRxAvgCostTimePerMin?: number; additionalProperties?: never; }; /** * audio receive pipeline modules' quality metric */ audioModuleQualityInfo?: { /** * how many frames are decoded by Xcodec in one minute. */ xcodecTotalDecodedFrames?: number; /** * how many frames encoded with 6kbps (from primary packets) are decoded by Xcodec in one minute. */ xcodecDecoded6kFrames?: number; /** * how many frames encoded with 3kbps (from redundant packets) are decoded by Xcodec in one minute. */ xcodecDecoded3kFrames?: number; /** * how many frames encoded with 2kbps (from redundant packets) are decoded by Xcodec in one minute. */ xcodecDecoded2kFrames?: number; /** * how many frames encoded with 1kbps (from redundant packets) are decoded by Xcodec in one minute. */ xcodecDecoded1kFrames?: number; /** * how many frames are lost and concealed by Xcodec in one minute. */ xcodecDecodedPLCFrames?: number; additionalProperties?: never; }; /** * This object tracks the the audio video sync data, to see whether the video timestamp is matching with audio timestamp */ avSync?: { /** * Compared with audio, the maximum video delay time (in milliseconds) in last interval */ maxVideoLateInterval?: number; /** * Compared with audio, the maximum video early time (in milliseconds) in last interval */ maxVideoEarlyInterval?: number; /** * Compared with audio, the unsync video frames get played out / total frames */ decidePlayedUnsyncRatio?: number; /** * Compared with audio, the sync video frames get played out / total frames (with undetectable latency, in range (-100ms, 25ms)) */ decidePlayedSyncRatio?: number; /** * The max delay (in milliseconds) in last interval applied to audio for avsync */ maxAudioAdjustment?: number; /** * The max delay (in milliseconds) in last interval applied to video for avsync */ maxVideoAdjustment?: number; /** * The number of milliseconds in the last 60s (MQE interval) for which a received audio stream was matched to a video stream from the same source. */ totalMatched?: number; /** * The total number of milliseconds in the last 60s (MQE interval) where the received audio stream was matched to a video stream and the common clock was able to be determined (e.g. both streams had known values from recent RTCP SR). */ totalCanSync?: number; /** * The total number of milliseconds of audio that was added as an AV sync adjustment in the last 60s (e.g. if the audio playout was slowed down by inserting comfort noise or similar) */ totalAudioStretched?: number; /** * The total number of milliseconds of audio that was dropped as an AV sync adjustment in the last 60s, either not decoded at all or decoded but not rendered (e.g. if the audio playout was sped up by decoding multiple frames but only rendering a subset of those frames) */ totalAudioShrunk?: number; /** * The number of milliseconds of video that was added as an AV sync adjustment in the last 60s */ totalVideoStretched?: number; /** * The number of milliseconds of video that was dropped as an AV sync adjustment in the last 60s */ totalVideoShrunk?: number; additionalProperties?: never; }; additionalProperties?: never; }[]; /** * information about tracked audio levels */ levels?: { /** * The average audio input gain for a microphone or speaker, in decibels */ audioMeanGain?: number; /** * The minimum audio input gain for a microphone or speaker, in decibels */ audioMinGain?: number; /** * The maximum audio input gain for a microphone or speaker, in decibels */ audioMaxGain?: number; /** * The mean audio output volume for a microphone or speaker, in absolute volume [0-65535] */ audioMeanVolume?: number; /** * The min audio output volume for a microphone or speaker, in absolute volume [0-65535] */ audioMinVolume?: number; /** * The max audio output volume for a microphone or speaker, in absolute volume [0-65535] */ audioMaxVolume?: number; additionalProperties?: never; }; playbackHardwareRequiredAudioPacketsPerSecond?: number; additionalProperties?: never; }[]; videoReceive: { /** * contains the receive related fields between all sessions types for each interval. */ common: { /** * contains the fields common to both transmit and receive sessions for each interval */ common: { isMain: boolean; mariFecEnabled: boolean; mariRtxEnabled?: boolean; mariQosEnabled: boolean; mariLiteEnabled?: boolean; multistreamEnabled: boolean; isMediaBypassEdge?: boolean; isNewAudioPipeline?: boolean; direction: "sendrecv" | "sendonly" | "recvonly" | "inactive"; localPort?: number; peerReflexivePort?: number; remotePort?: number; maxConsecutiveStunAckInterval?: number; yellowMQITimes?: number; redMQITimes?: number; /** * "An indication if the relay point (Homer, MSE etc) was expecting to have media flowing and did so * Example for troubleshooting would be where the enterprise firewall is blocking * inbound rtp. In that case status=FLOW, client rx packets = 0" * */ hbhFlowStatus?: "FLOW" | "FLOW_PRE_ICE" | "FLOW_MEDIA_TIMEOUT" | "NO_FLOW_ERROR" | "NO_FLOW_EXPECTED"; additionalProperties?: never; }; fecPackets: number; fecBitrate: number; dscpValue?: number; rtxPackets?: number; rtxBitrate?: number; meanRtxDelay?: number; maxRtxDelay?: number; rtpPackets: number; rtpBitrate: number; rtpHopByHopLost: number; mediaHopByHopLost: number; rtpRecovered: number; rtxRecovered?: number; rtcpPackets: number; rtcpBitrate: number; /** * RTCP Information for a given Interval */ rxRtcpInfo?: { rtcpSrPackets: number; rtcpRrPackets: number; rtcpReportBlocks: number; rtcpSdesPackets: number; rtcpByePackets: number; rtcpAppPackets: number; rtcpRtpFbPacket: number; rtcpRtpFbNackPackets?: number; rtcpPsFbPackets: number; rtcpPsFbMariPackets: number; rtcpPsFbMariAdaptationPackets?: number; rtcpPsFbMariSyncPackets?: number; rtcpPsFbMultistreamPackets: number; rtcpPsFbMultistreamScrPackets?: number; rtcpPsFbMultistreamScrDuplicatePackets?: number; rtcpPsFbMultistreamScaAckingScrPackets?: number; rtcpPsFbMultistreamScaAutonomousPackets?: number; rtcpPsFbMultistreamScaAutonomousRetransmittedPackets?: number; rtcpPsFbMultistreamScaAckPackets?: number; rtcpPsFbFirPackets?: number; rtcpPsFbPliPackets?: number; rtcpXrPackets: number; additionalProperties?: never; }; stunPackets: number; stunBitrate: number; dtlsPackets: number; dtlsBitrate: number; transportType: "UDP" | "TCP" | "xTLS" | "TLS"; maxBitrate: number; srtpUnprotectErrors: number; /** * SRTP/SRTCP unprotect error details */ srtpUnprotectErrorDetails?: { authFailures: number; cipherFailures: number; replayFailures: number; unknownFailures: number; additionalProperties?: never; }; srtcpUnprotectErrors?: number; /** * SRTP/SRTCP unprotect error details */ srtcpUnprotectErrorDetails?: { authFailures: number; cipherFailures: number; replayFailures: number; unknownFailures: number; additionalProperties?: never; }; totalPackets?: number; totalBitrate?: number; /** * Tracks RTP/RTCP packet sizes */ mediaPacketSize?: { /** * Maximum RTP packet size (including media payload and RTP headers) */ maxRtpPacketSize?: number; /** * Average RTP packet size (including media payload and RTP headers) */ meanRtpPacketSize?: number; /** * Minimum RTP packet size (including media payload and RTP headers) */ minRtpPacketSize?: number; /** * Maximum RTCP packet size */ maxRtcpPacketSize?: number; additionalProperties?: never; }; cellularType?: | "cellular_2G" | "cellular_2.5G" | "cellular_3G" | "cellular_3.5G" | "cellular_4G" | "cellular_5G"; isVPN?: boolean; isVPNSplitTunneling?: boolean; maxHbhJitter?: number; meanHbhJitter?: number; additionalProperties?: never; }; configuredPixelRate?: number; streams: { /** * contains fields common to all types of receive stream */ common: { ssci: number; rtpPackets: number; rtpEndToEndLost: number; rtpMaxEndToEndLoss?: number; rtpMinEndToEndLoss?: number; concealedFrames: number; maxConcealRunLength: number; activeSpeech?: number; activeSpeechConcealment?: number; maxConsecutiveActiveSpeechConcealment?: number; silenceFromGatewayNum?: number; inbandPacketLossRate?: number; cngPacketNum?: number; silenceSuppressionNum?: number; maxTimestampInterval?: number; maxUnderrunNum?: number; receivedFrameRate?: number; renderedFrameRate?: number; requestedFrameRate?: number; optimalFrameRate?: number; renderedHarmonicScore?: number; sentToRenderFrames?: number; renderedFrames?: number; renderedFrameSkips?: number; renderedFrameMaxContinuousSkip?: number; meanRtpJitter?: number; maxRtpJitter?: number; rtpJitter?: number; receivedBitrate: number; requestedBitrate: number; optimalBitrate: number; durationForSpeedChanged?: number; endToEndTransmitDelay?: number; csi: number[]; codec: string; language?: | "floor" | "si-af" | "si-sq" | "si-am" | "si-ar" | "si-hy" | "si-az" | "si-eu" | "si-be" | "si-bn" | "si-bs" | "si-bg" | "si-zh-HK" | "si-ca" | "si-ceb" | "si-co" | "si-hr" | "si-cs" | "si-da" | "si-nl" | "si-en" | "si-eo" | "si-et" | "si-fi" | "si-fr" | "si-fy" | "si-gl" | "si-ka" | "si-de" | "si-el" | "si-gu" | "si-zh-TW" | "si-ht" | "si-ha" | "si-haw" | "si-he" | "si-hi" | "si-hmn" | "si-hu" | "si-is" | "si-ig" | "si-id" | "si-ga" | "si-it" | "si-ja" | "si-jv" | "si-kn" | "si-kk" | "si-km" | "si-rw" | "si-ko" | "si-ku" | "si-ky" | "si-lo" | "si-la" | "si-lv" | "si-lt" | "si-lb" | "si-mk" | "si-mg" | "si-ms" | "si-ml" | "si-mt" | "si-zh" | "si-mi" | "si-mr" | "si-mn" | "si-my" | "si-ne" | "si-no" | "si-ny" | "si-or" | "si-ps" | "si-fa" | "si-pl" | "si-pt" | "si-pa" | "si-ro" | "si-ru" | "si-sm" | "si-gd" | "si-sr" | "si-st" | "si-sn" | "si-sd" | "si-si" | "si-sk" | "si-sl" | "si-so" | "si-es" | "si-su" | "si-sw" | "si-sv" | "si-tl" | "si-tg" | "si-ta" | "si-tt" | "si-te" | "si-th" | "si-tr" | "si-tk" | "si-uk" | "si-ur" | "si-ug" | "si-uz" | "si-vi" | "si-cy" | "si-xh" | "si-yi" | "si-yo" | "si-zu" | "si-Other"; /** * This object tracks SSRC and CSRC changes for an RTP stream, session, etc */ sourceChanges?: { /** * The number of RTP SSRC changes seen. The first RTP packet seen should NOT be counted as a change. */ ssrcChanges: number; /** * The number of RTP CSRC changes seen. The first RTP packet seen should NOT be counted as a change. Changes from zero to non-zero CSRC should be counted as a change. */ csrcChanges: number; additionalProperties?: never; }; /** * The object tracks the detail reasons by which concealment is caused. The unit of metrics depend on upper-level objects. Currently, packet or frame can be used as unit. */ concealmentReasonByPacket?: { /** * concealment caused by network loss */ byNetwork?: number; /** * concealment caused by buffer overflow. when total buffer length exceeds max delay threshold, buffer will overflow and data will be dropped. */ byOverflow?: number; /** * concealment caused by buffer is reset. */ byReset?: number; /** * concealment caused by late packet or frame. some packets or frames arrive late and the previous one has been played. */ byLate?: number; /** * concealment caused by poor performance. */ byPoorPerformance?: number; /** * only for audio. Number of concealment packets/frames sent to the audio decoder when frames are held back to increase re-order audio delay. */ byIncreasedDelay?: number; /** * only for video. concealment caused by AV sync */ byAVSync?: number; /** * only for video. Some video frames which have not been complete are forced to pop up because the subsequent frame has been complete. This cause video concealment. */ byPrevFramePopped?: number; /** * concealment caused by the other unknown reasons */ byOthers?: number; additionalProperties?: never; }; /** * The object tracks the detail reasons by which concealment is caused. The unit of metrics depend on upper-level objects. Currently, packet or frame can be used as unit. */ concealmentReasonByFrame?: { /** * concealment caused by network loss */ byNetwork?: number; /** * concealment caused by buffer overflow. when total buffer length exceeds max delay threshold, buffer will overflow and data will be dropped. */ byOverflow?: number; /** * concealment caused by buffer is reset. */ byReset?: number; /** * concealment caused by late packet or frame. some packets or frames arrive late and the previous one has been played. */ byLate?: number; /** * concealment caused by poor performance. */ byPoorPerformance?: number; /** * only for audio. Number of concealment packets/frames sent to the audio decoder when frames are held back to increase re-order audio delay. */ byIncreasedDelay?: number; /** * only for video. concealment caused by AV sync */ byAVSync?: number; /** * only for video. Some video frames which have not been complete are forced to pop up because the subsequent frame has been complete. This cause video concealment. */ byPrevFramePopped?: number; /** * concealment caused by the other unknown reasons */ byOthers?: number; additionalProperties?: never; }; /** * the number of consecutive concealment time which is larger than the threshold in one minute. Currently, 60 and 120 ms are used as the threshold. */ interruptCount?: { /** * interrupt count longer than 60 ms in one minute */ longerThan60?: number; /** * interrupt count longer than 120 ms in one minute */ longerThan120?: number; additionalProperties?: never; }; /** * This object tracks the delay associated with a jitter buffer */ jitterBufferDelay?: { /** * The average delay (in milliseconds) used by the jitter buffer */ meanDelay: number; /** * The maximum delay (in milliseconds) used by the jitter buffer */ maxDelay: number; /** * The minimum delay (in milliseconds) used by the jitter buffer */ minDelay: number; additionalProperties?: never; }; /** * This object tracks the the end to end delay(the delay between capture time of sender side and render time of receiver side) */ endToEndDelay?: { /** * The average delay (in milliseconds) from end to end */ meanDelay: number; /** * The maximum delay (in milliseconds) from end to end */ maxDelay: number; /** * The minimum delay (in milliseconds) from end to end */ minDelay: number; additionalProperties?: never; }; /** * This object tracks the the end to end delay(the delay between capture time of sender side and render time of receiver side) */ endToEndDelayKeyFrame?: { /** * The average delay (in milliseconds) from end to end */ meanDelay: number; /** * The maximum delay (in milliseconds) from end to end */ maxDelay: number; /** * The minimum delay (in milliseconds) from end to end */ minDelay: number; additionalProperties?: never; }; endToEndDelayByRtcp?: number; /** * The components of the E2E delay */ endToEndDelayComponents?: { /** * avg Time(MS) spent in sender processing */ senderTraversalDelay?: number; /** * Avg of RTT/2 between sender client and server */ senderTransmitDelay?: number; /** * Avg of total transmit time spent among all servers */ totalServerTransmitDelay?: number; /** * Avg of total processing time spent in all servers */ totalServerTraversalDelay?: number; /** * avg Time(MS) spent in receiver processing */ receiverTraversalDelay?: number; /** * Avg of RTT/2 between receiver client and server */ receiverTransmitDelay?: number; additionalProperties?: never; }; totalHops?: number; serverCrossDataCenterCnt?: number; linkNodeList?: { /** * The node type which shows the client and server type shown in the enum lists. */ nodeType?: | "WME_CLIENT_WINDOWS" | "WME_CLIENT_MAC" | "WME_CLIENT_IOS" | "WME_CLIENT_ANDROID" | "WME_CLIENT_LINUX" | "DEVICE_CLIENT" | "HOMER_VIDEO_MESH" | "HOMER_CLOUD" | "EDONUS_CLOUD" | "EDONUS_VIDEO_MESH" | "EDGE"; /** * The location info, for example 'CN' */ regionInfo?: string; /** * The processing time spent in client or server */ traversalDelay?: number; /** * RTT/2 between the current node with the last hop */ transmitDelay?: number; /** * The max processing time spent in client or server */ maxTraversalDelay?: number; /** * The max RTT/2 between the current node with the last hop */ maxTransmitDelay?: number; /** * Whether the current node is cross region with the last hop. false means "not cross" and true means "cross region". */ isCrossRegion?: boolean; additionalProperties?: never; }[]; /** * Aggregated end to end delay representing the mean, max, min delay group by csi */ endToEndDelayByCsi?: { csi?: number; /** * This object tracks the the end to end delay(the delay between capture time of sender side and render time of receiver side) */ delay?: { /** * The average delay (in milliseconds) from end to end */ meanDelay: number; /** * The maximum delay (in milliseconds) from end to end */ maxDelay: number; /** * The minimum delay (in milliseconds) from end to end */ minDelay: number; additionalProperties?: never; }; additionalProperties?: never; }[]; additionalProperties?: never; }; receivedFrameSize: number; requestedFrameSize: number; optimalFrameSize: number; receivedHeight: number; receivedWidth: number; receivedKeyFrames: number; requestedKeyFrames: number; receivedKeyFramesSourceChange?: number; receivedKeyFramesConfigurationChange?: number; receivedKeyFramesForRequest?: number; receivedKeyFramesUnknown?: number; isActiveSpeaker?: boolean; h264CodecProfile: "BP" | "CHP"; isHardwareDecoded?: boolean; hardwareDecoderFallbackCount?: number; /** * receive video pipeline performance metric */ decoderProcessInfo?: { meanDecoderProcessMillis: number; maxDecoderProcessMillis: number; additionalProperties?: never; }; receivedBuffer?: number; receivedFrameRateNormalShare?: number; receivedFrameRateHFPSShare?: number; maxCodedFrameSize?: number; maxCodedFrameSizeIsFromKeyFrame?: boolean; renderWindowResolution?: number; scaledResolution?: number; upSampleType?: | "UpSample_None" | "UpSample_Render" | "UpSample_VP_2" | "UpSample_DNN_2" | "UpSample_DNN_4" | "UpSample_VP_1pt5"; processSRMillis?: number; superResFps?: number; remoteVideoAugmentationType?: | "VIDEO_BACKGROUND_AUGMENT_NONE" | "VIDEO_BACKGROUND_AUGMENT_BLUR" | "VIDEO_BACKGROUND_AUGMENT_REPLACE_IMAGE" | "VIDEO_BACKGROUND_AUGMENT_REPLACE_VIDEO" | "VIDEO_BACKGROUND_AUGMENT_BLUR_INHOUSE" | "VIDEO_BACKGROUND_AUGMENT_REPLACE_IMAGE_INHOUSE" | "VIDEO_BACKGROUND_AUGMENT_REPLACE_VIDEO_INHOUSE"; /** * this defines the major client types */ remoteClientType?: | "MEETING_CENTER" | "EVENT_CENTER" | "TRAINING_CENTER" | "TEAMS_CLIENT" | "TEAMS_DEVICE" | "TEAMS_SHARE" | "SIP" | "RECORDING" | "CLOUD_AWARE_SIP" | "TEAMS_WXC_CLIENT" | "WXC_CLIENT" | "WXC_DEVICE" | "WEBEX_JS_SDK" | "VOICEA_CLIENT" | "CISCO_SIP_GW" | "WEBEX_SDK" | "CPAAS_THIRD_PARTY_SDK" | "WXC_THIRD_PARTY" | "WXCC" | "TEAMS_PHONE" | "WEBEX_RELAY"; remoteOsType?: | "android" | "android-x64" | "android-arm64" | "chrome" | "ios" | "linux" | "mac" | "na" | "uwp-arm64" | "windows"; remoteDownSampleType?: | "DownSample_None" | "DownSample_Bilinear" | "DownSample_Lanczos" | "DownSample_Unknown" | "DownSample_Nvidia"; /** * this defines the sub types of clients */ remoteSubClientType?: | "AUTOMOTIVE_APP" | "BROWSER_EXTENSION" | "DESKTOP_APP" | "DESKTOP_APP_VDI" | "DEVICE_CURRENT" | "DEVICE_LEGACY_2020" | "HOLOGRAM_HEADSET_APP" | "HVDI_APP" | "MIXED" | "MOBILE_APP" | "MOBILE_NETWORK" | "PAGE" | "TEAMS_DEVICE" | "VDI_APP" | "WEB_APP" | "PHONE_NOVUM" | "PHONE_ESPRESSO" | "PHONE_BUMBLEBEE" | "SIP" | "SIP_PSTN"; remoteTranscoded?: boolean; /** * Details associated with a share floor type */ floorType?: { name: "DEFAULT" | "EMBEDDED_APP" | "OTHER"; priority?: {}; additionalProperties?: never; }; /** * view type of a video stream */ receivedView?: "Default" | "Speaker" | "Stereoscopic"; flickerDetectedCount?: number; flickerDetectionMeanExecutionTimeSinceLastReportMs?: number; advertisedRangeFull?: boolean; detectedRangeEverFull?: boolean; /** * Colour primaries (aka. colour space) used by a given video stream */ advertisedColourPrimaries?: | "ColourPrimaries_BT_709" | "ColourPrimaries_Unspecified" | "ColourPrimaries_BT_470_M" | "ColourPrimaries_BT_470_B_G" | "ColourPrimaries_BT_601" | "ColourPrimaries_SMPTE_240" | "ColourPrimaries_GenericFilm" | "ColourPrimaries_BT_2020" | "ColourPrimaries_XYZ" | "ColourPrimaries_SMPTE_431" | "ColourPrimaries_SMPTE_432" | "ColourPrimaries_EBU_3213"; maxFrameReceiveDelay?: number; maxFrameReceiveDelayIsFromKeyframe?: boolean; receivedMinFrameQp?: number; receivedMaxFrameQp?: number; receivedAvgFrameQp?: number; additionalProperties?: never; }[]; receivedViews?: ("Default" | "Speaker" | "Stereoscopic")[]; additionalProperties?: never; }[]; gamestateTransmit?: { /** * contains the transmit related fields common between all session types for each interval */ common: { /** * contains the fields common to both transmit and receive sessions for each interval */ common: { isMain: boolean; mariFecEnabled: boolean; mariRtxEnabled?: boolean; mariQosEnabled: boolean; mariLiteEnabled?: boolean; multistreamEnabled: boolean; isMediaBypassEdge?: boolean; isNewAudioPipeline?: boolean; direction: "sendrecv" | "sendonly" | "recvonly" | "inactive"; localPort?: number; peerReflexivePort?: number; remotePort?: number; maxConsecutiveStunAckInterval?: number; yellowMQITimes?: number; redMQITimes?: number; /** * "An indication if the relay point (Homer, MSE etc) was expecting to have media flowing and did so * Example for troubleshooting would be where the enterprise firewall is blocking * inbound rtp. In that case status=FLOW, client rx packets = 0" * */ hbhFlowStatus?: "FLOW" | "FLOW_PRE_ICE" | "FLOW_MEDIA_TIMEOUT" | "NO_FLOW_ERROR" | "NO_FLOW_EXPECTED"; additionalProperties?: never; }; fecPackets: number; fecBitrate: number; dscpValue?: number; rtxPackets?: number; rtxBitrate?: number; rtpPackets: number; rtpBitrate: number; rtcpPackets: number; rtcpBitrate: number; /** * RTCP Information for a given Interval */ txRtcpInfo?: { rtcpSrPackets: number; rtcpRrPackets: number; rtcpReportBlocks: number; rtcpSdesPackets: number; rtcpByePackets: number; rtcpAppPackets: number; rtcpRtpFbPacket: number; rtcpRtpFbNackPackets?: number; rtcpPsFbPackets: number; rtcpPsFbMariPackets: number; rtcpPsFbMariAdaptationPackets?: number; rtcpPsFbMariSyncPackets?: number; rtcpPsFbMultistreamPackets: number; rtcpPsFbMultistreamScrPackets?: number; rtcpPsFbMultistreamScrDuplicatePackets?: number; rtcpPsFbMultistreamScaAckingScrPackets?: number; rtcpPsFbMultistreamScaAutonomousPackets?: number; rtcpPsFbMultistreamScaAutonomousRetransmittedPackets?: number; rtcpPsFbMultistreamScaAckPackets?: number; rtcpPsFbFirPackets?: number; rtcpPsFbPliPackets?: number; rtcpXrPackets: number; additionalProperties?: never; }; stunPackets: number; stunBitrate: number; dtlsPackets: number; dtlsBitrate: number; transportType: "UDP" | "TCP" | "xTLS" | "TLS"; maxBitrate: number; availableBitrate: number; queueDelay: number; meanRoundTripTime?: number; maxRoundTripTime?: number; roundTripTime?: number; remoteReceiveRate?: number; maxRemoteLossRate?: number; remoteLossRate?: number; meanRemoteLossRate?: number; maxRemoteJitter?: number; remoteJitter?: number; meanRemoteJitter?: number; traversalMinDelayMs?: number; traversalMaxDelayMs?: number; traversalMeanDelayMs?: number; rtpInputFifoDelayMs?: number; rtpInputFifoMaxDelayMs?: number; rtpInputFifoMinDelayMs?: number; rtpInputFifoMeanDelayMs?: number; totalPackets?: number; totalBitrate?: number; /** * Tracks RTP/RTCP packet sizes */ mediaPacketSize?: { /** * Maximum RTP packet size (including media payload and RTP headers) */ maxRtpPacketSize?: number; /** * Average RTP packet size (including media payload and RTP headers) */ meanRtpPacketSize?: number; /** * Minimum RTP packet size (including media payload and RTP headers) */ minRtpPacketSize?: number; /** * Maximum RTCP packet size */ maxRtcpPacketSize?: number; additionalProperties?: never; }; cellularType?: | "cellular_2G" | "cellular_2.5G" | "cellular_3G" | "cellular_3.5G" | "cellular_4G" | "cellular_5G"; isVPN?: boolean; isVPNSplitTunneling?: boolean; additionalProperties?: never; }; streams: { /** * contains fields common to all transmit streams types */ common: { ssci: number; duplicateSsci?: number; rtpPackets: number; transmittedFrameRate?: number; requestedFrames?: number; transmittedBitrate: number; requestedBitrate: number; captureOffset?: number; codec: string; csi?: number[]; /** * This object tracks SSRC and CSRC changes for an RTP stream, session, etc */ sourceChanges?: { /** * The number of RTP SSRC changes seen. The first RTP packet seen should NOT be counted as a change. */ ssrcChanges: number; /** * The number of RTP CSRC changes seen. The first RTP packet seen should NOT be counted as a change. Changes from zero to non-zero CSRC should be counted as a change. */ csrcChanges: number; additionalProperties?: never; }; largeSceneChangeCount?: number; /** * This object tracks the the end to end delay(the delay between capture time of sender side and render time of receiver side) */ internalDelay?: { /** * The average delay (in milliseconds) from end to end */ meanDelay: number; /** * The maximum delay (in milliseconds) from end to end */ maxDelay: number; /** * The minimum delay (in milliseconds) from end to end */ minDelay: number; additionalProperties?: never; }; additionalProperties?: never; }; gamestateObjects?: { objectId: number; numberOfUpdates: number; tag: {}; isActive: boolean; additionalProperties?: never; }[]; additionalProperties?: never; }[]; additionalProperties?: never; }[]; gamestateReceive?: { /** * contains the receive related fields between all sessions types for each interval. */ common: { /** * contains the fields common to both transmit and receive sessions for each interval */ common: { isMain: boolean; mariFecEnabled: boolean; mariRtxEnabled?: boolean; mariQosEnabled: boolean; mariLiteEnabled?: boolean; multistreamEnabled: boolean; isMediaBypassEdge?: boolean; isNewAudioPipeline?: boolean; direction: "sendrecv" | "sendonly" | "recvonly" | "inactive"; localPort?: number; peerReflexivePort?: number; remotePort?: number; maxConsecutiveStunAckInterval?: number; yellowMQITimes?: number; redMQITimes?: number; /** * "An indication if the relay point (Homer, MSE etc) was expecting to have media flowing and did so * Example for troubleshooting would be where the enterprise firewall is blocking * inbound rtp. In that case status=FLOW, client rx packets = 0" * */ hbhFlowStatus?: "FLOW" | "FLOW_PRE_ICE" | "FLOW_MEDIA_TIMEOUT" | "NO_FLOW_ERROR" | "NO_FLOW_EXPECTED"; additionalProperties?: never; }; fecPackets: number; fecBitrate: number; dscpValue?: number; rtxPackets?: number; rtxBitrate?: number; meanRtxDelay?: number; maxRtxDelay?: number; rtpPackets: number; rtpBitrate: number; rtpHopByHopLost: number; mediaHopByHopLost: number; rtpRecovered: number; rtxRecovered?: number; rtcpPackets: number; rtcpBitrate: number; /** * RTCP Information for a given Interval */ rxRtcpInfo?: { rtcpSrPackets: number; rtcpRrPackets: number; rtcpReportBlocks: number; rtcpSdesPackets: number; rtcpByePackets: number; rtcpAppPackets: number; rtcpRtpFbPacket: number; rtcpRtpFbNackPackets?: number; rtcpPsFbPackets: number; rtcpPsFbMariPackets: number; rtcpPsFbMariAdaptationPackets?: number; rtcpPsFbMariSyncPackets?: number; rtcpPsFbMultistreamPackets: number; rtcpPsFbMultistreamScrPackets?: number; rtcpPsFbMultistreamScrDuplicatePackets?: number; rtcpPsFbMultistreamScaAckingScrPackets?: number; rtcpPsFbMultistreamScaAutonomousPackets?: number; rtcpPsFbMultistreamScaAutonomousRetransmittedPackets?: number; rtcpPsFbMultistreamScaAckPackets?: number; rtcpPsFbFirPackets?: number; rtcpPsFbPliPackets?: number; rtcpXrPackets: number; additionalProperties?: never; }; stunPackets: number; stunBitrate: number; dtlsPackets: number; dtlsBitrate: number; transportType: "UDP" | "TCP" | "xTLS" | "TLS"; maxBitrate: number; srtpUnprotectErrors: number; /** * SRTP/SRTCP unprotect error details */ srtpUnprotectErrorDetails?: { authFailures: number; cipherFailures: number; replayFailures: number; unknownFailures: number; additionalProperties?: never; }; srtcpUnprotectErrors?: number; /** * SRTP/SRTCP unprotect error details */ srtcpUnprotectErrorDetails?: { authFailures: number; cipherFailures: number; replayFailures: number; unknownFailures: number; additionalProperties?: never; }; totalPackets?: number; totalBitrate?: number; /** * Tracks RTP/RTCP packet sizes */ mediaPacketSize?: { /** * Maximum RTP packet size (including media payload and RTP headers) */ maxRtpPacketSize?: number; /** * Average RTP packet size (including media payload and RTP headers) */ meanRtpPacketSize?: number; /** * Minimum RTP packet size (including media payload and RTP headers) */ minRtpPacketSize?: number; /** * Maximum RTCP packet size */ maxRtcpPacketSize?: number; additionalProperties?: never; }; cellularType?: | "cellular_2G" | "cellular_2.5G" | "cellular_3G" | "cellular_3.5G" | "cellular_4G" | "cellular_5G"; isVPN?: boolean; isVPNSplitTunneling?: boolean; maxHbhJitter?: number; meanHbhJitter?: number; additionalProperties?: never; }; streams: { /** * contains fields common to all types of receive stream */ common: { ssci: number; rtpPackets: number; rtpEndToEndLost: number; rtpMaxEndToEndLoss?: number; rtpMinEndToEndLoss?: number; concealedFrames: number; maxConcealRunLength: number; activeSpeech?: number; activeSpeechConcealment?: number; maxConsecutiveActiveSpeechConcealment?: number; silenceFromGatewayNum?: number; inbandPacketLossRate?: number; cngPacketNum?: number; silenceSuppressionNum?: number; maxTimestampInterval?: number; maxUnderrunNum?: number; receivedFrameRate?: number; renderedFrameRate?: number; requestedFrameRate?: number; optimalFrameRate?: number; renderedHarmonicScore?: number; sentToRenderFrames?: number; renderedFrames?: number; renderedFrameSkips?: number; renderedFrameMaxContinuousSkip?: number; meanRtpJitter?: number; maxRtpJitter?: number; rtpJitter?: number; receivedBitrate: number; requestedBitrate: number; optimalBitrate: number; durationForSpeedChanged?: number; endToEndTransmitDelay?: number; csi: number[]; codec: string; language?: | "floor" | "si-af" | "si-sq" | "si-am" | "si-ar" | "si-hy" | "si-az" | "si-eu" | "si-be" | "si-bn" | "si-bs" | "si-bg" | "si-zh-HK" | "si-ca" | "si-ceb" | "si-co" | "si-hr" | "si-cs" | "si-da" | "si-nl" | "si-en" | "si-eo" | "si-et" | "si-fi" | "si-fr" | "si-fy" | "si-gl" | "si-ka" | "si-de" | "si-el" | "si-gu" | "si-zh-TW" | "si-ht" | "si-ha" | "si-haw" | "si-he" | "si-hi" | "si-hmn" | "si-hu" | "si-is" | "si-ig" | "si-id" | "si-ga" | "si-it" | "si-ja" | "si-jv" | "si-kn" | "si-kk" | "si-km" | "si-rw" | "si-ko" | "si-ku" | "si-ky" | "si-lo" | "si-la" | "si-lv" | "si-lt" | "si-lb" | "si-mk" | "si-mg" | "si-ms" | "si-ml" | "si-mt" | "si-zh" | "si-mi" | "si-mr" | "si-mn" | "si-my" | "si-ne" | "si-no" | "si-ny" | "si-or" | "si-ps" | "si-fa" | "si-pl" | "si-pt" | "si-pa" | "si-ro" | "si-ru" | "si-sm" | "si-gd" | "si-sr" | "si-st" | "si-sn" | "si-sd" | "si-si" | "si-sk" | "si-sl" | "si-so" | "si-es" | "si-su" | "si-sw" | "si-sv" | "si-tl" | "si-tg" | "si-ta" | "si-tt" | "si-te" | "si-th" | "si-tr" | "si-tk" | "si-uk" | "si-ur" | "si-ug" | "si-uz" | "si-vi" | "si-cy" | "si-xh" | "si-yi" | "si-yo" | "si-zu" | "si-Other"; /** * This object tracks SSRC and CSRC changes for an RTP stream, session, etc */ sourceChanges?: { /** * The number of RTP SSRC changes seen. The first RTP packet seen should NOT be counted as a change. */ ssrcChanges: number; /** * The number of RTP CSRC changes seen. The first RTP packet seen should NOT be counted as a change. Changes from zero to non-zero CSRC should be counted as a change. */ csrcChanges: number; additionalProperties?: never; }; /** * The object tracks the detail reasons by which concealment is caused. The unit of metrics depend on upper-level objects. Currently, packet or frame can be used as unit. */ concealmentReasonByPacket?: { /** * concealment caused by network loss */ byNetwork?: number; /** * concealment caused by buffer overflow. when total buffer length exceeds max delay threshold, buffer will overflow and data will be dropped. */ byOverflow?: number; /** * concealment caused by buffer is reset. */ byReset?: number; /** * concealment caused by late packet or frame. some packets or frames arrive late and the previous one has been played. */ byLate?: number; /** * concealment caused by poor performance. */ byPoorPerformance?: number; /** * only for audio. Number of concealment packets/frames sent to the audio decoder when frames are held back to increase re-order audio delay. */ byIncreasedDelay?: number; /** * only for video. concealment caused by AV sync */ byAVSync?: number; /** * only for video. Some video frames which have not been complete are forced to pop up because the subsequent frame has been complete. This cause video concealment. */ byPrevFramePopped?: number; /** * concealment caused by the other unknown reasons */ byOthers?: number; additionalProperties?: never; }; /** * The object tracks the detail reasons by which concealment is caused. The unit of metrics depend on upper-level objects. Currently, packet or frame can be used as unit. */ concealmentReasonByFrame?: { /** * concealment caused by network loss */ byNetwork?: number; /** * concealment caused by buffer overflow. when total buffer length exceeds max delay threshold, buffer will overflow and data will be dropped. */ byOverflow?: number; /** * concealment caused by buffer is reset. */ byReset?: number; /** * concealment caused by late packet or frame. some packets or frames arrive late and the previous one has been played. */ byLate?: number; /** * concealment caused by poor performance. */ byPoorPerformance?: number; /** * only for audio. Number of concealment packets/frames sent to the audio decoder when frames are held back to increase re-order audio delay. */ byIncreasedDelay?: number; /** * only for video. concealment caused by AV sync */ byAVSync?: number; /** * only for video. Some video frames which have not been complete are forced to pop up because the subsequent frame has been complete. This cause video concealment. */ byPrevFramePopped?: number; /** * concealment caused by the other unknown reasons */ byOthers?: number; additionalProperties?: never; }; /** * the number of consecutive concealment time which is larger than the threshold in one minute. Currently, 60 and 120 ms are used as the threshold. */ interruptCount?: { /** * interrupt count longer than 60 ms in one minute */ longerThan60?: number; /** * interrupt count longer than 120 ms in one minute */ longerThan120?: number; additionalProperties?: never; }; /** * This object tracks the delay associated with a jitter buffer */ jitterBufferDelay?: { /** * The average delay (in milliseconds) used by the jitter buffer */ meanDelay: number; /** * The maximum delay (in milliseconds) used by the jitter buffer */ maxDelay: number; /** * The minimum delay (in milliseconds) used by the jitter buffer */ minDelay: number; additionalProperties?: never; }; /** * This object tracks the the end to end delay(the delay between capture time of sender side and render time of receiver side) */ endToEndDelay?: { /** * The average delay (in milliseconds) from end to end */ meanDelay: number; /** * The maximum delay (in milliseconds) from end to end */ maxDelay: number; /** * The minimum delay (in milliseconds) from end to end */ minDelay: number; additionalProperties?: never; }; /** * This object tracks the the end to end delay(the delay between capture time of sender side and render time of receiver side) */ endToEndDelayKeyFrame?: { /** * The average delay (in milliseconds) from end to end */ meanDelay: number; /** * The maximum delay (in milliseconds) from end to end */ maxDelay: number; /** * The minimum delay (in milliseconds) from end to end */ minDelay: number; additionalProperties?: never; }; endToEndDelayByRtcp?: number; /** * The components of the E2E delay */ endToEndDelayComponents?: { /** * avg Time(MS) spent in sender processing */ senderTraversalDelay?: number; /** * Avg of RTT/2 between sender client and server */ senderTransmitDelay?: number; /** * Avg of total transmit time spent among all servers */ totalServerTransmitDelay?: number; /** * Avg of total processing time spent in all servers */ totalServerTraversalDelay?: number; /** * avg Time(MS) spent in receiver processing */ receiverTraversalDelay?: number; /** * Avg of RTT/2 between receiver client and server */ receiverTransmitDelay?: number; additionalProperties?: never; }; totalHops?: number; serverCrossDataCenterCnt?: number; linkNodeList?: { /** * The node type which shows the client and server type shown in the enum lists. */ nodeType?: | "WME_CLIENT_WINDOWS" | "WME_CLIENT_MAC" | "WME_CLIENT_IOS" | "WME_CLIENT_ANDROID" | "WME_CLIENT_LINUX" | "DEVICE_CLIENT" | "HOMER_VIDEO_MESH" | "HOMER_CLOUD" | "EDONUS_CLOUD" | "EDONUS_VIDEO_MESH" | "EDGE"; /** * The location info, for example 'CN' */ regionInfo?: string; /** * The processing time spent in client or server */ traversalDelay?: number; /** * RTT/2 between the current node with the last hop */ transmitDelay?: number; /** * The max processing time spent in client or server */ maxTraversalDelay?: number; /** * The max RTT/2 between the current node with the last hop */ maxTransmitDelay?: number; /** * Whether the current node is cross region with the last hop. false means "not cross" and true means "cross region". */ isCrossRegion?: boolean; additionalProperties?: never; }[]; /** * Aggregated end to end delay representing the mean, max, min delay group by csi */ endToEndDelayByCsi?: { csi?: number; /** * This object tracks the the end to end delay(the delay between capture time of sender side and render time of receiver side) */ delay?: { /** * The average delay (in milliseconds) from end to end */ meanDelay: number; /** * The maximum delay (in milliseconds) from end to end */ maxDelay: number; /** * The minimum delay (in milliseconds) from end to end */ minDelay: number; additionalProperties?: never; }; additionalProperties?: never; }[]; additionalProperties?: never; }; gamestateObjects?: { objectId: number; numberOfUpdates: number; tag: {}; isActive: boolean; additionalProperties?: never; }[]; additionalProperties?: never; }[]; additionalProperties?: never; }[]; mediaState?: { stateType: "start" | "middle"; duration: number; mediaType: "audio" | "video" | "share" | "share_audio" | "whiteboard" | "gamestate" | "all"; stateTriggeredTime?: string; shareInstanceId?: string; direction?: "RX" | "TX" | "BOTH"; errorType?: | "NO_ERROR" | "DECRYPT_ERROR" | "DEVICE_ERROR" | "LOAD_LIBRARY_ERROR" | "NO_FRAME_DECODE_ERROR" | "NO_FRAME_ENCODE_ERROR" | "NO_PACKET_RECV_ERROR" | "INITIAL_MEMORY_ERROR" | "MAC_VIRTUAL_AUDIO_DRV_ERROR" | "MEDIA_PROCESS_CRASH_ERROR" | "HEARTBEAT_LOST_WITH_MEDIA_PROCESS_ERROR" | "LOCUS_SESSION_CONNECT_ERROR" | "NO_PACKET_SEND_ERROR" | "NETWORK_LOST_ERROR" | "MEDIA_NOT_AVAILABLE" | "MEDIA_CONNECT_FAILURE" | "MEDIA_CONNECT_STATE" | "MEDIA_FLOW_STATE_CHANGED"; errorCode?: number; errorCodeExt1?: number; errorDescription?: string; mediaExtInfo?: string; mediaExtInfoV2?: {}; stateDescription?: {}; additionalProperties?: never; }[]; /** * Connection level metrics for the interval */ connection?: { /** * This object tracks TWCC report exchange(MARI) */ twccReports?: { /** * Number of RTP packets marked with TWSN */ packetsSentWithTwsn?: number; /** * Number of packets sent without TWSN */ packetsSentWithoutTwsn?: number; /** * Number of reports received */ reportsReceived?: number; /** * Number of reports lost */ reportsLost?: number; /** * Longest consecutive run of reports lost */ reportLossBurstLength?: number; /** * Number of packets not acknowledged due to loss of reports */ unacknowledgedPackets?: number; /** * Average bandwidth in kbps */ avgBandwidth?: number; /** * min bandwidth in interval (kbps) */ minBandwidth?: number; /** * max bandwidth in interval (kbps) */ maxBandwidth?: number; additionalProperties?: never; }; /** * This object tracks the evaluated bandwidth associated with Bandwidth Evaluator(MARI) */ evaluatedBandwidth?: { /** * The min bandwidth evaluated by the BW Evaluator (in bits per second) */ minBandwidth?: number; /** * The maximum bandwidth evaluated the BW Evaluator (in bits per second) */ maxBandwidth?: number; /** * The sum of bandwidth down adjustments (in bits per second) */ sumAdjustmentDown?: number; /** * The sum of bandwidth up adjustments (in bits per second) */ sumAdjustmentUp?: number; /** * Number of times bandwidth adjustment caused a change evaluated bandwidth */ countAdjustments?: number; /** * Number of times the Bandwidth Adjustment changed direction Up->Down/Down->Up */ countDirectionChange?: number; /** * Number of times the evaluated bandwidth was affected due to config change */ countConfigChange?: number; additionalProperties?: never; }; configuredBitrate?: number; additionalProperties?: never; }; threadPool?: { pool: string; samples: number; baselineWorkers: number; maxWorkers: number; peakWorkers: number; peakBusyWorkers: number; peakHungWorkers: number; peakPending: number; avgPending: number; cappedAtMaxTicks: number; processedTotal: number; overflowTotal: number; maxQueueWaitUs: number; additionalProperties?: never; }[]; additionalProperties?: never; }[]; pairedDevice?: { deviceId?: string; deviceJoinType?: string; devicePairingType?: string; deviceType?: string; deviceURL?: string; isPersonalDevice?: boolean; modelNumber?: string; productName?: string; tempSipUri?: string; additionalProperties?: never; }; userType?: "host" | "attendee" | "cohost" | "panelist"; additionalProperties?: never; } | { canProceed?: boolean; state?: string; mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard" | "gamestate"; /** * Details associated with a share floor type */ floorType?: { name: "DEFAULT" | "EMBEDDED_APP" | "OTHER"; priority?: {}; additionalProperties?: never; }; csi?: number; /** * media capability for both transmit and receive */ mediaCapabilities?: { /** * explicit indication of media capabilities. true=supported */ tx: { audio: boolean; video: boolean; share: boolean; share_audio: boolean; whiteboard: boolean; gamestate?: boolean; additionalProperties?: never; }; /** * explicit indication of media capabilities. true=supported */ rx: { audio: boolean; video: boolean; share: boolean; share_audio: boolean; whiteboard: boolean; gamestate?: boolean; additionalProperties?: never; }; additionalProperties?: never; }; mediaLines?: { clusterName?: string; connectionType?: "none" | "direct" | "proxy"; direction: "sendrecv" | "sendonly" | "recvonly" | "inactive"; errorCode?: number; extension?: {}; failureDescription?: string; failureReason?: "network" | "transport" | "rejected" | "timeout" | "notstarted" | "succeeded"; iceMangled?: boolean; localIP?: string; localNetworkPrefix?: string; localPort?: number; mediaLineData?: {}; mediaType: "audio" | "video" | "share" | "share_audio" | "whiteboard" | "gamestate" | "all"; protocol: "udp" | "tcp" | "xtls" | "unknown"; recvRespTime?: string; remoteIP?: string; remotePort?: number; sentReqTime?: string; status?: "succeeded" | "in-progress" | "failed"; tlsDomain?: string; transactionId?: string; ufrag?: string; additionalProperties?: never; }[]; /** * allows client to specify media preferences */ clientMediaPreferences?: { preferTranscoding: boolean; additionalProperties?: never; }; pstnAudioType?: "dial-in" | "dial-out"; homeDataCenter?: string; success?: boolean; isTranscoded?: boolean; isGatewayed?: boolean; isComposed?: boolean; /** * determine how the events are processed as well as how the reports are aggregated and sliced */ registrationMode?: "SIP" | "Cloud" | "CloudAware"; /** * protocols used to help determine how the events are processed as well as how the reports are aggregated and sliced */ protocol?: "SIP" | "H323" | "H323_IP" | "Locus" | "WebRTC"; /** * The underlying service provider of the call. */ meetingPlatform?: "MsTeams" | "GoogleMeet" | "Zoom" | "Webex"; labels?: string[]; labelsStr?: string; webexServiceType?: "MC" | "EC" | "SC" | "TC" | "AA" | "RA" | "NBR" | "WRF" | "HOL"; /** * this defines the sub service type */ webexSubServiceType?: | "PMR" | "Event" | "Training" | "ScheduleMeeting" | "ScheduledMeeting" | "Webcast" | "Webinar" | "LargeScaleWebinar" | "others"; ivrDialogType?: | "MEDIA_ON_HOLD" | "ANNOUNCEMENT" | "TONE" | "COLLECT_PIN" | "PROMPT" | "MEDIA_SERVICE_AGENT" | "COLLECT"; ivrDialogResult?: | "SUCCESS" | "FAILURE" | "HOST_PIN_MATCH" | "GUEST_PIN_MATCH" | "PANELIST_PIN_MATCH" | "NO_MATCH" | "INVALID_PIN"; callType?: | "VIDEO_DIALIN" | "VIDEO_DIALOUT" | "CASCADE" | "HYBRID_CASCADE" | "PSTN_SIP" | "PSTN_DIALIN" | "PSTN_DIALOUT" | "PSTN_ONLY_DIALIN" | "PSTN_ONLY_DIALOUT" | "AUDIO_DIALIN" | "AUDIO_ONLY_DIALIN" | "H323" | "H323_IP" | "SIP_ENTERPRISE" | "SIP_MOBILE" | "SIP_NATIONAL" | "SIP_INTERNATIONAL" | "SIP_EMERGENCY" | "SIP_OPERATOR" | "SIP_SHORTCODE" | "SIP_TOLLFREE" | "SIP_PREMIUM" | "SIP_URI" | "SIP_INBOUND" | "UNKNOWN" | "ZTM" | "SIP_MEETING" | "SIP_DIALOUT" | "SIP_ONLY_DIALOUT"; eventData?: {}; derivedSipClientType?: | "SIP_CE_SINGLE_SCREEN" | "SIP_CE_MULTI_SCREEN" | "SIP_JABBER" | "SIP_TIP_SINGLE_SCREEN" | "SIP_TIP_THREE_SCREEN" | "SIP_PSTN" | "SIP_OTHER" | "SIP_WEBEX_CASCADE" | "SIP_NONE"; /** * this defines the major client types */ derivedClientType?: | "MEETING_CENTER" | "EVENT_CENTER" | "TRAINING_CENTER" | "TEAMS_CLIENT" | "TEAMS_DEVICE" | "TEAMS_SHARE" | "SIP" | "RECORDING" | "CLOUD_AWARE_SIP" | "TEAMS_WXC_CLIENT" | "WXC_CLIENT" | "WXC_DEVICE" | "WEBEX_JS_SDK" | "VOICEA_CLIENT" | "CISCO_SIP_GW" | "WEBEX_SDK" | "CPAAS_THIRD_PARTY_SDK" | "WXC_THIRD_PARTY" | "WXCC" | "TEAMS_PHONE" | "WEBEX_RELAY"; /** * this defines the sub types of clients */ derivedSubClientType?: | "AUTOMOTIVE_APP" | "BROWSER_EXTENSION" | "DESKTOP_APP" | "DESKTOP_APP_VDI" | "DEVICE_CURRENT" | "DEVICE_LEGACY_2020" | "HOLOGRAM_HEADSET_APP" | "HVDI_APP" | "MIXED" | "MOBILE_APP" | "MOBILE_NETWORK" | "PAGE" | "TEAMS_DEVICE" | "VDI_APP" | "WEB_APP" | "PHONE_NOVUM" | "PHONE_ESPRESSO" | "PHONE_BUMBLEBEE" | "SIP" | "SIP_PSTN"; meetingRole?: "PANELIST" | "ATTENDEE"; serverRole?: | "CONFERENCE" | "TRANSCODER" | "WHITEBOARD_INJECTOR" | "MS_TEAMS_CONFERENCE" | "RECORDING" | "GATEWAY" | "GATEWAY_CLIENT_SIDE" | "UNKNOWN" | "HOLOGRAM_RENDER" | "EDGE"; reconnect?: boolean; retryCount?: number; meetSimple?: boolean; /** * represents media quality status report such as no media or drop out */ mediaStatus?: { mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard"; mediaSuccess?: boolean; shareType?: | "cb-normal-share" | "ce-airplay-share" | "ce-direct-share" | "ce-gui-loopback-share" | "ce-input-source-share" | "ce-input-source-share-hdmi" | "ce-input-source-share-usbc" | "ce-jpg-share" | "ce-miracast-share" | "mcs-normal-share" | "mcs-normal-audio-share" | "mcs-hfps-share" | "mcs-hfps-audio-share"; isTransmitter?: boolean; audioJoinType?: | "phone-call-in" | "phone-call-back" | "voip" | "device-call-back" | "never-join-audio" | "tried-but-never-join"; /** * indicates transport type used */ transportType?: "UDP" | "TCP" | "xTLS" | "TLS"; additionalData?: {}; /** * information object for the peripheral */ mediaDeviceInfo?: { name: "camera" | "microphone" | "speaker"; information?: string; driver?: string; errorCode?: string; subErrorCode?: string; captureFrameSize?: number; captureFps?: number; captureFrameworkType?: number; captureRawType?: number; deviceCapabilitiesTime?: number; connectionType?: {}; bluetoothMode?: {}; openDeviceCostTimeMilliSecond?: number; startCaptureCostTimeMilliSecond?: number; txSampleRate?: number; rxSampleRate?: number; isAAudioLowLatency?: number; isStartNDKFailed?: number; startPlaybackCostTimeMilliSecond?: number; changeCount?: number; /** * indicates capture device's system volume, between -1 and 100, -1 means invalid */ captureSystemVolume?: number; /** * indicates playback device's system volume, between -1 and 100, -1 means invalid */ playbackSystemVolume?: number; started?: boolean; sysAudioSEStatus?: number; isVolumeControlAvailable?: boolean; rawStreamStatus?: number; status?: string; initCaptureFrameworkType?: "unknown" | "dshow" | "mf" | "mfPrefer"; cameraRetried?: boolean; captureCameraType?: | "unknown" | "builtIn" | "aggregate" | "virtual" | "pci" | "usb" | "fireWire" | "bluetooth" | "hdmi" | "displayPort" | "airPlay" | "avb" | "thunderbolt" | "lineLevel" | "external" | "continuityCaptureWired" | "continuityCaptureWireless" | "audioRemote" | "iphoneCamera" | "deskViewCamera" | "virtualCamera" | "builtInMinijack"; captureCameraFailNum?: number; videoCaptureEnumTime?: number; additionalProperties?: never; }; additionalProperties?: never; }; shareInstanceId?: string; ipVersion?: "IPv4" | "IPv6" | "Dual"; isTransmitter?: boolean; shareDuration?: number; stopReason?: string; shareStartReason?: string; hologramStreamId?: string; /** * represents all of the properities that could cause delay during media setup process. */ audioSetupDelay?: { floorReqSentReceived?: number; floorRespSentReceived?: number; mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard"; txReqFloorGranted?: number; txSessionCreateConfirm?: number; txApeEnrollConfirm?: number; txUIDelay?: number; txScreenCaptureDelay?: number; txScreenCaptureDelayReasonCode?: number; txShareStartOverallDelay?: number; floorGranted2tx1stPacketSendDelay?: number; rx1stPacket2RenderDelay?: number; rxGranted2RenderDelay?: number; rxFailFrameNumB4Success?: number; e2eFirstFrameDelay?: number; CBSessionRespToLocusFloorGrantDelay?: number; CBShareReceiveToServerShareTransmitDelay?: number; CBShareReceiveToTPGWFirstKeyFrameDelay?: number; /** * phrased HTTP timing */ floorRequestHttpTiming?: { connect?: number; dnsLookup?: number; sendRequest?: number; compressRequest?: number; receiveResponse?: number; extractJson?: number; verifyCert?: number; refreshToken?: number; additionalProperties?: never; }; TPGWFirstKeyFrameToServerShareTransmitDelay?: number; MCSSessionActivateToLocusFloorGrantDelay?: number; ServerShareInitiateToLocusFloorGrantDelay?: number; LocusFloorGrantToCBSessionStartDelay?: number; ServerShareReceiveToTPGWFirstKeyFrameDelay?: number; LocusFloorGrantToTPGWFloorGrantDelay?: number; LocusFloorGrantToReceiverNotificationDelay?: number; CBShareSessionRespDelay?: number; LocusShareFloorGrantRespDelay?: number; LocusFloorReqToRespDelay?: number; ServerShareFloorGrantRespDelay?: number; joinRespRxStart?: number; joinRespTxStart?: number; maxRemoteLossRate?: number; media2SignalDelay?: number; warholDownloadTime?: number; contentDownloadTime?: number; boardCreationTime?: number; totalBoardServiceRespDelay?: number; additionalProperties?: never; }; /** * represents all of the properities that could cause delay during media setup process. */ videoSetupDelay?: { floorReqSentReceived?: number; floorRespSentReceived?: number; mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard"; txReqFloorGranted?: number; txSessionCreateConfirm?: number; txApeEnrollConfirm?: number; txUIDelay?: number; txScreenCaptureDelay?: number; txScreenCaptureDelayReasonCode?: number; txShareStartOverallDelay?: number; floorGranted2tx1stPacketSendDelay?: number; rx1stPacket2RenderDelay?: number; rxGranted2RenderDelay?: number; rxFailFrameNumB4Success?: number; e2eFirstFrameDelay?: number; CBSessionRespToLocusFloorGrantDelay?: number; CBShareReceiveToServerShareTransmitDelay?: number; CBShareReceiveToTPGWFirstKeyFrameDelay?: number; /** * phrased HTTP timing */ floorRequestHttpTiming?: { connect?: number; dnsLookup?: number; sendRequest?: number; compressRequest?: number; receiveResponse?: number; extractJson?: number; verifyCert?: number; refreshToken?: number; additionalProperties?: never; }; TPGWFirstKeyFrameToServerShareTransmitDelay?: number; MCSSessionActivateToLocusFloorGrantDelay?: number; ServerShareInitiateToLocusFloorGrantDelay?: number; LocusFloorGrantToCBSessionStartDelay?: number; ServerShareReceiveToTPGWFirstKeyFrameDelay?: number; LocusFloorGrantToTPGWFloorGrantDelay?: number; LocusFloorGrantToReceiverNotificationDelay?: number; CBShareSessionRespDelay?: number; LocusShareFloorGrantRespDelay?: number; LocusFloorReqToRespDelay?: number; ServerShareFloorGrantRespDelay?: number; joinRespRxStart?: number; joinRespTxStart?: number; maxRemoteLossRate?: number; media2SignalDelay?: number; warholDownloadTime?: number; contentDownloadTime?: number; boardCreationTime?: number; totalBoardServiceRespDelay?: number; additionalProperties?: never; }; /** * represents all of the properities that could cause delay during media setup process. */ shareSetupDelay?: { floorReqSentReceived?: number; floorRespSentReceived?: number; mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard"; txReqFloorGranted?: number; txSessionCreateConfirm?: number; txApeEnrollConfirm?: number; txUIDelay?: number; txScreenCaptureDelay?: number; txScreenCaptureDelayReasonCode?: number; txShareStartOverallDelay?: number; floorGranted2tx1stPacketSendDelay?: number; rx1stPacket2RenderDelay?: number; rxGranted2RenderDelay?: number; rxFailFrameNumB4Success?: number; e2eFirstFrameDelay?: number; CBSessionRespToLocusFloorGrantDelay?: number; CBShareReceiveToServerShareTransmitDelay?: number; CBShareReceiveToTPGWFirstKeyFrameDelay?: number; /** * phrased HTTP timing */ floorRequestHttpTiming?: { connect?: number; dnsLookup?: number; sendRequest?: number; compressRequest?: number; receiveResponse?: number; extractJson?: number; verifyCert?: number; refreshToken?: number; additionalProperties?: never; }; TPGWFirstKeyFrameToServerShareTransmitDelay?: number; MCSSessionActivateToLocusFloorGrantDelay?: number; ServerShareInitiateToLocusFloorGrantDelay?: number; LocusFloorGrantToCBSessionStartDelay?: number; ServerShareReceiveToTPGWFirstKeyFrameDelay?: number; LocusFloorGrantToTPGWFloorGrantDelay?: number; LocusFloorGrantToReceiverNotificationDelay?: number; CBShareSessionRespDelay?: number; LocusShareFloorGrantRespDelay?: number; LocusFloorReqToRespDelay?: number; ServerShareFloorGrantRespDelay?: number; joinRespRxStart?: number; joinRespTxStart?: number; maxRemoteLossRate?: number; media2SignalDelay?: number; warholDownloadTime?: number; contentDownloadTime?: number; boardCreationTime?: number; totalBoardServiceRespDelay?: number; additionalProperties?: never; }; /** * represents all of the properities that could cause delay during media setup process. */ shareAudioSetupDelay?: { floorReqSentReceived?: number; floorRespSentReceived?: number; mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard"; txReqFloorGranted?: number; txSessionCreateConfirm?: number; txApeEnrollConfirm?: number; txUIDelay?: number; txScreenCaptureDelay?: number; txScreenCaptureDelayReasonCode?: number; txShareStartOverallDelay?: number; floorGranted2tx1stPacketSendDelay?: number; rx1stPacket2RenderDelay?: number; rxGranted2RenderDelay?: number; rxFailFrameNumB4Success?: number; e2eFirstFrameDelay?: number; CBSessionRespToLocusFloorGrantDelay?: number; CBShareReceiveToServerShareTransmitDelay?: number; CBShareReceiveToTPGWFirstKeyFrameDelay?: number; /** * phrased HTTP timing */ floorRequestHttpTiming?: { connect?: number; dnsLookup?: number; sendRequest?: number; compressRequest?: number; receiveResponse?: number; extractJson?: number; verifyCert?: number; refreshToken?: number; additionalProperties?: never; }; TPGWFirstKeyFrameToServerShareTransmitDelay?: number; MCSSessionActivateToLocusFloorGrantDelay?: number; ServerShareInitiateToLocusFloorGrantDelay?: number; LocusFloorGrantToCBSessionStartDelay?: number; ServerShareReceiveToTPGWFirstKeyFrameDelay?: number; LocusFloorGrantToTPGWFloorGrantDelay?: number; LocusFloorGrantToReceiverNotificationDelay?: number; CBShareSessionRespDelay?: number; LocusShareFloorGrantRespDelay?: number; LocusFloorReqToRespDelay?: number; ServerShareFloorGrantRespDelay?: number; joinRespRxStart?: number; joinRespTxStart?: number; maxRemoteLossRate?: number; media2SignalDelay?: number; warholDownloadTime?: number; contentDownloadTime?: number; boardCreationTime?: number; totalBoardServiceRespDelay?: number; additionalProperties?: never; }; /** * represents all of the properities that could cause delay during media setup process. */ whiteboardSetupDelay?: { floorReqSentReceived?: number; floorRespSentReceived?: number; mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard"; txReqFloorGranted?: number; txSessionCreateConfirm?: number; txApeEnrollConfirm?: number; txUIDelay?: number; txScreenCaptureDelay?: number; txScreenCaptureDelayReasonCode?: number; txShareStartOverallDelay?: number; floorGranted2tx1stPacketSendDelay?: number; rx1stPacket2RenderDelay?: number; rxGranted2RenderDelay?: number; rxFailFrameNumB4Success?: number; e2eFirstFrameDelay?: number; CBSessionRespToLocusFloorGrantDelay?: number; CBShareReceiveToServerShareTransmitDelay?: number; CBShareReceiveToTPGWFirstKeyFrameDelay?: number; /** * phrased HTTP timing */ floorRequestHttpTiming?: { connect?: number; dnsLookup?: number; sendRequest?: number; compressRequest?: number; receiveResponse?: number; extractJson?: number; verifyCert?: number; refreshToken?: number; additionalProperties?: never; }; TPGWFirstKeyFrameToServerShareTransmitDelay?: number; MCSSessionActivateToLocusFloorGrantDelay?: number; ServerShareInitiateToLocusFloorGrantDelay?: number; LocusFloorGrantToCBSessionStartDelay?: number; ServerShareReceiveToTPGWFirstKeyFrameDelay?: number; LocusFloorGrantToTPGWFloorGrantDelay?: number; LocusFloorGrantToReceiverNotificationDelay?: number; CBShareSessionRespDelay?: number; LocusShareFloorGrantRespDelay?: number; LocusFloorReqToRespDelay?: number; ServerShareFloorGrantRespDelay?: number; joinRespRxStart?: number; joinRespTxStart?: number; maxRemoteLossRate?: number; media2SignalDelay?: number; warholDownloadTime?: number; contentDownloadTime?: number; boardCreationTime?: number; totalBoardServiceRespDelay?: number; additionalProperties?: never; }; isFocus?: boolean; processingDelay?: number; shareResourceType?: | "APPLICATION_OR_WINDOW" | "CAMERA" | "DEFAULT" | "EMBEDDED_APP" | "FILE" | "MOBILE_FILE" | "MOBILE_SCREEN_MIRRORING" | "SCREEN"; shareResourceName?: string; shareType?: | "cb-normal-share" | "ce-airplay-share" | "ce-direct-share" | "ce-gui-loopback-share" | "ce-input-source-share" | "ce-input-source-share-hdmi" | "ce-input-source-share-usbc" | "ce-jpg-share" | "ce-miracast-share" | "mcs-normal-share" | "mcs-normal-audio-share" | "mcs-hfps-share" | "mcs-hfps-audio-share"; isShareBeingTakenOver?: boolean; floorBeneficiaryUpdated?: boolean; meetingJoinedTime?: string; /** * join phase of event */ meetingJoinPhase?: "pre-join" | "join" | "in-meeting"; meetingScheduledTime?: string; seconds2StartTime?: number; e2eeKeyEpoch?: number; e2eeDecompressRatio?: number; keyResponses?: { gotKeyTime?: number; useKeyTime?: number; cacheKeyTime?: number; additionalProperties?: never; }[]; e2eeVersion?: "E2EEV1" | "E2EEV2" | "E2EEV3" | "E2EEV4" | "E2EEV4_PLUS" | "E2EEV4_B" | "E2EEV5"; isZeroTrust?: boolean; /** * Version of SFrame in use. */ sframeVersion?: "SFRAMEV1" | "SFRAMEV2"; isConvergedArchitectureEnabled?: boolean; isCustomBrowser?: boolean; callingServiceType?: "CUCM" | "WEBEXCALLING" | "BROADWORKS" | "LOCUS" | "BROADCLOUDCARRIER"; supplementaryMediaSessionType?: "DirectShare"; isPaired?: boolean; inLobby?: boolean; isVIPMeeting?: boolean; webexAppEntrypoint?: string; firstParticipant?: boolean; isImmersiveShare?: boolean; /** * Request/Response Time for Internal Services / Clients */ registeredTimestamps?: { locusCreateConfluenceRequestTime?: string; locusCreateConfluenceResponseTime?: string; locusCreateVenueRequestTime?: string; locusCreateVenueResponseTime?: string; interstitialWindowLaunchedTime?: string; additionalProperties?: never; }; skipInterstitialWindow?: boolean; callDurationSecs?: number; connectionDurationSecs?: number; lobbyType?: string; callDirection?: "ORIGINATING" | "TERMINATING"; /** * Details associated with a breakout move */ breakout?: { moveType?: "between_breakout" | "to_breakout" | "to_main"; trigger?: "assignment_changed" | "client_initiated" | "session_ended" | "session_started"; startState?: "joined" | "lobby"; endState?: "joined" | "lobby"; additionalProperties?: never; }; /** * Latency values associated with breakout session */ breakoutLatency?: { clientBreakoutMoveReqJoinResp?: number; boBreakoutMoveProcessed?: number; boBreakoutMoveResp?: number; boLocusBreakoutMoveResp?: number; locusBreakoutMoveResp?: number; orpheusConfluenceMoveReqResp?: number; additionalProperties?: never; }; /** * two-way whiteboard related info */ whiteboard?: { action?: "open" | "create"; type?: "whiteboard" | "annotation"; capability?: "one_way" | "two_way"; granted?: "one_way" | "two_way"; additionalProperties?: never; }; /** * ROAP message details */ roap?: { type?: | "ANSWER" | "ERROR" | "OFFER" | "OFFER_REQUEST" | "OFFER_RESPONSE" | "OK" | "OKAY" | "TURN_DISCOVERY_REQUEST" | "TURN_DISCOVERY_RESPONSE"; messageType?: | "ANSWER" | "ERROR" | "OFFER" | "OFFER_REQUEST" | "OFFER_RESPONSE" | "OK" | "OKAY" | "TURN_DISCOVERY_REQUEST" | "TURN_DISCOVERY_RESPONSE"; error?: string; duration?: number; seq?: number; additionalProperties?: never; }; /** * Pstn Carrier Infos */ pstnCarrierInfo?: { cic?: string; carrierName?: string; ucreDnsSrvs?: string[]; additionalProperties?: never; }; pstnAudioCallType?: "PSTN" | "CCA_E" | "CCA_SP" | "EDGE_AUDIO" | "CCA_S" | "VMN_AUDIO"; l2sipCallbackUrl?: string; ivrDialingStatusOriginator?: "L2SIP" | "CLOUD_PROXY" | "CARRIER" | "UNIDENTIFIED"; cic?: string; carrierName?: string; originator?: string; ucreDnsSrvs?: string[]; ivrServiceUcreAttempts?: number; antiFraudPolicyType?: string; antiFraudBlocked?: boolean; sipResponseCode?: | "100_Trying" | "183_Ringing" | "200_Ok" | "404_NotFound" | "407_ProxyAuthRequired" | "486_BusyHere" | "503_ServiceUnavailable" | "606_NotAcceptable"; /** * details of scheduling information */ schedulingInfo?: { /** * this defines calendar type for scheduling */ calendarType?: "exchange_online" | "exchange_onprem" | "google" | "other" | "webex"; /** * this defines meeting categories for scheduling */ meetingCategory?: "AdhocUSM" | "Instant" | "Scheduled" | "ScheduledPMR" | "ScheduledUSM" | "SpaceMeetingV1"; /** * this defines where the meeting was scheduled from */ scheduledFrom?: | "ADDIN_O365" | "ADDIN_ONPREM" | "ADHOC_USM" | "AT_WEBEX_GOOGLE" | "AT_WEBEX_MSFT" | "AT_MEET_GOOGLE" | "AT_MEET_MSFT" | "GOOGLE_ADDON" | "INSTANT_MEETING" | "OTHER" | "PT" | "PUBLIC_API" | "TEAMS_CLIENT" | "TEAMS_CLIENT_CROSS_LAUNCH" | "UNIFIED_PAGE" | "WEBEX_PAGE"; /** * this defines meeting categories for scheduling */ schedulingOperationType?: "prepare" | "create" | "update" | "delete"; additionalProperties?: never; }; /** * details of setting information */ settingInfo?: { /** * this defines where the type of Setting being modified/updated */ settingType: "AUDIO_VIDEO" | "EMAIL_TEMPLATE" | "GENERAL" | "PMR" | "RECORDING" | "SCHEDULING" | "WEBEX_SITE"; additionalProperties?: never; }; sessionJoinCount?: number; /** * indicates transport type used */ transportType?: "UDP" | "TCP" | "xTLS" | "TLS"; joinFlowVersion?: "NewFTE" | "Other"; locale?: string; accessNumber?: string; isVVipMeeting?: boolean; /** * Login-related information. */ loginInfo?: { loginType?: | "user-hub" | "control-hub" | "meeting-site" | "global-sign-in-page" | "web-client" | "native-client"; method?: "idbroker" | "enterprise" | "social"; grantType?: "client-credential" | "authorization-code" | "scope-reduction"; /** * Sign-in Time */ signInDelay?: { signInTime?: number; additionalProperties?: never; }; signInSignUpType?: "sign-in" | "sign-up"; userFound?: boolean; additionalProperties?: never; }; isPrivateMeeting?: boolean; /** * Low Latency Mercury latency measurements */ llmLatency?: { clientLLMDatachannelResponseTime?: number; clientLLMWebSocketConnectTime?: number; additionalProperties?: never; }; /** * Sync Latency measurements. Expected to be sent in client.locus.sync.complete and locus.sync.sent events that could be triggered in a converged webinar session */ syncLatency?: { randomBackoffTime?: number; hashtreePrepTime?: number; hashtreeProcessingTime?: number; hashtreeResponseTime?: number; syncPrepTime?: number; syncResponseTime?: number; syncProcessingTime?: number; syncMessageReceiveTime?: number; totalTime?: number; additionalProperties?: never; }; /** * Low Latency Mercury related information. */ llmInfo?: { dataSet?: "main" | "atd-active" | "atd-unmuted"; additionalProperties?: never; }; name: | "client.feature.audio.noise.removal" | "client.feature.embedded-object-info" | "client.feature.gesture.recognition" | "client.feature.meeting.breakout-session.action" | "client.feature.meeting.breakout-session.summary" | "client.feature.meeting.download.summary" | "client.feature.meeting.people-insights.check.response" | "client.feature.meeting.people-insights.query.response" | "client.feature.meeting.problem-report.submit" | "client.feature.meeting.summary" | "client.feature.meeting.teams.launch" | "client.feature.meeting.user-action" | "client.feature.mta.launched" | "client.feature.report" | "client.feature.vdi.collect.thinclient.log" | "client.feature.webexapplauncher.install-webexapp"; /** * Base type for the various identifiers used to connect the dots. * In general, these should be populated whenever possible. Subtypes may make a particular key required. * */ identifiers: { aggregatedBreakoutMoveId?: string; attendeeId?: string; participantId?: string; breakoutGroupId?: string; breakoutMoveId?: string; breakoutTrackingId?: string; breakoutSessionId?: string; browserId?: string; ciExchangeTokenUrl?: string; confluenceId?: string; /** * Set of identifiers dedicated to CPaaS clients * In general, these should be populated whenever possible. Subtypes may make a particular key required. * */ cpaasIdentifiers?: { imiTenantId: string; devClientId: string; imiServiceId: string; imiAppId: string; sessionId: string; sessionInstanceId: string; additionalProperties?: never; }; csdmDeviceUrl?: string; destinationBreakoutSessionId?: string; destinationLocusSessionId?: string; destinationLocusUrl?: string; destinationVenueId?: string; deviceId?: string; globalMeetingId?: string; installationId?: string; webexMeetingUUID?: string; ivrCallId?: string; ivrDialogId?: string; ivrId?: string; callId?: string; pairCallId?: string; llmWebsocketUrl?: string; locusCluster?: string; locusId?: string; locusJoinUrl?: string; locusSessionId?: string; locusStartTime?: string; locusUrl?: string; machineId?: string; mediaAgentAlias?: string; mediaAgentGroupId?: string; meetClusterName?: string; meetingInstanceId?: string; meetingLookupUrl?: string; meetingOrgId?: string; metricServiceUrl?: string; mercuryWebsocketUrl?: string; msteamsTenantGuid?: string; msteamsConferenceId?: string; msteamsMeetingId?: string; mtid?: string; oauth2ClientId?: string; orgId?: string; provisionalCorrelationId?: string; roomId?: string; sessionCorrelationId?: string; sharedMediaId?: string; sipCallId?: string; sipSessionId?: { local?: string; remote?: string; additionalProperties?: never; }; sipUri?: string; subConfId?: string; tenantId?: string; trackingId?: string; userId?: string; venueId?: string; venueUrl?: string; whiteboardUrl?: string; wdmDeviceRegistrationUrl?: string; webexConferenceId?: number; webexClusterName?: string; webexConferenceIdStr?: string; webexDataCenter?: string; webexGuestId?: number; webexMeetingId?: number; webexNodeId?: number; webexSiteId?: number; webexSiteName?: string; webexSiteUuid?: string; webexUserId?: number; webexWebDomain?: string; recordingId?: string; clientCorrelationId?: string; idForEndpointAB?: string; customerOrgId?: string; correlationId: string; additionalProperties?: never; }; trigger?: "user-interaction"; errors?: { fatal: boolean; category: "signaling" | "media" | "network" | "other" | "expected"; errorDescription?: string; errorCode?: number; errorCodeStr?: string; httpCode?: number; errorCodeExt1?: number; errorData?: {}; rawErrorMessage?: string; mediaDeviceErrors?: string; shownToUser: boolean; serviceErrorCode?: number; name: | "media-engine" | "ice.failed" | "locus.response" | "locus.leave" | "client.leave" | "media-device" | "media-sca" | "wxc" | "service-api-error" | "network-error" | "Error_Success" | "other"; component?: string; additionalProperties?: never; }[]; pairingState?: "paired" | "observing" | "challenging"; userType?: "host" | "attendee" | "cohost" | "panelist"; updateType?: "new-user" | "update-user" | "return-user"; migrationToUCFType?: "new-install" | "upgrade" | "force-upgrade" | "upgrade-not-needed" | "install-not-needed"; isFirstTimeUser?: boolean; /** * Details of server environment */ serverInfo?: { serverType?: | "CB" | "CMS" | "CRC" | "HESIOD" | "LINUS" | "MCC" | "MCS" | "MES" | "MJS" | "MRS" | "MYGDONUS" | "MZM" | "TERMINUS" | "TPGW" | "TA" | "HOMER" | "SUPERHOMER" | "U2C" | "WCA" | "MSE" | "UNKNOWN"; serverAddress?: string; additionalProperties?: never; }; /** * Details of breakout session information, sent after end of breakout session */ breakoutSessionSummaryInfo?: { duration: number; subConferenceCount: number; totalAttendeeCount: number; participantCount: number; assignedparticipantCount: number; cohostCount: number; averageAttendeeCountPerSubConference: number; totalHostJoinedCount: number; isBoStarted: boolean; isBoEnabled: boolean; isPreAssigned: boolean; boStartedTimers: number; createType: "pre-meeting" | "in-meeting"; enableType: "pre-meeting" | "in-meeting"; additionalProperties?: never; }; /** * Details of meeting summary information */ meetingSummaryInfo?: { featureReportSummary?: { featureName: {}; usage: boolean; usageDuration?: number; toggle: boolean; clickCount: number; isMachineSupport: boolean; additionalProperties?: never; }[]; featureActionSummary?: { featureName: {}; featureActions: {}[]; additionalProperties?: never; }[]; featureEventSummary?: { featureName: {}; featureEvents: {}[]; additionalProperties?: never; }[]; /** * Details of MeetingInfo. */ meetingInfo?: { simultaneousMeetingCount?: number; totalBreakoutSessionCount?: number; totalAttendeeCount?: number; currentUserCountWhenLeaving?: number; isE2EEnable?: boolean; isModernE2EEnable?: boolean; isWbxTraceOverWrite?: boolean; isAnonymousMeeting?: boolean; serverCipher?: string; mediaCipher?: string; additionalProperties?: never; }; /** * Details of SurveyInfo. */ surveyInfo?: { surveyCount: number; surveyLocalClientVersion?: string; surveyDate?: string; additionalProperties?: never; }; languageType?: | "lan_af" | "lan_sq" | "lan_am" | "lan_ar" | "lan_hy" | "lan_az" | "lan_eu" | "lan_be" | "lan_bn" | "lan_bs" | "lan_bg" | "lan_ca" | "lan_ceb" | "lan_zh" | "lan_zh-TW" | "lan_co" | "lan_hr" | "lan_cs" | "lan_da" | "lan_nl" | "lan_en" | "lan_en-GB" | "lan_eo" | "lan_et" | "lan_fi" | "lan_fr" | "lan_fr-CA" | "lan_fy" | "lan_gl" | "lan_ka" | "lan_de" | "lan_el" | "lan_gu" | "lan_ht" | "lan_ha" | "lan_haw" | "lan_he" | "lan_hi" | "lan_hmn" | "lan_hu" | "lan_is" | "lan_ig" | "lan_id" | "lan_ga" | "lan_it" | "lan_ja" | "lan_jv" | "lan_kn" | "lan_kk" | "lan_km" | "lan_rw" | "lan_ko" | "lan_ku" | "lan_ky" | "lan_lo" | "lan_la" | "lan_lv" | "lan_lt" | "lan_lb" | "lan_mk" | "lan_mg" | "lan_ms" | "lan_ml" | "lan_mt" | "lan_mi" | "lan_mr" | "lan_mn" | "lan_my" | "lan_ne" | "lan_no" | "lan_ny" | "lan_or" | "lan_ps" | "lan_fa" | "lan_pl" | "lan_pt" | "lan_pa" | "lan_ro" | "lan_ru" | "lan_sm" | "lan_gd" | "lan_sr" | "lan_st" | "lan_sn" | "lan_sd" | "lan_si" | "lan_sk" | "lan_sl" | "lan_so" | "lan_es" | "lan_es-ES" | "lan_su" | "lan_sw" | "lan_sv" | "lan_tl" | "lan_tg" | "lan_ta" | "lan_tt" | "lan_te" | "lan_th" | "lan_tr" | "lan_tk" | "lan_uk" | "lan_ur" | "lan_ug" | "lan_uz" | "lan_vi" | "lan_cy" | "lan_xh" | "lan_yi" | "lan_yo" | "lan_zu"; additionalProperties?: never; }; /** * Audio background noise removal */ audioNoiseRemoval?: { /** * background noise removal action data */ actionData?: { bnrActionType: "turn-on-bnr" | "turn-off-bnr"; additionalProperties?: never; }; /** * background noise removal event data */ eventData?: { bnrEventType: "bnr-on" | "bnr-off"; additionalProperties?: never; }; additionalProperties?: never; }; /** * Details of client action */ gestureRecognition?: { supportedMachine?: boolean; gestureType?: "clap" | "none" | "raiseHand" | "thumpUp" | "thumbDown"; duration?: number; additionalProperties?: never; }; /** * post meeting hook report */ postMeetingHook?: { /** * data define for background noise removal action */ actionData?: { pmhActionType: "share" | "view-details" | "close"; pmhActionResult?: string; additionalProperties?: never; }; /** * data define for background noise removal event */ eventData?: { pmhEventType: "used" | "not-show-again"; additionalProperties?: never; }; additionalProperties?: never; }; /** * Details of problem report information */ problemReportInfo?: { logId: string; fileSize: number; uploadStage: "connect" | "upload"; collectWMETime?: number; collectTopicTime?: number; collectSystemInfoTime?: number; collectMeetingDataTime?: number; collectDumpTime?: number; collectCPUTime?: number; zipTime?: number; connectTime?: number; uploadTime?: number; totalTime?: number; uploadErrorMessage?: string; additionalProperties?: never; }; /** * Details of breakout session information */ breakoutSessionInfo?: { breakoutSessionAction: | "add" | "assign" | "ask-for-help" | "breakout-session-open" | "breakout-session-close" | "breakout-session-mute-all" | "breakout-session-unmute-all" | "broadcast-open" | "broadcast-send" | "cancel-automatic-close" | "create" | "delete" | "disable" | "dynamic-assign" | "dynamic-exchange" | "end" | "enable" | "exchange" | "join" | "leave" | "lock-all-sessions" | "lock-this-sessions" | "moveto" | "mute-all" | "mute-all-set" | "recreate" | "remove" | "rename" | "search" | "select-all" | "show-all-sessions" | "start" | "unmute-all" | "unlock-all-sessions" | "unlock-this-sessions" | "allow-leave-session" | "allow-join-session-later" | "auto-end-sessions" | "time-before-leave-session"; breakoutSessionJoinType?: "any-one-can-join" | "auto" | "manual" | "preassign-rest"; breakoutSessionActionClickFrom?: | "actionbar" | "assign-dialog" | "auto" | "breakout-session-list" | "contextmenu" | "menu" | "plist" | "popup-dialog"; broadcastSendType?: | "all-sessions-all-participants" | "all-sessions-all-cohost-and-presenters" | "one-session-all-participants" | "one-session-one-participant"; breakoutSessionDialogOpenTime?: number; breakoutSessionDialogAssignTime?: number; additionalProperties?: never; }; /** * call embedded browser object result, if failed, will populate error at Error item */ embeddedBrowserObject?: { browserType: "IE" | "WebView2"; version?: string; callFrom?: string; additionalProperties?: never; }; /** * TeamsLaunchWebexMeeting report */ teamsLaunchWebexMeeting?: { /** * data define for TeamsLaunchWebexMeeting event */ eventData?: { tlmEevntType: "sync-preference" | "sip-call-launch" | "skip-interstitial" | "ipc-ready" | "ipc-failed"; ipcConnectTime?: number; additionalProperties?: never; }; /** * data define for TeamsLaunchWebexMeeting action */ actionData?: { tlmActionType: "change-audio" | "change-video"; additionalProperties?: never; }; /** * data define for TeamsLaunchWebexMeeting data from */ dataFrom?: { tlmFromType: "webex-meeting" | "webex-teams"; additionalProperties?: never; }; additionalProperties?: never; }; /** * Details of language action */ languageActionInfo?: { languageAction: | "openLanguageDialog" | "subscribeTransLanguage" | "unsubscribeTransLanguage" | "changeSpeakLanguage" | "transcriptTurnOnWebexAssistantDialog" | "transcriptTurnOffWebexAssistantDialog" | "transcriptTurnOnWebexAssistantMenu" | "transcriptTurn0ffWebexAssistantMenu" | "transcriptViewHighlightPanel" | "transcriptViewHighlightPanelViaCloseCaption" | "transcriptViewHighlightPanelViaPanelOption" | "transcriptViewHighlightPanelViaWebexAssistant" | "transcriptEnableCloseCaptionDialog" | "transcriptDisableCloseCaptionDialog" | "transcriptDisableCloseCaptionDialogForActiveCCOpen" | "transcriptDisableCloseCaptionDialogViaCCButton" | "transcriptDisableCloseCaptionDialogViaCCDialog" | "transcriptEnableCloseCaptionMenu" | "transcriptDisableCloseCaptionMenu" | "transcriptTabToCaptions" | "transcriptTabToHighlights" | "transcriptCreateHighlight" | "transcriptDeleteHighlightInHighlight" | "transcriptDeleteHighlightInCaptions" | "transcriptChangeFontSize" | "transcriptBackToDefaultPosition" | "transcriptChangeModeToDark" | "transcriptChangeModeToLight"; fromLanguage?: | "lan_af" | "lan_sq" | "lan_am" | "lan_ar" | "lan_hy" | "lan_az" | "lan_eu" | "lan_be" | "lan_bn" | "lan_bs" | "lan_bg" | "lan_ca" | "lan_ceb" | "lan_zh" | "lan_zh-TW" | "lan_co" | "lan_hr" | "lan_cs" | "lan_da" | "lan_nl" | "lan_en" | "lan_en-GB" | "lan_eo" | "lan_et" | "lan_fi" | "lan_fr" | "lan_fr-CA" | "lan_fy" | "lan_gl" | "lan_ka" | "lan_de" | "lan_el" | "lan_gu" | "lan_ht" | "lan_ha" | "lan_haw" | "lan_he" | "lan_hi" | "lan_hmn" | "lan_hu" | "lan_is" | "lan_ig" | "lan_id" | "lan_ga" | "lan_it" | "lan_ja" | "lan_jv" | "lan_kn" | "lan_kk" | "lan_km" | "lan_rw" | "lan_ko" | "lan_ku" | "lan_ky" | "lan_lo" | "lan_la" | "lan_lv" | "lan_lt" | "lan_lb" | "lan_mk" | "lan_mg" | "lan_ms" | "lan_ml" | "lan_mt" | "lan_mi" | "lan_mr" | "lan_mn" | "lan_my" | "lan_ne" | "lan_no" | "lan_ny" | "lan_or" | "lan_ps" | "lan_fa" | "lan_pl" | "lan_pt" | "lan_pa" | "lan_ro" | "lan_ru" | "lan_sm" | "lan_gd" | "lan_sr" | "lan_st" | "lan_sn" | "lan_sd" | "lan_si" | "lan_sk" | "lan_sl" | "lan_so" | "lan_es" | "lan_es-ES" | "lan_su" | "lan_sw" | "lan_sv" | "lan_tl" | "lan_tg" | "lan_ta" | "lan_tt" | "lan_te" | "lan_th" | "lan_tr" | "lan_tk" | "lan_uk" | "lan_ur" | "lan_ug" | "lan_uz" | "lan_vi" | "lan_cy" | "lan_xh" | "lan_yi" | "lan_yo" | "lan_zu"; toLanguage?: | "lan_af" | "lan_sq" | "lan_am" | "lan_ar" | "lan_hy" | "lan_az" | "lan_eu" | "lan_be" | "lan_bn" | "lan_bs" | "lan_bg" | "lan_ca" | "lan_ceb" | "lan_zh" | "lan_zh-TW" | "lan_co" | "lan_hr" | "lan_cs" | "lan_da" | "lan_nl" | "lan_en" | "lan_en-GB" | "lan_eo" | "lan_et" | "lan_fi" | "lan_fr" | "lan_fr-CA" | "lan_fy" | "lan_gl" | "lan_ka" | "lan_de" | "lan_el" | "lan_gu" | "lan_ht" | "lan_ha" | "lan_haw" | "lan_he" | "lan_hi" | "lan_hmn" | "lan_hu" | "lan_is" | "lan_ig" | "lan_id" | "lan_ga" | "lan_it" | "lan_ja" | "lan_jv" | "lan_kn" | "lan_kk" | "lan_km" | "lan_rw" | "lan_ko" | "lan_ku" | "lan_ky" | "lan_lo" | "lan_la" | "lan_lv" | "lan_lt" | "lan_lb" | "lan_mk" | "lan_mg" | "lan_ms" | "lan_ml" | "lan_mt" | "lan_mi" | "lan_mr" | "lan_mn" | "lan_my" | "lan_ne" | "lan_no" | "lan_ny" | "lan_or" | "lan_ps" | "lan_fa" | "lan_pl" | "lan_pt" | "lan_pa" | "lan_ro" | "lan_ru" | "lan_sm" | "lan_gd" | "lan_sr" | "lan_st" | "lan_sn" | "lan_sd" | "lan_si" | "lan_sk" | "lan_sl" | "lan_so" | "lan_es" | "lan_es-ES" | "lan_su" | "lan_sw" | "lan_sv" | "lan_tl" | "lan_tg" | "lan_ta" | "lan_tt" | "lan_te" | "lan_th" | "lan_tr" | "lan_tk" | "lan_uk" | "lan_ur" | "lan_ug" | "lan_uz" | "lan_vi" | "lan_cy" | "lan_xh" | "lan_yi" | "lan_yo" | "lan_zu"; additionalProperties?: never; }; /** * Details of video action */ videoActionInfo?: { videoAction: | "switchLayout" | "switchPage" | "switchActiveUser" | "zoomIn" | "zoomOut" | "pinVideoToStage" | "unpinVideoToStage" | "syncMyStageForAll" | "desyncMyStageForAll" | "showParticipantWithoutVideo" | "hideParticipantWithoutVideo" | "showActiveVideoInStage" | "hideActiveVideoInStage" | "showActiveVideoWithShareContent" | "hideActiveVideoWithShareContent" | "showVideoOnTP" | "showVideoOnComputer" | "EnterFullScreen" | "ExitFullScreen" | "EnterFullScreenWithShare" | "ExitFullScreenWithShare" | "hideFilmStrip" | "showFilmStrip"; fromLayoutType?: | "stack" | "stackWithShare" | "sideBySide" | "sideBySideWithShare" | "grid" | "floatingActive" | "floatingThumbnail" | "floatingGrid" | "overlay" | "focus" | "prominent" | "focusWithShare" | "prominentWithShare" | "equal" | "equalWithShare" | "largeGallery" | "auto" | "autoWithShare"; toLayoutType?: | "stack" | "stackWithShare" | "sideBySide" | "sideBySideWithShare" | "grid" | "floatingActive" | "floatingThumbnail" | "floatingGrid" | "overlay" | "focus" | "prominent" | "focusWithShare" | "prominentWithShare" | "equal" | "equalWithShare" | "largeGallery" | "auto" | "autoWithShare"; zoomLayoutType?: | "stack" | "stackWithShare" | "sideBySide" | "sideBySideWithShare" | "grid" | "floatingActive" | "floatingThumbnail" | "floatingGrid" | "overlay" | "focus" | "prominent" | "focusWithShare" | "prominentWithShare" | "equal" | "equalWithShare" | "largeGallery" | "auto" | "autoWithShare"; duration?: number; myVideoCSI?: number; myNodeID?: number; fromActiveNodeID?: number; toActiveNodeID?: number; switchFromVideoCount?: number; switchToVideoCount?: number; isSwitchToPrevious?: boolean; pinVideoNodeID?: number; pinVideoCSI?: number; actionFromPlist?: boolean; syncStageNodeIDArray?: number[]; syncStageCSIArray?: number[]; lockAttendeeStageView?: boolean; additionalProperties?: never; }; /** * Details of FeatureReport */ featureReport?: { featureReportItems: { featureName: {}; timeStamp: string; actionName?: string; eventName?: string; duration?: number; extValue?: string; webappData?: {}; reactionData?: {}; interpretationAction?: {}; additionalProperties?: never; }[]; additionalProperties?: never; }; downloadInfos?: { percentCompleted?: number; packageName?: string; timestamp?: string; clientDownloadFileCount?: number; clientDownloadSize?: number; clientDownloadTime?: number; clientDecompressTime?: number; CDNEnabled?: boolean; updateFlag?: "preMeeting" | "inMeeting" | "postMeeting"; epSP?: boolean; isEPUpdate?: boolean; spDifferent?: number; spVersionDelta?: number; deltaUpdate?: boolean; deltaListDownloadTime?: number; deltaPackageDownloadTime?: number; deltaCachePackageCopyTime?: number; deltaApplyTime?: number; deltaPackageUncompressTime?: number; deltaDuration?: number; deltaVersion?: string; deltaDownloadFullPackage?: boolean; deltaFileSize?: number; deltaUpdateEnabled?: boolean; deltaFullpackageDownloadEnabled?: boolean; deltaUpdateErrorType?: string; deltaUpdateSuccess?: string; deltaFullpackageDownloadVersion?: string; deltaFullpackageDownloadSuccess?: string; deltaUpdateCorrelationId?: string; deltaFullpackageDownloadCorrelationId?: string; deltaTargetVersion?: string; deltaLocalFullPackageVersions?: string; deltaUpdateFailReason?: string; deltaUpdateTimeStamp?: string; additionalProperties?: never; }[]; additionalProperties?: never; } | { canProceed?: boolean; state?: string; mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard" | "gamestate"; /** * Details associated with a share floor type */ floorType?: { name: "DEFAULT" | "EMBEDDED_APP" | "OTHER"; priority?: {}; additionalProperties?: never; }; csi?: number; /** * media capability for both transmit and receive */ mediaCapabilities?: { /** * explicit indication of media capabilities. true=supported */ tx: { audio: boolean; video: boolean; share: boolean; share_audio: boolean; whiteboard: boolean; gamestate?: boolean; additionalProperties?: never; }; /** * explicit indication of media capabilities. true=supported */ rx: { audio: boolean; video: boolean; share: boolean; share_audio: boolean; whiteboard: boolean; gamestate?: boolean; additionalProperties?: never; }; additionalProperties?: never; }; mediaLines?: { clusterName?: string; connectionType?: "none" | "direct" | "proxy"; direction: "sendrecv" | "sendonly" | "recvonly" | "inactive"; errorCode?: number; extension?: {}; failureDescription?: string; failureReason?: "network" | "transport" | "rejected" | "timeout" | "notstarted" | "succeeded"; iceMangled?: boolean; localIP?: string; localNetworkPrefix?: string; localPort?: number; mediaLineData?: {}; mediaType: "audio" | "video" | "share" | "share_audio" | "whiteboard" | "gamestate" | "all"; protocol: "udp" | "tcp" | "xtls" | "unknown"; recvRespTime?: string; remoteIP?: string; remotePort?: number; sentReqTime?: string; status?: "succeeded" | "in-progress" | "failed"; tlsDomain?: string; transactionId?: string; ufrag?: string; additionalProperties?: never; }[]; /** * allows client to specify media preferences */ clientMediaPreferences?: { preferTranscoding: boolean; additionalProperties?: never; }; pstnAudioType?: "dial-in" | "dial-out"; homeDataCenter?: string; success?: boolean; isTranscoded?: boolean; isGatewayed?: boolean; isComposed?: boolean; /** * determine how the events are processed as well as how the reports are aggregated and sliced */ registrationMode?: "SIP" | "Cloud" | "CloudAware"; /** * protocols used to help determine how the events are processed as well as how the reports are aggregated and sliced */ protocol?: "SIP" | "H323" | "H323_IP" | "Locus" | "WebRTC"; /** * The underlying service provider of the call. */ meetingPlatform?: "MsTeams" | "GoogleMeet" | "Zoom" | "Webex"; labels?: string[]; labelsStr?: string; webexServiceType?: "MC" | "EC" | "SC" | "TC" | "AA" | "RA" | "NBR" | "WRF" | "HOL"; /** * this defines the sub service type */ webexSubServiceType?: | "PMR" | "Event" | "Training" | "ScheduleMeeting" | "ScheduledMeeting" | "Webcast" | "Webinar" | "LargeScaleWebinar" | "others"; ivrDialogType?: | "MEDIA_ON_HOLD" | "ANNOUNCEMENT" | "TONE" | "COLLECT_PIN" | "PROMPT" | "MEDIA_SERVICE_AGENT" | "COLLECT"; ivrDialogResult?: | "SUCCESS" | "FAILURE" | "HOST_PIN_MATCH" | "GUEST_PIN_MATCH" | "PANELIST_PIN_MATCH" | "NO_MATCH" | "INVALID_PIN"; callType?: | "VIDEO_DIALIN" | "VIDEO_DIALOUT" | "CASCADE" | "HYBRID_CASCADE" | "PSTN_SIP" | "PSTN_DIALIN" | "PSTN_DIALOUT" | "PSTN_ONLY_DIALIN" | "PSTN_ONLY_DIALOUT" | "AUDIO_DIALIN" | "AUDIO_ONLY_DIALIN" | "H323" | "H323_IP" | "SIP_ENTERPRISE" | "SIP_MOBILE" | "SIP_NATIONAL" | "SIP_INTERNATIONAL" | "SIP_EMERGENCY" | "SIP_OPERATOR" | "SIP_SHORTCODE" | "SIP_TOLLFREE" | "SIP_PREMIUM" | "SIP_URI" | "SIP_INBOUND" | "UNKNOWN" | "ZTM" | "SIP_MEETING" | "SIP_DIALOUT" | "SIP_ONLY_DIALOUT"; eventData?: {}; derivedSipClientType?: | "SIP_CE_SINGLE_SCREEN" | "SIP_CE_MULTI_SCREEN" | "SIP_JABBER" | "SIP_TIP_SINGLE_SCREEN" | "SIP_TIP_THREE_SCREEN" | "SIP_PSTN" | "SIP_OTHER" | "SIP_WEBEX_CASCADE" | "SIP_NONE"; /** * this defines the major client types */ derivedClientType?: | "MEETING_CENTER" | "EVENT_CENTER" | "TRAINING_CENTER" | "TEAMS_CLIENT" | "TEAMS_DEVICE" | "TEAMS_SHARE" | "SIP" | "RECORDING" | "CLOUD_AWARE_SIP" | "TEAMS_WXC_CLIENT" | "WXC_CLIENT" | "WXC_DEVICE" | "WEBEX_JS_SDK" | "VOICEA_CLIENT" | "CISCO_SIP_GW" | "WEBEX_SDK" | "CPAAS_THIRD_PARTY_SDK" | "WXC_THIRD_PARTY" | "WXCC" | "TEAMS_PHONE" | "WEBEX_RELAY"; /** * this defines the sub types of clients */ derivedSubClientType?: | "AUTOMOTIVE_APP" | "BROWSER_EXTENSION" | "DESKTOP_APP" | "DESKTOP_APP_VDI" | "DEVICE_CURRENT" | "DEVICE_LEGACY_2020" | "HOLOGRAM_HEADSET_APP" | "HVDI_APP" | "MIXED" | "MOBILE_APP" | "MOBILE_NETWORK" | "PAGE" | "TEAMS_DEVICE" | "VDI_APP" | "WEB_APP" | "PHONE_NOVUM" | "PHONE_ESPRESSO" | "PHONE_BUMBLEBEE" | "SIP" | "SIP_PSTN"; meetingRole?: "PANELIST" | "ATTENDEE"; serverRole?: | "CONFERENCE" | "TRANSCODER" | "WHITEBOARD_INJECTOR" | "MS_TEAMS_CONFERENCE" | "RECORDING" | "GATEWAY" | "GATEWAY_CLIENT_SIDE" | "UNKNOWN" | "HOLOGRAM_RENDER" | "EDGE"; reconnect?: boolean; retryCount?: number; meetSimple?: boolean; /** * represents media quality status report such as no media or drop out */ mediaStatus?: { mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard"; mediaSuccess?: boolean; shareType?: | "cb-normal-share" | "ce-airplay-share" | "ce-direct-share" | "ce-gui-loopback-share" | "ce-input-source-share" | "ce-input-source-share-hdmi" | "ce-input-source-share-usbc" | "ce-jpg-share" | "ce-miracast-share" | "mcs-normal-share" | "mcs-normal-audio-share" | "mcs-hfps-share" | "mcs-hfps-audio-share"; isTransmitter?: boolean; audioJoinType?: | "phone-call-in" | "phone-call-back" | "voip" | "device-call-back" | "never-join-audio" | "tried-but-never-join"; /** * indicates transport type used */ transportType?: "UDP" | "TCP" | "xTLS" | "TLS"; additionalData?: {}; /** * information object for the peripheral */ mediaDeviceInfo?: { name: "camera" | "microphone" | "speaker"; information?: string; driver?: string; errorCode?: string; subErrorCode?: string; captureFrameSize?: number; captureFps?: number; captureFrameworkType?: number; captureRawType?: number; deviceCapabilitiesTime?: number; connectionType?: {}; bluetoothMode?: {}; openDeviceCostTimeMilliSecond?: number; startCaptureCostTimeMilliSecond?: number; txSampleRate?: number; rxSampleRate?: number; isAAudioLowLatency?: number; isStartNDKFailed?: number; startPlaybackCostTimeMilliSecond?: number; changeCount?: number; /** * indicates capture device's system volume, between -1 and 100, -1 means invalid */ captureSystemVolume?: number; /** * indicates playback device's system volume, between -1 and 100, -1 means invalid */ playbackSystemVolume?: number; started?: boolean; sysAudioSEStatus?: number; isVolumeControlAvailable?: boolean; rawStreamStatus?: number; status?: string; initCaptureFrameworkType?: "unknown" | "dshow" | "mf" | "mfPrefer"; cameraRetried?: boolean; captureCameraType?: | "unknown" | "builtIn" | "aggregate" | "virtual" | "pci" | "usb" | "fireWire" | "bluetooth" | "hdmi" | "displayPort" | "airPlay" | "avb" | "thunderbolt" | "lineLevel" | "external" | "continuityCaptureWired" | "continuityCaptureWireless" | "audioRemote" | "iphoneCamera" | "deskViewCamera" | "virtualCamera" | "builtInMinijack"; captureCameraFailNum?: number; videoCaptureEnumTime?: number; additionalProperties?: never; }; additionalProperties?: never; }; shareInstanceId?: string; ipVersion?: "IPv4" | "IPv6" | "Dual"; isTransmitter?: boolean; shareDuration?: number; stopReason?: string; shareStartReason?: string; hologramStreamId?: string; /** * represents all of the properities that could cause delay during media setup process. */ audioSetupDelay?: { floorReqSentReceived?: number; floorRespSentReceived?: number; mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard"; txReqFloorGranted?: number; txSessionCreateConfirm?: number; txApeEnrollConfirm?: number; txUIDelay?: number; txScreenCaptureDelay?: number; txScreenCaptureDelayReasonCode?: number; txShareStartOverallDelay?: number; floorGranted2tx1stPacketSendDelay?: number; rx1stPacket2RenderDelay?: number; rxGranted2RenderDelay?: number; rxFailFrameNumB4Success?: number; e2eFirstFrameDelay?: number; CBSessionRespToLocusFloorGrantDelay?: number; CBShareReceiveToServerShareTransmitDelay?: number; CBShareReceiveToTPGWFirstKeyFrameDelay?: number; /** * phrased HTTP timing */ floorRequestHttpTiming?: { connect?: number; dnsLookup?: number; sendRequest?: number; compressRequest?: number; receiveResponse?: number; extractJson?: number; verifyCert?: number; refreshToken?: number; additionalProperties?: never; }; TPGWFirstKeyFrameToServerShareTransmitDelay?: number; MCSSessionActivateToLocusFloorGrantDelay?: number; ServerShareInitiateToLocusFloorGrantDelay?: number; LocusFloorGrantToCBSessionStartDelay?: number; ServerShareReceiveToTPGWFirstKeyFrameDelay?: number; LocusFloorGrantToTPGWFloorGrantDelay?: number; LocusFloorGrantToReceiverNotificationDelay?: number; CBShareSessionRespDelay?: number; LocusShareFloorGrantRespDelay?: number; LocusFloorReqToRespDelay?: number; ServerShareFloorGrantRespDelay?: number; joinRespRxStart?: number; joinRespTxStart?: number; maxRemoteLossRate?: number; media2SignalDelay?: number; warholDownloadTime?: number; contentDownloadTime?: number; boardCreationTime?: number; totalBoardServiceRespDelay?: number; additionalProperties?: never; }; /** * represents all of the properities that could cause delay during media setup process. */ videoSetupDelay?: { floorReqSentReceived?: number; floorRespSentReceived?: number; mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard"; txReqFloorGranted?: number; txSessionCreateConfirm?: number; txApeEnrollConfirm?: number; txUIDelay?: number; txScreenCaptureDelay?: number; txScreenCaptureDelayReasonCode?: number; txShareStartOverallDelay?: number; floorGranted2tx1stPacketSendDelay?: number; rx1stPacket2RenderDelay?: number; rxGranted2RenderDelay?: number; rxFailFrameNumB4Success?: number; e2eFirstFrameDelay?: number; CBSessionRespToLocusFloorGrantDelay?: number; CBShareReceiveToServerShareTransmitDelay?: number; CBShareReceiveToTPGWFirstKeyFrameDelay?: number; /** * phrased HTTP timing */ floorRequestHttpTiming?: { connect?: number; dnsLookup?: number; sendRequest?: number; compressRequest?: number; receiveResponse?: number; extractJson?: number; verifyCert?: number; refreshToken?: number; additionalProperties?: never; }; TPGWFirstKeyFrameToServerShareTransmitDelay?: number; MCSSessionActivateToLocusFloorGrantDelay?: number; ServerShareInitiateToLocusFloorGrantDelay?: number; LocusFloorGrantToCBSessionStartDelay?: number; ServerShareReceiveToTPGWFirstKeyFrameDelay?: number; LocusFloorGrantToTPGWFloorGrantDelay?: number; LocusFloorGrantToReceiverNotificationDelay?: number; CBShareSessionRespDelay?: number; LocusShareFloorGrantRespDelay?: number; LocusFloorReqToRespDelay?: number; ServerShareFloorGrantRespDelay?: number; joinRespRxStart?: number; joinRespTxStart?: number; maxRemoteLossRate?: number; media2SignalDelay?: number; warholDownloadTime?: number; contentDownloadTime?: number; boardCreationTime?: number; totalBoardServiceRespDelay?: number; additionalProperties?: never; }; /** * represents all of the properities that could cause delay during media setup process. */ shareSetupDelay?: { floorReqSentReceived?: number; floorRespSentReceived?: number; mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard"; txReqFloorGranted?: number; txSessionCreateConfirm?: number; txApeEnrollConfirm?: number; txUIDelay?: number; txScreenCaptureDelay?: number; txScreenCaptureDelayReasonCode?: number; txShareStartOverallDelay?: number; floorGranted2tx1stPacketSendDelay?: number; rx1stPacket2RenderDelay?: number; rxGranted2RenderDelay?: number; rxFailFrameNumB4Success?: number; e2eFirstFrameDelay?: number; CBSessionRespToLocusFloorGrantDelay?: number; CBShareReceiveToServerShareTransmitDelay?: number; CBShareReceiveToTPGWFirstKeyFrameDelay?: number; /** * phrased HTTP timing */ floorRequestHttpTiming?: { connect?: number; dnsLookup?: number; sendRequest?: number; compressRequest?: number; receiveResponse?: number; extractJson?: number; verifyCert?: number; refreshToken?: number; additionalProperties?: never; }; TPGWFirstKeyFrameToServerShareTransmitDelay?: number; MCSSessionActivateToLocusFloorGrantDelay?: number; ServerShareInitiateToLocusFloorGrantDelay?: number; LocusFloorGrantToCBSessionStartDelay?: number; ServerShareReceiveToTPGWFirstKeyFrameDelay?: number; LocusFloorGrantToTPGWFloorGrantDelay?: number; LocusFloorGrantToReceiverNotificationDelay?: number; CBShareSessionRespDelay?: number; LocusShareFloorGrantRespDelay?: number; LocusFloorReqToRespDelay?: number; ServerShareFloorGrantRespDelay?: number; joinRespRxStart?: number; joinRespTxStart?: number; maxRemoteLossRate?: number; media2SignalDelay?: number; warholDownloadTime?: number; contentDownloadTime?: number; boardCreationTime?: number; totalBoardServiceRespDelay?: number; additionalProperties?: never; }; /** * represents all of the properities that could cause delay during media setup process. */ shareAudioSetupDelay?: { floorReqSentReceived?: number; floorRespSentReceived?: number; mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard"; txReqFloorGranted?: number; txSessionCreateConfirm?: number; txApeEnrollConfirm?: number; txUIDelay?: number; txScreenCaptureDelay?: number; txScreenCaptureDelayReasonCode?: number; txShareStartOverallDelay?: number; floorGranted2tx1stPacketSendDelay?: number; rx1stPacket2RenderDelay?: number; rxGranted2RenderDelay?: number; rxFailFrameNumB4Success?: number; e2eFirstFrameDelay?: number; CBSessionRespToLocusFloorGrantDelay?: number; CBShareReceiveToServerShareTransmitDelay?: number; CBShareReceiveToTPGWFirstKeyFrameDelay?: number; /** * phrased HTTP timing */ floorRequestHttpTiming?: { connect?: number; dnsLookup?: number; sendRequest?: number; compressRequest?: number; receiveResponse?: number; extractJson?: number; verifyCert?: number; refreshToken?: number; additionalProperties?: never; }; TPGWFirstKeyFrameToServerShareTransmitDelay?: number; MCSSessionActivateToLocusFloorGrantDelay?: number; ServerShareInitiateToLocusFloorGrantDelay?: number; LocusFloorGrantToCBSessionStartDelay?: number; ServerShareReceiveToTPGWFirstKeyFrameDelay?: number; LocusFloorGrantToTPGWFloorGrantDelay?: number; LocusFloorGrantToReceiverNotificationDelay?: number; CBShareSessionRespDelay?: number; LocusShareFloorGrantRespDelay?: number; LocusFloorReqToRespDelay?: number; ServerShareFloorGrantRespDelay?: number; joinRespRxStart?: number; joinRespTxStart?: number; maxRemoteLossRate?: number; media2SignalDelay?: number; warholDownloadTime?: number; contentDownloadTime?: number; boardCreationTime?: number; totalBoardServiceRespDelay?: number; additionalProperties?: never; }; /** * represents all of the properities that could cause delay during media setup process. */ whiteboardSetupDelay?: { floorReqSentReceived?: number; floorRespSentReceived?: number; mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard"; txReqFloorGranted?: number; txSessionCreateConfirm?: number; txApeEnrollConfirm?: number; txUIDelay?: number; txScreenCaptureDelay?: number; txScreenCaptureDelayReasonCode?: number; txShareStartOverallDelay?: number; floorGranted2tx1stPacketSendDelay?: number; rx1stPacket2RenderDelay?: number; rxGranted2RenderDelay?: number; rxFailFrameNumB4Success?: number; e2eFirstFrameDelay?: number; CBSessionRespToLocusFloorGrantDelay?: number; CBShareReceiveToServerShareTransmitDelay?: number; CBShareReceiveToTPGWFirstKeyFrameDelay?: number; /** * phrased HTTP timing */ floorRequestHttpTiming?: { connect?: number; dnsLookup?: number; sendRequest?: number; compressRequest?: number; receiveResponse?: number; extractJson?: number; verifyCert?: number; refreshToken?: number; additionalProperties?: never; }; TPGWFirstKeyFrameToServerShareTransmitDelay?: number; MCSSessionActivateToLocusFloorGrantDelay?: number; ServerShareInitiateToLocusFloorGrantDelay?: number; LocusFloorGrantToCBSessionStartDelay?: number; ServerShareReceiveToTPGWFirstKeyFrameDelay?: number; LocusFloorGrantToTPGWFloorGrantDelay?: number; LocusFloorGrantToReceiverNotificationDelay?: number; CBShareSessionRespDelay?: number; LocusShareFloorGrantRespDelay?: number; LocusFloorReqToRespDelay?: number; ServerShareFloorGrantRespDelay?: number; joinRespRxStart?: number; joinRespTxStart?: number; maxRemoteLossRate?: number; media2SignalDelay?: number; warholDownloadTime?: number; contentDownloadTime?: number; boardCreationTime?: number; totalBoardServiceRespDelay?: number; additionalProperties?: never; }; isFocus?: boolean; processingDelay?: number; shareResourceType?: | "APPLICATION_OR_WINDOW" | "CAMERA" | "DEFAULT" | "EMBEDDED_APP" | "FILE" | "MOBILE_FILE" | "MOBILE_SCREEN_MIRRORING" | "SCREEN"; shareResourceName?: string; shareType?: | "cb-normal-share" | "ce-airplay-share" | "ce-direct-share" | "ce-gui-loopback-share" | "ce-input-source-share" | "ce-input-source-share-hdmi" | "ce-input-source-share-usbc" | "ce-jpg-share" | "ce-miracast-share" | "mcs-normal-share" | "mcs-normal-audio-share" | "mcs-hfps-share" | "mcs-hfps-audio-share"; isShareBeingTakenOver?: boolean; floorBeneficiaryUpdated?: boolean; meetingJoinedTime?: string; /** * join phase of event */ meetingJoinPhase?: "pre-join" | "join" | "in-meeting"; meetingScheduledTime?: string; seconds2StartTime?: number; e2eeKeyEpoch?: number; e2eeDecompressRatio?: number; keyResponses?: { gotKeyTime?: number; useKeyTime?: number; cacheKeyTime?: number; additionalProperties?: never; }[]; e2eeVersion?: "E2EEV1" | "E2EEV2" | "E2EEV3" | "E2EEV4" | "E2EEV4_PLUS" | "E2EEV4_B" | "E2EEV5"; isZeroTrust?: boolean; /** * Version of SFrame in use. */ sframeVersion?: "SFRAMEV1" | "SFRAMEV2"; isConvergedArchitectureEnabled?: boolean; isCustomBrowser?: boolean; callingServiceType?: "CUCM" | "WEBEXCALLING" | "BROADWORKS" | "LOCUS" | "BROADCLOUDCARRIER"; supplementaryMediaSessionType?: "DirectShare"; isPaired?: boolean; inLobby?: boolean; isVIPMeeting?: boolean; webexAppEntrypoint?: string; firstParticipant?: boolean; isImmersiveShare?: boolean; /** * Request/Response Time for Internal Services / Clients */ registeredTimestamps?: { locusCreateConfluenceRequestTime?: string; locusCreateConfluenceResponseTime?: string; locusCreateVenueRequestTime?: string; locusCreateVenueResponseTime?: string; interstitialWindowLaunchedTime?: string; additionalProperties?: never; }; skipInterstitialWindow?: boolean; callDurationSecs?: number; connectionDurationSecs?: number; lobbyType?: string; callDirection?: "ORIGINATING" | "TERMINATING"; /** * Details associated with a breakout move */ breakout?: { moveType?: "between_breakout" | "to_breakout" | "to_main"; trigger?: "assignment_changed" | "client_initiated" | "session_ended" | "session_started"; startState?: "joined" | "lobby"; endState?: "joined" | "lobby"; additionalProperties?: never; }; /** * Latency values associated with breakout session */ breakoutLatency?: { clientBreakoutMoveReqJoinResp?: number; boBreakoutMoveProcessed?: number; boBreakoutMoveResp?: number; boLocusBreakoutMoveResp?: number; locusBreakoutMoveResp?: number; orpheusConfluenceMoveReqResp?: number; additionalProperties?: never; }; /** * two-way whiteboard related info */ whiteboard?: { action?: "open" | "create"; type?: "whiteboard" | "annotation"; capability?: "one_way" | "two_way"; granted?: "one_way" | "two_way"; additionalProperties?: never; }; /** * ROAP message details */ roap?: { type?: | "ANSWER" | "ERROR" | "OFFER" | "OFFER_REQUEST" | "OFFER_RESPONSE" | "OK" | "OKAY" | "TURN_DISCOVERY_REQUEST" | "TURN_DISCOVERY_RESPONSE"; messageType?: | "ANSWER" | "ERROR" | "OFFER" | "OFFER_REQUEST" | "OFFER_RESPONSE" | "OK" | "OKAY" | "TURN_DISCOVERY_REQUEST" | "TURN_DISCOVERY_RESPONSE"; error?: string; duration?: number; seq?: number; additionalProperties?: never; }; /** * Pstn Carrier Infos */ pstnCarrierInfo?: { cic?: string; carrierName?: string; ucreDnsSrvs?: string[]; additionalProperties?: never; }; pstnAudioCallType?: "PSTN" | "CCA_E" | "CCA_SP" | "EDGE_AUDIO" | "CCA_S" | "VMN_AUDIO"; l2sipCallbackUrl?: string; ivrDialingStatusOriginator?: "L2SIP" | "CLOUD_PROXY" | "CARRIER" | "UNIDENTIFIED"; cic?: string; carrierName?: string; originator?: string; ucreDnsSrvs?: string[]; ivrServiceUcreAttempts?: number; antiFraudPolicyType?: string; antiFraudBlocked?: boolean; sipResponseCode?: | "100_Trying" | "183_Ringing" | "200_Ok" | "404_NotFound" | "407_ProxyAuthRequired" | "486_BusyHere" | "503_ServiceUnavailable" | "606_NotAcceptable"; /** * details of scheduling information */ schedulingInfo?: { /** * this defines calendar type for scheduling */ calendarType?: "exchange_online" | "exchange_onprem" | "google" | "other" | "webex"; /** * this defines meeting categories for scheduling */ meetingCategory?: "AdhocUSM" | "Instant" | "Scheduled" | "ScheduledPMR" | "ScheduledUSM" | "SpaceMeetingV1"; /** * this defines where the meeting was scheduled from */ scheduledFrom?: | "ADDIN_O365" | "ADDIN_ONPREM" | "ADHOC_USM" | "AT_WEBEX_GOOGLE" | "AT_WEBEX_MSFT" | "AT_MEET_GOOGLE" | "AT_MEET_MSFT" | "GOOGLE_ADDON" | "INSTANT_MEETING" | "OTHER" | "PT" | "PUBLIC_API" | "TEAMS_CLIENT" | "TEAMS_CLIENT_CROSS_LAUNCH" | "UNIFIED_PAGE" | "WEBEX_PAGE"; /** * this defines meeting categories for scheduling */ schedulingOperationType?: "prepare" | "create" | "update" | "delete"; additionalProperties?: never; }; /** * details of setting information */ settingInfo?: { /** * this defines where the type of Setting being modified/updated */ settingType: "AUDIO_VIDEO" | "EMAIL_TEMPLATE" | "GENERAL" | "PMR" | "RECORDING" | "SCHEDULING" | "WEBEX_SITE"; additionalProperties?: never; }; sessionJoinCount?: number; /** * indicates transport type used */ transportType?: "UDP" | "TCP" | "xTLS" | "TLS"; joinFlowVersion?: "NewFTE" | "Other"; locale?: string; accessNumber?: string; isVVipMeeting?: boolean; /** * Login-related information. */ loginInfo?: { loginType?: | "user-hub" | "control-hub" | "meeting-site" | "global-sign-in-page" | "web-client" | "native-client"; method?: "idbroker" | "enterprise" | "social"; grantType?: "client-credential" | "authorization-code" | "scope-reduction"; /** * Sign-in Time */ signInDelay?: { signInTime?: number; additionalProperties?: never; }; signInSignUpType?: "sign-in" | "sign-up"; userFound?: boolean; additionalProperties?: never; }; isPrivateMeeting?: boolean; /** * Low Latency Mercury latency measurements */ llmLatency?: { clientLLMDatachannelResponseTime?: number; clientLLMWebSocketConnectTime?: number; additionalProperties?: never; }; /** * Sync Latency measurements. Expected to be sent in client.locus.sync.complete and locus.sync.sent events that could be triggered in a converged webinar session */ syncLatency?: { randomBackoffTime?: number; hashtreePrepTime?: number; hashtreeProcessingTime?: number; hashtreeResponseTime?: number; syncPrepTime?: number; syncResponseTime?: number; syncProcessingTime?: number; syncMessageReceiveTime?: number; totalTime?: number; additionalProperties?: never; }; /** * Low Latency Mercury related information. */ llmInfo?: { dataSet?: "main" | "atd-active" | "atd-unmuted"; additionalProperties?: never; }; trigger?: "dummyTrigger1" | "dummyTrigger2" | "edge-mediaquality"; name: "edge.mediaquality.event"; /** * Base type for the various identifiers used to connect the dots. * In general, these should be populated whenever possible. Subtypes may make a particular key required. * */ identifiers: { aggregatedBreakoutMoveId?: string; attendeeId?: string; participantId?: string; breakoutGroupId?: string; breakoutMoveId?: string; breakoutTrackingId?: string; breakoutSessionId?: string; browserId?: string; ciExchangeTokenUrl?: string; confluenceId?: string; /** * Set of identifiers dedicated to CPaaS clients * In general, these should be populated whenever possible. Subtypes may make a particular key required. * */ cpaasIdentifiers?: { imiTenantId: string; devClientId: string; imiServiceId: string; imiAppId: string; sessionId: string; sessionInstanceId: string; additionalProperties?: never; }; csdmDeviceUrl?: string; destinationBreakoutSessionId?: string; destinationLocusSessionId?: string; destinationLocusUrl?: string; destinationVenueId?: string; deviceId?: string; globalMeetingId?: string; installationId?: string; webexMeetingUUID?: string; ivrCallId?: string; ivrDialogId?: string; ivrId?: string; callId?: string; pairCallId?: string; llmWebsocketUrl?: string; locusCluster?: string; locusId?: string; locusJoinUrl?: string; locusSessionId?: string; locusStartTime?: string; locusUrl?: string; machineId?: string; mediaAgentAlias?: string; mediaAgentGroupId?: string; meetClusterName?: string; meetingInstanceId?: string; meetingLookupUrl?: string; meetingOrgId?: string; metricServiceUrl?: string; mercuryWebsocketUrl?: string; msteamsTenantGuid?: string; msteamsConferenceId?: string; msteamsMeetingId?: string; mtid?: string; oauth2ClientId?: string; orgId?: string; provisionalCorrelationId?: string; roomId?: string; sessionCorrelationId?: string; sharedMediaId?: string; sipCallId?: string; sipSessionId?: { local?: string; remote?: string; additionalProperties?: never; }; sipUri?: string; subConfId?: string; tenantId?: string; trackingId?: string; userId?: string; venueId?: string; venueUrl?: string; whiteboardUrl?: string; wdmDeviceRegistrationUrl?: string; webexConferenceId?: number; webexClusterName?: string; webexConferenceIdStr?: string; webexDataCenter?: string; webexGuestId?: number; webexMeetingId?: number; webexNodeId?: number; webexSiteId?: number; webexSiteName?: string; webexSiteUuid?: string; webexUserId?: number; webexWebDomain?: string; recordingId?: string; clientCorrelationId?: string; idForEndpointAB?: string; correlationId: string; customerOrgId: string; additionalProperties?: never; }; /** * metadata associated with emitter of the event. This data is included only in the first emitted for a given call and does not need to be repeated with each event. */ sourceMetadata?: { mediaEngineSoftwareType: string; applicationSoftwareType: string; applicationSoftwareVersion: string; mediaEngineSoftwareVersion?: string; hardwareType?: string; clientRegion?: string; serverRegion?: string; serverOrg?: string; serverGroup?: string; serverAlias?: string; serverDeployType?: "private" | "public"; startTime: string; endTime?: string; csi?: number[]; isCascade?: boolean; isHybridMedia?: boolean; videoMeshClusterName?: string; videoMeshServerName?: string; isTIP?: boolean; isMARI?: boolean; has264Checksum?: boolean; intervalPeriod?: number; cascadePeerRegion?: string; cascadePeerOrg?: string; cascadePeerGroup?: string; cascadePeerAlias?: string; cascadePeerServerType?: | "CB" | "CMS" | "CRC" | "HESIOD" | "LINUS" | "MCC" | "MCS" | "MES" | "MJS" | "MRS" | "MYGDONUS" | "MZM" | "TERMINUS" | "TPGW" | "TA" | "HOMER" | "SUPERHOMER" | "U2C" | "WCA" | "MSE" | "UNKNOWN"; cascadePeerDeployType?: "private" | "public"; additionalProperties?: never; }; edgeIntervals: { intervalNumber: number; /** * The metadata associated with the emitter of the event. This data is separate from the source metadata and must be emitted with every event. */ intervalMetadata?: { peerReflexiveIP?: string; maskedPeerReflexiveIP?: string; remoteMediaIP?: string; maskedRemoteMediaIP?: string; /** * indicate user local ICE candidates IP type */ localIPType?: "IPTypeUnknown" | "IPv4Only" | "IPv6Only" | "DualIPType"; staticPerformanceLevel?: number; staticPerformanceScore?: number; processAverageCPU?: number; processAverageCPUWithTurbo?: number; processMaximumCPU?: number; systemAverageCPU?: number; systemAverageCPUWithTurbo?: number; systemAverageCPUTimeBased?: number; systemMaximumCPU?: number; systemMaximumCPUTimeBased?: number; systemAverageGPU?: number; systemMaximumGPU?: number; systemAverageVIC?: number; systemMaximumVIC?: number; systemAverageCPUPerfLoad?: number; systemMaximumCPUPerfLoad?: number; processAverageIdleWakeUps?: number; processMaximumIdleWakeUps?: number; processAveragePowerUsage?: number; processMaximumPowerUsage?: number; /** * this object defines the memory related fields that are tracked in media quality events and reports */ memoryUsage?: { processAverageMemoryUsage: number; processMaximumMemoryUsage: number; systemAverageMemoryUsage: number; systemMaximumMemoryUsage: number; processMaximumMemoryBytes: number; mainProcessMaximumMemoryBytes: number; systemTotalMemoryBytes?: number; osBitWidth: number; cpuBitWidth: number; additionalProperties?: never; }; /** * Indicates battery health. See https://developer.android.com/reference/android/os/BatteryManager for more information. */ batteryHealth?: "unknown" | "good" | "cold" | "overvoltage" | "overheat" | "unspecifiedfailure" | "dead"; /** * Provides visibility in charger type in use */ batteryPlugged?: "unknown" | "ac" | "usb" | "wireless" | "dock"; /** * Provides visibility into charging status */ batteryStatus?: "unknown" | "charging" | "discharging" | "notcharging" | "full"; /** * Battery temperature in celsius */ batteryTemperature?: number; /** * Provides visibility of customer experience in limited thermal headroom environments on Apple devices. See https://developer.apple.com/documentation/foundation/processinfo/thermalstate for more information. */ darwinThermalState?: number; androidThermalHeadroom?: number; /** * Indicates thermal status on Android devices. See https://developer.android.com/ndk/reference/group/thermal for more information. */ androidThermalStatus?: number; peripherals?: { name: "camera" | "microphone" | "speaker"; information?: string; driver?: string; errorCode?: string; subErrorCode?: string; captureFrameSize?: number; captureFps?: number; captureFrameworkType?: number; captureRawType?: number; deviceCapabilitiesTime?: number; connectionType?: {}; bluetoothMode?: {}; openDeviceCostTimeMilliSecond?: number; startCaptureCostTimeMilliSecond?: number; txSampleRate?: number; rxSampleRate?: number; isAAudioLowLatency?: number; isStartNDKFailed?: number; startPlaybackCostTimeMilliSecond?: number; changeCount?: number; /** * indicates capture device's system volume, between -1 and 100, -1 means invalid */ captureSystemVolume?: number; /** * indicates playback device's system volume, between -1 and 100, -1 means invalid */ playbackSystemVolume?: number; started?: boolean; sysAudioSEStatus?: number; isVolumeControlAvailable?: boolean; rawStreamStatus?: number; status?: string; initCaptureFrameworkType?: "unknown" | "dshow" | "mf" | "mfPrefer"; cameraRetried?: boolean; captureCameraType?: | "unknown" | "builtIn" | "aggregate" | "virtual" | "pci" | "usb" | "fireWire" | "bluetooth" | "hdmi" | "displayPort" | "airPlay" | "avb" | "thunderbolt" | "lineLevel" | "external" | "continuityCaptureWired" | "continuityCaptureWireless" | "audioRemote" | "iphoneCamera" | "deskViewCamera" | "virtualCamera" | "builtInMinijack"; captureCameraFailNum?: number; videoCaptureEnumTime?: number; additionalProperties?: never; }[]; /** * information object for the peripheral */ cameraInfo?: { name: "camera" | "microphone" | "speaker"; information?: string; driver?: string; errorCode?: string; subErrorCode?: string; captureFrameSize?: number; captureFps?: number; captureFrameworkType?: number; captureRawType?: number; deviceCapabilitiesTime?: number; connectionType?: {}; bluetoothMode?: {}; openDeviceCostTimeMilliSecond?: number; startCaptureCostTimeMilliSecond?: number; txSampleRate?: number; rxSampleRate?: number; isAAudioLowLatency?: number; isStartNDKFailed?: number; startPlaybackCostTimeMilliSecond?: number; changeCount?: number; /** * indicates capture device's system volume, between -1 and 100, -1 means invalid */ captureSystemVolume?: number; /** * indicates playback device's system volume, between -1 and 100, -1 means invalid */ playbackSystemVolume?: number; started?: boolean; sysAudioSEStatus?: number; isVolumeControlAvailable?: boolean; rawStreamStatus?: number; status?: string; initCaptureFrameworkType?: "unknown" | "dshow" | "mf" | "mfPrefer"; cameraRetried?: boolean; captureCameraType?: | "unknown" | "builtIn" | "aggregate" | "virtual" | "pci" | "usb" | "fireWire" | "bluetooth" | "hdmi" | "displayPort" | "airPlay" | "avb" | "thunderbolt" | "lineLevel" | "external" | "continuityCaptureWired" | "continuityCaptureWireless" | "audioRemote" | "iphoneCamera" | "deskViewCamera" | "virtualCamera" | "builtInMinijack"; captureCameraFailNum?: number; videoCaptureEnumTime?: number; additionalProperties?: never; }; /** * information object for the peripheral */ microphoneInfo?: { name: "camera" | "microphone" | "speaker"; information?: string; driver?: string; errorCode?: string; subErrorCode?: string; captureFrameSize?: number; captureFps?: number; captureFrameworkType?: number; captureRawType?: number; deviceCapabilitiesTime?: number; connectionType?: {}; bluetoothMode?: {}; openDeviceCostTimeMilliSecond?: number; startCaptureCostTimeMilliSecond?: number; txSampleRate?: number; rxSampleRate?: number; isAAudioLowLatency?: number; isStartNDKFailed?: number; startPlaybackCostTimeMilliSecond?: number; changeCount?: number; /** * indicates capture device's system volume, between -1 and 100, -1 means invalid */ captureSystemVolume?: number; /** * indicates playback device's system volume, between -1 and 100, -1 means invalid */ playbackSystemVolume?: number; started?: boolean; sysAudioSEStatus?: number; isVolumeControlAvailable?: boolean; rawStreamStatus?: number; status?: string; initCaptureFrameworkType?: "unknown" | "dshow" | "mf" | "mfPrefer"; cameraRetried?: boolean; captureCameraType?: | "unknown" | "builtIn" | "aggregate" | "virtual" | "pci" | "usb" | "fireWire" | "bluetooth" | "hdmi" | "displayPort" | "airPlay" | "avb" | "thunderbolt" | "lineLevel" | "external" | "continuityCaptureWired" | "continuityCaptureWireless" | "audioRemote" | "iphoneCamera" | "deskViewCamera" | "virtualCamera" | "builtInMinijack"; captureCameraFailNum?: number; videoCaptureEnumTime?: number; additionalProperties?: never; }; /** * information object for the peripheral */ speakerInfo?: { name: "camera" | "microphone" | "speaker"; information?: string; driver?: string; errorCode?: string; subErrorCode?: string; captureFrameSize?: number; captureFps?: number; captureFrameworkType?: number; captureRawType?: number; deviceCapabilitiesTime?: number; connectionType?: {}; bluetoothMode?: {}; openDeviceCostTimeMilliSecond?: number; startCaptureCostTimeMilliSecond?: number; txSampleRate?: number; rxSampleRate?: number; isAAudioLowLatency?: number; isStartNDKFailed?: number; startPlaybackCostTimeMilliSecond?: number; changeCount?: number; /** * indicates capture device's system volume, between -1 and 100, -1 means invalid */ captureSystemVolume?: number; /** * indicates playback device's system volume, between -1 and 100, -1 means invalid */ playbackSystemVolume?: number; started?: boolean; sysAudioSEStatus?: number; isVolumeControlAvailable?: boolean; rawStreamStatus?: number; status?: string; initCaptureFrameworkType?: "unknown" | "dshow" | "mf" | "mfPrefer"; cameraRetried?: boolean; captureCameraType?: | "unknown" | "builtIn" | "aggregate" | "virtual" | "pci" | "usb" | "fireWire" | "bluetooth" | "hdmi" | "displayPort" | "airPlay" | "avb" | "thunderbolt" | "lineLevel" | "external" | "continuityCaptureWired" | "continuityCaptureWireless" | "audioRemote" | "iphoneCamera" | "deskViewCamera" | "virtualCamera" | "builtInMinijack"; captureCameraFailNum?: number; videoCaptureEnumTime?: number; additionalProperties?: never; }; /** * This object defines the fields related to the CPU being used by the emitter of the event */ cpuInfo?: { description: string; numberOfCores: number; architecture: | "intel32" | "intel64" | "amd32" | "amd64" | "arm32" | "arm64" | "armv9" | "armv8" | "armv7" | "armv6" | "x86_64" | "x86_32" | "unknown"; staticPerformance?: string; clockSpeedGigaHertz?: number; additionalProperties?: never; }; /** * Thread level cpu performance insights */ cpuDataDetail?: { processesData?: {}[]; coresCpuData?: {}[]; coreVariance?: number; additionalProperties?: never; }; /** * This object defines the fields related to the GPU being used by the emitter of the event */ defaultGpuInfo?: { description: string; memoryMegaBytes: number; gpuVersion?: string; additionalProperties?: never; }; otherGpuInfo?: { description: string; memoryMegaBytes: number; gpuVersion?: string; additionalProperties?: never; }[]; /** * This object defines the fields related to the NPU being used by the emitter of the event */ npuInfo?: { description?: string; npuVersion?: string; memoryMegaBytes?: number; additionalProperties?: never; }; dpcRecord?: string[]; mediaLabels?: string[]; screenResolution?: number; screenWidth?: number; screenHeight?: number; appWindowSize?: number; appWindowHeight?: number; appWindowWidth?: number; meetingUserCount?: number; videoUserCount?: number; numScreens?: number; configuredBitrate?: number; configuredPixelRateMainVideo?: number; configuredPixelRateContentVideo?: number; /** * provisioning room type for CE devices */ roomType?: "Briefing" | "Classroom" | "Standard" | "PresenterAndAudience"; peopleCount?: number; /** * currently selected camera mode */ cameraMode?: | "Unknown" | "BestOverview" | "Closeup" | "Frames" | "GroupAndSpeaker" | "Desktop" | "Dynamic" | "Combined" | "Manual"; /** * type of crop/composition created by automatic framing on a video device */ cameraAppliedView?: { /** * name of the view */ viewName: "Overview" | "Closeup" | "Frames" | "OverlaidCloseup" | "Manual" | "Other"; /** * number of composed video panes (usually 1, but can be more in Frames view) */ numberOfVideoPanes: number; additionalProperties?: never; }; /** * This object tracks the evaluated bandwidth associated with Bandwidth Evaluator(MARI) */ evaluatedBandwidth?: { /** * The min bandwidth evaluated by the BW Evaluator (in bits per second) */ minBandwidth?: number; /** * The maximum bandwidth evaluated the BW Evaluator (in bits per second) */ maxBandwidth?: number; /** * The sum of bandwidth down adjustments (in bits per second) */ sumAdjustmentDown?: number; /** * The sum of bandwidth up adjustments (in bits per second) */ sumAdjustmentUp?: number; /** * Number of times bandwidth adjustment caused a change evaluated bandwidth */ countAdjustments?: number; /** * Number of times the Bandwidth Adjustment changed direction Up->Down/Down->Up */ countDirectionChange?: number; /** * Number of times the evaluated bandwidth was affected due to config change */ countConfigChange?: number; additionalProperties?: never; }; uiRenderMinimumFPS?: number; uiRenderMaximumFPS?: number; uiRenderAverageFPS?: number; /** * This object tracks TWCC report exchange(MARI) */ twccReports?: { /** * Number of RTP packets marked with TWSN */ packetsSentWithTwsn?: number; /** * Number of packets sent without TWSN */ packetsSentWithoutTwsn?: number; /** * Number of reports received */ reportsReceived?: number; /** * Number of reports lost */ reportsLost?: number; /** * Longest consecutive run of reports lost */ reportLossBurstLength?: number; /** * Number of packets not acknowledged due to loss of reports */ unacknowledgedPackets?: number; /** * Average bandwidth in kbps */ avgBandwidth?: number; /** * min bandwidth in interval (kbps) */ minBandwidth?: number; /** * max bandwidth in interval (kbps) */ maxBandwidth?: number; additionalProperties?: never; }; isCarbonAwareModeOn?: boolean; isCarbonAwareModeConfigured?: boolean; /** * Network infrastructure identification - uniquely identifies network elements (switches, WiFi APs, cell towers). */ networkInfrastructureInfo?: { /** * Friendly name of the network element (switch name, access point name, or cellular provider name). It can be empty example for wifi, the AP names can be hidden. */ elementName?: string; /** * ID is BSSID for WiFi- derived from AP's mac address, designed to be globally unique. ID is PLMN ID for Cellular- It is globally unique. ID is Chassis ID for Switch- derived from switch's mac address, designed to be globally unique. */ id: string; /** * LLDP Port ID or interface identifier on the switch or Service Set Identifier (WiFi network name) */ interfaceName?: string; additionalProperties?: never; }; additionalProperties?: never; }; mediaLines?: { mediaLineNumber?: number; mediaType?: string; mediaContent?: string; mediaProtocol?: string; leftSide?: { reachability?: "public" | "private"; /** * contains the transmit related fields common between all session types for each interval */ transmit?: { /** * contains the fields common to both transmit and receive sessions for each interval */ common: { isMain: boolean; mariFecEnabled: boolean; mariRtxEnabled?: boolean; mariQosEnabled: boolean; mariLiteEnabled?: boolean; multistreamEnabled: boolean; isMediaBypassEdge?: boolean; isNewAudioPipeline?: boolean; direction: "sendrecv" | "sendonly" | "recvonly" | "inactive"; localPort?: number; peerReflexivePort?: number; remotePort?: number; maxConsecutiveStunAckInterval?: number; yellowMQITimes?: number; redMQITimes?: number; /** * "An indication if the relay point (Homer, MSE etc) was expecting to have media flowing and did so * Example for troubleshooting would be where the enterprise firewall is blocking * inbound rtp. In that case status=FLOW, client rx packets = 0" * */ hbhFlowStatus?: "FLOW" | "FLOW_PRE_ICE" | "FLOW_MEDIA_TIMEOUT" | "NO_FLOW_ERROR" | "NO_FLOW_EXPECTED"; additionalProperties?: never; }; fecPackets: number; fecBitrate: number; dscpValue?: number; rtxPackets?: number; rtxBitrate?: number; rtpPackets: number; rtpBitrate: number; rtcpPackets: number; rtcpBitrate: number; /** * RTCP Information for a given Interval */ txRtcpInfo?: { rtcpSrPackets: number; rtcpRrPackets: number; rtcpReportBlocks: number; rtcpSdesPackets: number; rtcpByePackets: number; rtcpAppPackets: number; rtcpRtpFbPacket: number; rtcpRtpFbNackPackets?: number; rtcpPsFbPackets: number; rtcpPsFbMariPackets: number; rtcpPsFbMariAdaptationPackets?: number; rtcpPsFbMariSyncPackets?: number; rtcpPsFbMultistreamPackets: number; rtcpPsFbMultistreamScrPackets?: number; rtcpPsFbMultistreamScrDuplicatePackets?: number; rtcpPsFbMultistreamScaAckingScrPackets?: number; rtcpPsFbMultistreamScaAutonomousPackets?: number; rtcpPsFbMultistreamScaAutonomousRetransmittedPackets?: number; rtcpPsFbMultistreamScaAckPackets?: number; rtcpPsFbFirPackets?: number; rtcpPsFbPliPackets?: number; rtcpXrPackets: number; additionalProperties?: never; }; stunPackets: number; stunBitrate: number; dtlsPackets: number; dtlsBitrate: number; transportType: "UDP" | "TCP" | "xTLS" | "TLS"; maxBitrate: number; availableBitrate: number; queueDelay: number; meanRoundTripTime?: number; maxRoundTripTime?: number; roundTripTime?: number; remoteReceiveRate?: number; maxRemoteLossRate?: number; remoteLossRate?: number; meanRemoteLossRate?: number; maxRemoteJitter?: number; remoteJitter?: number; meanRemoteJitter?: number; traversalMinDelayMs?: number; traversalMaxDelayMs?: number; traversalMeanDelayMs?: number; rtpInputFifoDelayMs?: number; rtpInputFifoMaxDelayMs?: number; rtpInputFifoMinDelayMs?: number; rtpInputFifoMeanDelayMs?: number; totalPackets?: number; totalBitrate?: number; /** * Tracks RTP/RTCP packet sizes */ mediaPacketSize?: { /** * Maximum RTP packet size (including media payload and RTP headers) */ maxRtpPacketSize?: number; /** * Average RTP packet size (including media payload and RTP headers) */ meanRtpPacketSize?: number; /** * Minimum RTP packet size (including media payload and RTP headers) */ minRtpPacketSize?: number; /** * Maximum RTCP packet size */ maxRtcpPacketSize?: number; additionalProperties?: never; }; cellularType?: | "cellular_2G" | "cellular_2.5G" | "cellular_3G" | "cellular_3.5G" | "cellular_4G" | "cellular_5G"; isVPN?: boolean; isVPNSplitTunneling?: boolean; additionalProperties?: never; }; /** * contains the receive related fields between all sessions types for each interval. */ receive?: { /** * contains the fields common to both transmit and receive sessions for each interval */ common: { isMain: boolean; mariFecEnabled: boolean; mariRtxEnabled?: boolean; mariQosEnabled: boolean; mariLiteEnabled?: boolean; multistreamEnabled: boolean; isMediaBypassEdge?: boolean; isNewAudioPipeline?: boolean; direction: "sendrecv" | "sendonly" | "recvonly" | "inactive"; localPort?: number; peerReflexivePort?: number; remotePort?: number; maxConsecutiveStunAckInterval?: number; yellowMQITimes?: number; redMQITimes?: number; /** * "An indication if the relay point (Homer, MSE etc) was expecting to have media flowing and did so * Example for troubleshooting would be where the enterprise firewall is blocking * inbound rtp. In that case status=FLOW, client rx packets = 0" * */ hbhFlowStatus?: "FLOW" | "FLOW_PRE_ICE" | "FLOW_MEDIA_TIMEOUT" | "NO_FLOW_ERROR" | "NO_FLOW_EXPECTED"; additionalProperties?: never; }; fecPackets: number; fecBitrate: number; dscpValue?: number; rtxPackets?: number; rtxBitrate?: number; meanRtxDelay?: number; maxRtxDelay?: number; rtpPackets: number; rtpBitrate: number; rtpHopByHopLost: number; mediaHopByHopLost: number; rtpRecovered: number; rtxRecovered?: number; rtcpPackets: number; rtcpBitrate: number; /** * RTCP Information for a given Interval */ rxRtcpInfo?: { rtcpSrPackets: number; rtcpRrPackets: number; rtcpReportBlocks: number; rtcpSdesPackets: number; rtcpByePackets: number; rtcpAppPackets: number; rtcpRtpFbPacket: number; rtcpRtpFbNackPackets?: number; rtcpPsFbPackets: number; rtcpPsFbMariPackets: number; rtcpPsFbMariAdaptationPackets?: number; rtcpPsFbMariSyncPackets?: number; rtcpPsFbMultistreamPackets: number; rtcpPsFbMultistreamScrPackets?: number; rtcpPsFbMultistreamScrDuplicatePackets?: number; rtcpPsFbMultistreamScaAckingScrPackets?: number; rtcpPsFbMultistreamScaAutonomousPackets?: number; rtcpPsFbMultistreamScaAutonomousRetransmittedPackets?: number; rtcpPsFbMultistreamScaAckPackets?: number; rtcpPsFbFirPackets?: number; rtcpPsFbPliPackets?: number; rtcpXrPackets: number; additionalProperties?: never; }; stunPackets: number; stunBitrate: number; dtlsPackets: number; dtlsBitrate: number; transportType: "UDP" | "TCP" | "xTLS" | "TLS"; maxBitrate: number; srtpUnprotectErrors: number; /** * SRTP/SRTCP unprotect error details */ srtpUnprotectErrorDetails?: { authFailures: number; cipherFailures: number; replayFailures: number; unknownFailures: number; additionalProperties?: never; }; srtcpUnprotectErrors?: number; /** * SRTP/SRTCP unprotect error details */ srtcpUnprotectErrorDetails?: { authFailures: number; cipherFailures: number; replayFailures: number; unknownFailures: number; additionalProperties?: never; }; totalPackets?: number; totalBitrate?: number; /** * Tracks RTP/RTCP packet sizes */ mediaPacketSize?: { /** * Maximum RTP packet size (including media payload and RTP headers) */ maxRtpPacketSize?: number; /** * Average RTP packet size (including media payload and RTP headers) */ meanRtpPacketSize?: number; /** * Minimum RTP packet size (including media payload and RTP headers) */ minRtpPacketSize?: number; /** * Maximum RTCP packet size */ maxRtcpPacketSize?: number; additionalProperties?: never; }; cellularType?: | "cellular_2G" | "cellular_2.5G" | "cellular_3G" | "cellular_3.5G" | "cellular_4G" | "cellular_5G"; isVPN?: boolean; isVPNSplitTunneling?: boolean; maxHbhJitter?: number; meanHbhJitter?: number; additionalProperties?: never; }; /** * The metadata associated with an EdgeSide */ edgeSideMetadata?: { localIP?: string; remoteIP?: string; rtcpLocalPort?: string; rtcpRemotePort?: string; rtpLocalPort?: string; rtpRemotePort?: string; /** * indicates transport type used */ transportType: "UDP" | "TCP" | "xTLS" | "TLS"; transmitCodec?: string; additionalProperties?: never; }; additionalProperties?: never; }; rightSide?: { reachability?: "public" | "private"; /** * contains the transmit related fields common between all session types for each interval */ transmit?: { /** * contains the fields common to both transmit and receive sessions for each interval */ common: { isMain: boolean; mariFecEnabled: boolean; mariRtxEnabled?: boolean; mariQosEnabled: boolean; mariLiteEnabled?: boolean; multistreamEnabled: boolean; isMediaBypassEdge?: boolean; isNewAudioPipeline?: boolean; direction: "sendrecv" | "sendonly" | "recvonly" | "inactive"; localPort?: number; peerReflexivePort?: number; remotePort?: number; maxConsecutiveStunAckInterval?: number; yellowMQITimes?: number; redMQITimes?: number; /** * "An indication if the relay point (Homer, MSE etc) was expecting to have media flowing and did so * Example for troubleshooting would be where the enterprise firewall is blocking * inbound rtp. In that case status=FLOW, client rx packets = 0" * */ hbhFlowStatus?: "FLOW" | "FLOW_PRE_ICE" | "FLOW_MEDIA_TIMEOUT" | "NO_FLOW_ERROR" | "NO_FLOW_EXPECTED"; additionalProperties?: never; }; fecPackets: number; fecBitrate: number; dscpValue?: number; rtxPackets?: number; rtxBitrate?: number; rtpPackets: number; rtpBitrate: number; rtcpPackets: number; rtcpBitrate: number; /** * RTCP Information for a given Interval */ txRtcpInfo?: { rtcpSrPackets: number; rtcpRrPackets: number; rtcpReportBlocks: number; rtcpSdesPackets: number; rtcpByePackets: number; rtcpAppPackets: number; rtcpRtpFbPacket: number; rtcpRtpFbNackPackets?: number; rtcpPsFbPackets: number; rtcpPsFbMariPackets: number; rtcpPsFbMariAdaptationPackets?: number; rtcpPsFbMariSyncPackets?: number; rtcpPsFbMultistreamPackets: number; rtcpPsFbMultistreamScrPackets?: number; rtcpPsFbMultistreamScrDuplicatePackets?: number; rtcpPsFbMultistreamScaAckingScrPackets?: number; rtcpPsFbMultistreamScaAutonomousPackets?: number; rtcpPsFbMultistreamScaAutonomousRetransmittedPackets?: number; rtcpPsFbMultistreamScaAckPackets?: number; rtcpPsFbFirPackets?: number; rtcpPsFbPliPackets?: number; rtcpXrPackets: number; additionalProperties?: never; }; stunPackets: number; stunBitrate: number; dtlsPackets: number; dtlsBitrate: number; transportType: "UDP" | "TCP" | "xTLS" | "TLS"; maxBitrate: number; availableBitrate: number; queueDelay: number; meanRoundTripTime?: number; maxRoundTripTime?: number; roundTripTime?: number; remoteReceiveRate?: number; maxRemoteLossRate?: number; remoteLossRate?: number; meanRemoteLossRate?: number; maxRemoteJitter?: number; remoteJitter?: number; meanRemoteJitter?: number; traversalMinDelayMs?: number; traversalMaxDelayMs?: number; traversalMeanDelayMs?: number; rtpInputFifoDelayMs?: number; rtpInputFifoMaxDelayMs?: number; rtpInputFifoMinDelayMs?: number; rtpInputFifoMeanDelayMs?: number; totalPackets?: number; totalBitrate?: number; /** * Tracks RTP/RTCP packet sizes */ mediaPacketSize?: { /** * Maximum RTP packet size (including media payload and RTP headers) */ maxRtpPacketSize?: number; /** * Average RTP packet size (including media payload and RTP headers) */ meanRtpPacketSize?: number; /** * Minimum RTP packet size (including media payload and RTP headers) */ minRtpPacketSize?: number; /** * Maximum RTCP packet size */ maxRtcpPacketSize?: number; additionalProperties?: never; }; cellularType?: | "cellular_2G" | "cellular_2.5G" | "cellular_3G" | "cellular_3.5G" | "cellular_4G" | "cellular_5G"; isVPN?: boolean; isVPNSplitTunneling?: boolean; additionalProperties?: never; }; /** * contains the receive related fields between all sessions types for each interval. */ receive?: { /** * contains the fields common to both transmit and receive sessions for each interval */ common: { isMain: boolean; mariFecEnabled: boolean; mariRtxEnabled?: boolean; mariQosEnabled: boolean; mariLiteEnabled?: boolean; multistreamEnabled: boolean; isMediaBypassEdge?: boolean; isNewAudioPipeline?: boolean; direction: "sendrecv" | "sendonly" | "recvonly" | "inactive"; localPort?: number; peerReflexivePort?: number; remotePort?: number; maxConsecutiveStunAckInterval?: number; yellowMQITimes?: number; redMQITimes?: number; /** * "An indication if the relay point (Homer, MSE etc) was expecting to have media flowing and did so * Example for troubleshooting would be where the enterprise firewall is blocking * inbound rtp. In that case status=FLOW, client rx packets = 0" * */ hbhFlowStatus?: "FLOW" | "FLOW_PRE_ICE" | "FLOW_MEDIA_TIMEOUT" | "NO_FLOW_ERROR" | "NO_FLOW_EXPECTED"; additionalProperties?: never; }; fecPackets: number; fecBitrate: number; dscpValue?: number; rtxPackets?: number; rtxBitrate?: number; meanRtxDelay?: number; maxRtxDelay?: number; rtpPackets: number; rtpBitrate: number; rtpHopByHopLost: number; mediaHopByHopLost: number; rtpRecovered: number; rtxRecovered?: number; rtcpPackets: number; rtcpBitrate: number; /** * RTCP Information for a given Interval */ rxRtcpInfo?: { rtcpSrPackets: number; rtcpRrPackets: number; rtcpReportBlocks: number; rtcpSdesPackets: number; rtcpByePackets: number; rtcpAppPackets: number; rtcpRtpFbPacket: number; rtcpRtpFbNackPackets?: number; rtcpPsFbPackets: number; rtcpPsFbMariPackets: number; rtcpPsFbMariAdaptationPackets?: number; rtcpPsFbMariSyncPackets?: number; rtcpPsFbMultistreamPackets: number; rtcpPsFbMultistreamScrPackets?: number; rtcpPsFbMultistreamScrDuplicatePackets?: number; rtcpPsFbMultistreamScaAckingScrPackets?: number; rtcpPsFbMultistreamScaAutonomousPackets?: number; rtcpPsFbMultistreamScaAutonomousRetransmittedPackets?: number; rtcpPsFbMultistreamScaAckPackets?: number; rtcpPsFbFirPackets?: number; rtcpPsFbPliPackets?: number; rtcpXrPackets: number; additionalProperties?: never; }; stunPackets: number; stunBitrate: number; dtlsPackets: number; dtlsBitrate: number; transportType: "UDP" | "TCP" | "xTLS" | "TLS"; maxBitrate: number; srtpUnprotectErrors: number; /** * SRTP/SRTCP unprotect error details */ srtpUnprotectErrorDetails?: { authFailures: number; cipherFailures: number; replayFailures: number; unknownFailures: number; additionalProperties?: never; }; srtcpUnprotectErrors?: number; /** * SRTP/SRTCP unprotect error details */ srtcpUnprotectErrorDetails?: { authFailures: number; cipherFailures: number; replayFailures: number; unknownFailures: number; additionalProperties?: never; }; totalPackets?: number; totalBitrate?: number; /** * Tracks RTP/RTCP packet sizes */ mediaPacketSize?: { /** * Maximum RTP packet size (including media payload and RTP headers) */ maxRtpPacketSize?: number; /** * Average RTP packet size (including media payload and RTP headers) */ meanRtpPacketSize?: number; /** * Minimum RTP packet size (including media payload and RTP headers) */ minRtpPacketSize?: number; /** * Maximum RTCP packet size */ maxRtcpPacketSize?: number; additionalProperties?: never; }; cellularType?: | "cellular_2G" | "cellular_2.5G" | "cellular_3G" | "cellular_3.5G" | "cellular_4G" | "cellular_5G"; isVPN?: boolean; isVPNSplitTunneling?: boolean; maxHbhJitter?: number; meanHbhJitter?: number; additionalProperties?: never; }; /** * The metadata associated with an EdgeSide */ edgeSideMetadata?: { localIP?: string; remoteIP?: string; rtcpLocalPort?: string; rtcpRemotePort?: string; rtpLocalPort?: string; rtpRemotePort?: string; /** * indicates transport type used */ transportType: "UDP" | "TCP" | "xTLS" | "TLS"; transmitCodec?: string; additionalProperties?: never; }; additionalProperties?: never; }; additionalProperties?: never; }[]; additionalProperties?: never; }[]; additionalProperties?: never; } | { canProceed?: boolean; state?: string; mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard" | "gamestate"; /** * Details associated with a share floor type */ floorType?: { name: "DEFAULT" | "EMBEDDED_APP" | "OTHER"; priority?: {}; additionalProperties?: never; }; csi?: number; /** * media capability for both transmit and receive */ mediaCapabilities?: { /** * explicit indication of media capabilities. true=supported */ tx: { audio: boolean; video: boolean; share: boolean; share_audio: boolean; whiteboard: boolean; gamestate?: boolean; additionalProperties?: never; }; /** * explicit indication of media capabilities. true=supported */ rx: { audio: boolean; video: boolean; share: boolean; share_audio: boolean; whiteboard: boolean; gamestate?: boolean; additionalProperties?: never; }; additionalProperties?: never; }; mediaLines?: { clusterName?: string; connectionType?: "none" | "direct" | "proxy"; direction: "sendrecv" | "sendonly" | "recvonly" | "inactive"; errorCode?: number; extension?: {}; failureDescription?: string; failureReason?: "network" | "transport" | "rejected" | "timeout" | "notstarted" | "succeeded"; iceMangled?: boolean; localIP?: string; localNetworkPrefix?: string; localPort?: number; mediaLineData?: {}; mediaType: "audio" | "video" | "share" | "share_audio" | "whiteboard" | "gamestate" | "all"; protocol: "udp" | "tcp" | "xtls" | "unknown"; recvRespTime?: string; remoteIP?: string; remotePort?: number; sentReqTime?: string; status?: "succeeded" | "in-progress" | "failed"; tlsDomain?: string; transactionId?: string; ufrag?: string; additionalProperties?: never; }[]; /** * allows client to specify media preferences */ clientMediaPreferences?: { preferTranscoding: boolean; additionalProperties?: never; }; pstnAudioType?: "dial-in" | "dial-out"; homeDataCenter?: string; success?: boolean; isTranscoded?: boolean; isGatewayed?: boolean; isComposed?: boolean; /** * determine how the events are processed as well as how the reports are aggregated and sliced */ registrationMode?: "SIP" | "Cloud" | "CloudAware"; /** * protocols used to help determine how the events are processed as well as how the reports are aggregated and sliced */ protocol?: "SIP" | "H323" | "H323_IP" | "Locus" | "WebRTC"; /** * The underlying service provider of the call. */ meetingPlatform?: "MsTeams" | "GoogleMeet" | "Zoom" | "Webex"; labels?: string[]; labelsStr?: string; webexServiceType?: "MC" | "EC" | "SC" | "TC" | "AA" | "RA" | "NBR" | "WRF" | "HOL"; /** * this defines the sub service type */ webexSubServiceType?: | "PMR" | "Event" | "Training" | "ScheduleMeeting" | "ScheduledMeeting" | "Webcast" | "Webinar" | "LargeScaleWebinar" | "others"; ivrDialogType?: | "MEDIA_ON_HOLD" | "ANNOUNCEMENT" | "TONE" | "COLLECT_PIN" | "PROMPT" | "MEDIA_SERVICE_AGENT" | "COLLECT"; ivrDialogResult?: | "SUCCESS" | "FAILURE" | "HOST_PIN_MATCH" | "GUEST_PIN_MATCH" | "PANELIST_PIN_MATCH" | "NO_MATCH" | "INVALID_PIN"; callType?: | "VIDEO_DIALIN" | "VIDEO_DIALOUT" | "CASCADE" | "HYBRID_CASCADE" | "PSTN_SIP" | "PSTN_DIALIN" | "PSTN_DIALOUT" | "PSTN_ONLY_DIALIN" | "PSTN_ONLY_DIALOUT" | "AUDIO_DIALIN" | "AUDIO_ONLY_DIALIN" | "H323" | "H323_IP" | "SIP_ENTERPRISE" | "SIP_MOBILE" | "SIP_NATIONAL" | "SIP_INTERNATIONAL" | "SIP_EMERGENCY" | "SIP_OPERATOR" | "SIP_SHORTCODE" | "SIP_TOLLFREE" | "SIP_PREMIUM" | "SIP_URI" | "SIP_INBOUND" | "UNKNOWN" | "ZTM" | "SIP_MEETING" | "SIP_DIALOUT" | "SIP_ONLY_DIALOUT"; eventData?: {}; derivedSipClientType?: | "SIP_CE_SINGLE_SCREEN" | "SIP_CE_MULTI_SCREEN" | "SIP_JABBER" | "SIP_TIP_SINGLE_SCREEN" | "SIP_TIP_THREE_SCREEN" | "SIP_PSTN" | "SIP_OTHER" | "SIP_WEBEX_CASCADE" | "SIP_NONE"; /** * this defines the major client types */ derivedClientType?: | "MEETING_CENTER" | "EVENT_CENTER" | "TRAINING_CENTER" | "TEAMS_CLIENT" | "TEAMS_DEVICE" | "TEAMS_SHARE" | "SIP" | "RECORDING" | "CLOUD_AWARE_SIP" | "TEAMS_WXC_CLIENT" | "WXC_CLIENT" | "WXC_DEVICE" | "WEBEX_JS_SDK" | "VOICEA_CLIENT" | "CISCO_SIP_GW" | "WEBEX_SDK" | "CPAAS_THIRD_PARTY_SDK" | "WXC_THIRD_PARTY" | "WXCC" | "TEAMS_PHONE" | "WEBEX_RELAY"; /** * this defines the sub types of clients */ derivedSubClientType?: | "AUTOMOTIVE_APP" | "BROWSER_EXTENSION" | "DESKTOP_APP" | "DESKTOP_APP_VDI" | "DEVICE_CURRENT" | "DEVICE_LEGACY_2020" | "HOLOGRAM_HEADSET_APP" | "HVDI_APP" | "MIXED" | "MOBILE_APP" | "MOBILE_NETWORK" | "PAGE" | "TEAMS_DEVICE" | "VDI_APP" | "WEB_APP" | "PHONE_NOVUM" | "PHONE_ESPRESSO" | "PHONE_BUMBLEBEE" | "SIP" | "SIP_PSTN"; meetingRole?: "PANELIST" | "ATTENDEE"; serverRole?: | "CONFERENCE" | "TRANSCODER" | "WHITEBOARD_INJECTOR" | "MS_TEAMS_CONFERENCE" | "RECORDING" | "GATEWAY" | "GATEWAY_CLIENT_SIDE" | "UNKNOWN" | "HOLOGRAM_RENDER" | "EDGE"; reconnect?: boolean; retryCount?: number; meetSimple?: boolean; /** * represents media quality status report such as no media or drop out */ mediaStatus?: { mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard"; mediaSuccess?: boolean; shareType?: | "cb-normal-share" | "ce-airplay-share" | "ce-direct-share" | "ce-gui-loopback-share" | "ce-input-source-share" | "ce-input-source-share-hdmi" | "ce-input-source-share-usbc" | "ce-jpg-share" | "ce-miracast-share" | "mcs-normal-share" | "mcs-normal-audio-share" | "mcs-hfps-share" | "mcs-hfps-audio-share"; isTransmitter?: boolean; audioJoinType?: | "phone-call-in" | "phone-call-back" | "voip" | "device-call-back" | "never-join-audio" | "tried-but-never-join"; /** * indicates transport type used */ transportType?: "UDP" | "TCP" | "xTLS" | "TLS"; additionalData?: {}; /** * information object for the peripheral */ mediaDeviceInfo?: { name: "camera" | "microphone" | "speaker"; information?: string; driver?: string; errorCode?: string; subErrorCode?: string; captureFrameSize?: number; captureFps?: number; captureFrameworkType?: number; captureRawType?: number; deviceCapabilitiesTime?: number; connectionType?: {}; bluetoothMode?: {}; openDeviceCostTimeMilliSecond?: number; startCaptureCostTimeMilliSecond?: number; txSampleRate?: number; rxSampleRate?: number; isAAudioLowLatency?: number; isStartNDKFailed?: number; startPlaybackCostTimeMilliSecond?: number; changeCount?: number; /** * indicates capture device's system volume, between -1 and 100, -1 means invalid */ captureSystemVolume?: number; /** * indicates playback device's system volume, between -1 and 100, -1 means invalid */ playbackSystemVolume?: number; started?: boolean; sysAudioSEStatus?: number; isVolumeControlAvailable?: boolean; rawStreamStatus?: number; status?: string; initCaptureFrameworkType?: "unknown" | "dshow" | "mf" | "mfPrefer"; cameraRetried?: boolean; captureCameraType?: | "unknown" | "builtIn" | "aggregate" | "virtual" | "pci" | "usb" | "fireWire" | "bluetooth" | "hdmi" | "displayPort" | "airPlay" | "avb" | "thunderbolt" | "lineLevel" | "external" | "continuityCaptureWired" | "continuityCaptureWireless" | "audioRemote" | "iphoneCamera" | "deskViewCamera" | "virtualCamera" | "builtInMinijack"; captureCameraFailNum?: number; videoCaptureEnumTime?: number; additionalProperties?: never; }; additionalProperties?: never; }; shareInstanceId?: string; ipVersion?: "IPv4" | "IPv6" | "Dual"; isTransmitter?: boolean; shareDuration?: number; stopReason?: string; shareStartReason?: string; hologramStreamId?: string; /** * represents all of the properities that could cause delay during media setup process. */ audioSetupDelay?: { floorReqSentReceived?: number; floorRespSentReceived?: number; mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard"; txReqFloorGranted?: number; txSessionCreateConfirm?: number; txApeEnrollConfirm?: number; txUIDelay?: number; txScreenCaptureDelay?: number; txScreenCaptureDelayReasonCode?: number; txShareStartOverallDelay?: number; floorGranted2tx1stPacketSendDelay?: number; rx1stPacket2RenderDelay?: number; rxGranted2RenderDelay?: number; rxFailFrameNumB4Success?: number; e2eFirstFrameDelay?: number; CBSessionRespToLocusFloorGrantDelay?: number; CBShareReceiveToServerShareTransmitDelay?: number; CBShareReceiveToTPGWFirstKeyFrameDelay?: number; /** * phrased HTTP timing */ floorRequestHttpTiming?: { connect?: number; dnsLookup?: number; sendRequest?: number; compressRequest?: number; receiveResponse?: number; extractJson?: number; verifyCert?: number; refreshToken?: number; additionalProperties?: never; }; TPGWFirstKeyFrameToServerShareTransmitDelay?: number; MCSSessionActivateToLocusFloorGrantDelay?: number; ServerShareInitiateToLocusFloorGrantDelay?: number; LocusFloorGrantToCBSessionStartDelay?: number; ServerShareReceiveToTPGWFirstKeyFrameDelay?: number; LocusFloorGrantToTPGWFloorGrantDelay?: number; LocusFloorGrantToReceiverNotificationDelay?: number; CBShareSessionRespDelay?: number; LocusShareFloorGrantRespDelay?: number; LocusFloorReqToRespDelay?: number; ServerShareFloorGrantRespDelay?: number; joinRespRxStart?: number; joinRespTxStart?: number; maxRemoteLossRate?: number; media2SignalDelay?: number; warholDownloadTime?: number; contentDownloadTime?: number; boardCreationTime?: number; totalBoardServiceRespDelay?: number; additionalProperties?: never; }; /** * represents all of the properities that could cause delay during media setup process. */ videoSetupDelay?: { floorReqSentReceived?: number; floorRespSentReceived?: number; mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard"; txReqFloorGranted?: number; txSessionCreateConfirm?: number; txApeEnrollConfirm?: number; txUIDelay?: number; txScreenCaptureDelay?: number; txScreenCaptureDelayReasonCode?: number; txShareStartOverallDelay?: number; floorGranted2tx1stPacketSendDelay?: number; rx1stPacket2RenderDelay?: number; rxGranted2RenderDelay?: number; rxFailFrameNumB4Success?: number; e2eFirstFrameDelay?: number; CBSessionRespToLocusFloorGrantDelay?: number; CBShareReceiveToServerShareTransmitDelay?: number; CBShareReceiveToTPGWFirstKeyFrameDelay?: number; /** * phrased HTTP timing */ floorRequestHttpTiming?: { connect?: number; dnsLookup?: number; sendRequest?: number; compressRequest?: number; receiveResponse?: number; extractJson?: number; verifyCert?: number; refreshToken?: number; additionalProperties?: never; }; TPGWFirstKeyFrameToServerShareTransmitDelay?: number; MCSSessionActivateToLocusFloorGrantDelay?: number; ServerShareInitiateToLocusFloorGrantDelay?: number; LocusFloorGrantToCBSessionStartDelay?: number; ServerShareReceiveToTPGWFirstKeyFrameDelay?: number; LocusFloorGrantToTPGWFloorGrantDelay?: number; LocusFloorGrantToReceiverNotificationDelay?: number; CBShareSessionRespDelay?: number; LocusShareFloorGrantRespDelay?: number; LocusFloorReqToRespDelay?: number; ServerShareFloorGrantRespDelay?: number; joinRespRxStart?: number; joinRespTxStart?: number; maxRemoteLossRate?: number; media2SignalDelay?: number; warholDownloadTime?: number; contentDownloadTime?: number; boardCreationTime?: number; totalBoardServiceRespDelay?: number; additionalProperties?: never; }; /** * represents all of the properities that could cause delay during media setup process. */ shareSetupDelay?: { floorReqSentReceived?: number; floorRespSentReceived?: number; mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard"; txReqFloorGranted?: number; txSessionCreateConfirm?: number; txApeEnrollConfirm?: number; txUIDelay?: number; txScreenCaptureDelay?: number; txScreenCaptureDelayReasonCode?: number; txShareStartOverallDelay?: number; floorGranted2tx1stPacketSendDelay?: number; rx1stPacket2RenderDelay?: number; rxGranted2RenderDelay?: number; rxFailFrameNumB4Success?: number; e2eFirstFrameDelay?: number; CBSessionRespToLocusFloorGrantDelay?: number; CBShareReceiveToServerShareTransmitDelay?: number; CBShareReceiveToTPGWFirstKeyFrameDelay?: number; /** * phrased HTTP timing */ floorRequestHttpTiming?: { connect?: number; dnsLookup?: number; sendRequest?: number; compressRequest?: number; receiveResponse?: number; extractJson?: number; verifyCert?: number; refreshToken?: number; additionalProperties?: never; }; TPGWFirstKeyFrameToServerShareTransmitDelay?: number; MCSSessionActivateToLocusFloorGrantDelay?: number; ServerShareInitiateToLocusFloorGrantDelay?: number; LocusFloorGrantToCBSessionStartDelay?: number; ServerShareReceiveToTPGWFirstKeyFrameDelay?: number; LocusFloorGrantToTPGWFloorGrantDelay?: number; LocusFloorGrantToReceiverNotificationDelay?: number; CBShareSessionRespDelay?: number; LocusShareFloorGrantRespDelay?: number; LocusFloorReqToRespDelay?: number; ServerShareFloorGrantRespDelay?: number; joinRespRxStart?: number; joinRespTxStart?: number; maxRemoteLossRate?: number; media2SignalDelay?: number; warholDownloadTime?: number; contentDownloadTime?: number; boardCreationTime?: number; totalBoardServiceRespDelay?: number; additionalProperties?: never; }; /** * represents all of the properities that could cause delay during media setup process. */ shareAudioSetupDelay?: { floorReqSentReceived?: number; floorRespSentReceived?: number; mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard"; txReqFloorGranted?: number; txSessionCreateConfirm?: number; txApeEnrollConfirm?: number; txUIDelay?: number; txScreenCaptureDelay?: number; txScreenCaptureDelayReasonCode?: number; txShareStartOverallDelay?: number; floorGranted2tx1stPacketSendDelay?: number; rx1stPacket2RenderDelay?: number; rxGranted2RenderDelay?: number; rxFailFrameNumB4Success?: number; e2eFirstFrameDelay?: number; CBSessionRespToLocusFloorGrantDelay?: number; CBShareReceiveToServerShareTransmitDelay?: number; CBShareReceiveToTPGWFirstKeyFrameDelay?: number; /** * phrased HTTP timing */ floorRequestHttpTiming?: { connect?: number; dnsLookup?: number; sendRequest?: number; compressRequest?: number; receiveResponse?: number; extractJson?: number; verifyCert?: number; refreshToken?: number; additionalProperties?: never; }; TPGWFirstKeyFrameToServerShareTransmitDelay?: number; MCSSessionActivateToLocusFloorGrantDelay?: number; ServerShareInitiateToLocusFloorGrantDelay?: number; LocusFloorGrantToCBSessionStartDelay?: number; ServerShareReceiveToTPGWFirstKeyFrameDelay?: number; LocusFloorGrantToTPGWFloorGrantDelay?: number; LocusFloorGrantToReceiverNotificationDelay?: number; CBShareSessionRespDelay?: number; LocusShareFloorGrantRespDelay?: number; LocusFloorReqToRespDelay?: number; ServerShareFloorGrantRespDelay?: number; joinRespRxStart?: number; joinRespTxStart?: number; maxRemoteLossRate?: number; media2SignalDelay?: number; warholDownloadTime?: number; contentDownloadTime?: number; boardCreationTime?: number; totalBoardServiceRespDelay?: number; additionalProperties?: never; }; /** * represents all of the properities that could cause delay during media setup process. */ whiteboardSetupDelay?: { floorReqSentReceived?: number; floorRespSentReceived?: number; mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard"; txReqFloorGranted?: number; txSessionCreateConfirm?: number; txApeEnrollConfirm?: number; txUIDelay?: number; txScreenCaptureDelay?: number; txScreenCaptureDelayReasonCode?: number; txShareStartOverallDelay?: number; floorGranted2tx1stPacketSendDelay?: number; rx1stPacket2RenderDelay?: number; rxGranted2RenderDelay?: number; rxFailFrameNumB4Success?: number; e2eFirstFrameDelay?: number; CBSessionRespToLocusFloorGrantDelay?: number; CBShareReceiveToServerShareTransmitDelay?: number; CBShareReceiveToTPGWFirstKeyFrameDelay?: number; /** * phrased HTTP timing */ floorRequestHttpTiming?: { connect?: number; dnsLookup?: number; sendRequest?: number; compressRequest?: number; receiveResponse?: number; extractJson?: number; verifyCert?: number; refreshToken?: number; additionalProperties?: never; }; TPGWFirstKeyFrameToServerShareTransmitDelay?: number; MCSSessionActivateToLocusFloorGrantDelay?: number; ServerShareInitiateToLocusFloorGrantDelay?: number; LocusFloorGrantToCBSessionStartDelay?: number; ServerShareReceiveToTPGWFirstKeyFrameDelay?: number; LocusFloorGrantToTPGWFloorGrantDelay?: number; LocusFloorGrantToReceiverNotificationDelay?: number; CBShareSessionRespDelay?: number; LocusShareFloorGrantRespDelay?: number; LocusFloorReqToRespDelay?: number; ServerShareFloorGrantRespDelay?: number; joinRespRxStart?: number; joinRespTxStart?: number; maxRemoteLossRate?: number; media2SignalDelay?: number; warholDownloadTime?: number; contentDownloadTime?: number; boardCreationTime?: number; totalBoardServiceRespDelay?: number; additionalProperties?: never; }; isFocus?: boolean; processingDelay?: number; shareResourceType?: | "APPLICATION_OR_WINDOW" | "CAMERA" | "DEFAULT" | "EMBEDDED_APP" | "FILE" | "MOBILE_FILE" | "MOBILE_SCREEN_MIRRORING" | "SCREEN"; shareResourceName?: string; shareType?: | "cb-normal-share" | "ce-airplay-share" | "ce-direct-share" | "ce-gui-loopback-share" | "ce-input-source-share" | "ce-input-source-share-hdmi" | "ce-input-source-share-usbc" | "ce-jpg-share" | "ce-miracast-share" | "mcs-normal-share" | "mcs-normal-audio-share" | "mcs-hfps-share" | "mcs-hfps-audio-share"; isShareBeingTakenOver?: boolean; floorBeneficiaryUpdated?: boolean; meetingJoinedTime?: string; /** * join phase of event */ meetingJoinPhase?: "pre-join" | "join" | "in-meeting"; meetingScheduledTime?: string; seconds2StartTime?: number; e2eeKeyEpoch?: number; e2eeDecompressRatio?: number; keyResponses?: { gotKeyTime?: number; useKeyTime?: number; cacheKeyTime?: number; additionalProperties?: never; }[]; e2eeVersion?: "E2EEV1" | "E2EEV2" | "E2EEV3" | "E2EEV4" | "E2EEV4_PLUS" | "E2EEV4_B" | "E2EEV5"; isZeroTrust?: boolean; /** * Version of SFrame in use. */ sframeVersion?: "SFRAMEV1" | "SFRAMEV2"; isConvergedArchitectureEnabled?: boolean; isCustomBrowser?: boolean; callingServiceType?: "CUCM" | "WEBEXCALLING" | "BROADWORKS" | "LOCUS" | "BROADCLOUDCARRIER"; supplementaryMediaSessionType?: "DirectShare"; isPaired?: boolean; inLobby?: boolean; isVIPMeeting?: boolean; webexAppEntrypoint?: string; firstParticipant?: boolean; isImmersiveShare?: boolean; /** * Request/Response Time for Internal Services / Clients */ registeredTimestamps?: { locusCreateConfluenceRequestTime?: string; locusCreateConfluenceResponseTime?: string; locusCreateVenueRequestTime?: string; locusCreateVenueResponseTime?: string; interstitialWindowLaunchedTime?: string; additionalProperties?: never; }; skipInterstitialWindow?: boolean; callDurationSecs?: number; connectionDurationSecs?: number; lobbyType?: string; callDirection?: "ORIGINATING" | "TERMINATING"; /** * Details associated with a breakout move */ breakout?: { moveType?: "between_breakout" | "to_breakout" | "to_main"; trigger?: "assignment_changed" | "client_initiated" | "session_ended" | "session_started"; startState?: "joined" | "lobby"; endState?: "joined" | "lobby"; additionalProperties?: never; }; /** * Latency values associated with breakout session */ breakoutLatency?: { clientBreakoutMoveReqJoinResp?: number; boBreakoutMoveProcessed?: number; boBreakoutMoveResp?: number; boLocusBreakoutMoveResp?: number; locusBreakoutMoveResp?: number; orpheusConfluenceMoveReqResp?: number; additionalProperties?: never; }; /** * two-way whiteboard related info */ whiteboard?: { action?: "open" | "create"; type?: "whiteboard" | "annotation"; capability?: "one_way" | "two_way"; granted?: "one_way" | "two_way"; additionalProperties?: never; }; /** * ROAP message details */ roap?: { type?: | "ANSWER" | "ERROR" | "OFFER" | "OFFER_REQUEST" | "OFFER_RESPONSE" | "OK" | "OKAY" | "TURN_DISCOVERY_REQUEST" | "TURN_DISCOVERY_RESPONSE"; messageType?: | "ANSWER" | "ERROR" | "OFFER" | "OFFER_REQUEST" | "OFFER_RESPONSE" | "OK" | "OKAY" | "TURN_DISCOVERY_REQUEST" | "TURN_DISCOVERY_RESPONSE"; error?: string; duration?: number; seq?: number; additionalProperties?: never; }; /** * Pstn Carrier Infos */ pstnCarrierInfo?: { cic?: string; carrierName?: string; ucreDnsSrvs?: string[]; additionalProperties?: never; }; pstnAudioCallType?: "PSTN" | "CCA_E" | "CCA_SP" | "EDGE_AUDIO" | "CCA_S" | "VMN_AUDIO"; l2sipCallbackUrl?: string; ivrDialingStatusOriginator?: "L2SIP" | "CLOUD_PROXY" | "CARRIER" | "UNIDENTIFIED"; cic?: string; carrierName?: string; originator?: string; ucreDnsSrvs?: string[]; ivrServiceUcreAttempts?: number; antiFraudPolicyType?: string; antiFraudBlocked?: boolean; sipResponseCode?: | "100_Trying" | "183_Ringing" | "200_Ok" | "404_NotFound" | "407_ProxyAuthRequired" | "486_BusyHere" | "503_ServiceUnavailable" | "606_NotAcceptable"; /** * details of scheduling information */ schedulingInfo?: { /** * this defines calendar type for scheduling */ calendarType?: "exchange_online" | "exchange_onprem" | "google" | "other" | "webex"; /** * this defines meeting categories for scheduling */ meetingCategory?: "AdhocUSM" | "Instant" | "Scheduled" | "ScheduledPMR" | "ScheduledUSM" | "SpaceMeetingV1"; /** * this defines where the meeting was scheduled from */ scheduledFrom?: | "ADDIN_O365" | "ADDIN_ONPREM" | "ADHOC_USM" | "AT_WEBEX_GOOGLE" | "AT_WEBEX_MSFT" | "AT_MEET_GOOGLE" | "AT_MEET_MSFT" | "GOOGLE_ADDON" | "INSTANT_MEETING" | "OTHER" | "PT" | "PUBLIC_API" | "TEAMS_CLIENT" | "TEAMS_CLIENT_CROSS_LAUNCH" | "UNIFIED_PAGE" | "WEBEX_PAGE"; /** * this defines meeting categories for scheduling */ schedulingOperationType?: "prepare" | "create" | "update" | "delete"; additionalProperties?: never; }; /** * details of setting information */ settingInfo?: { /** * this defines where the type of Setting being modified/updated */ settingType: "AUDIO_VIDEO" | "EMAIL_TEMPLATE" | "GENERAL" | "PMR" | "RECORDING" | "SCHEDULING" | "WEBEX_SITE"; additionalProperties?: never; }; sessionJoinCount?: number; /** * indicates transport type used */ transportType?: "UDP" | "TCP" | "xTLS" | "TLS"; joinFlowVersion?: "NewFTE" | "Other"; locale?: string; accessNumber?: string; isVVipMeeting?: boolean; /** * Login-related information. */ loginInfo?: { loginType?: | "user-hub" | "control-hub" | "meeting-site" | "global-sign-in-page" | "web-client" | "native-client"; method?: "idbroker" | "enterprise" | "social"; grantType?: "client-credential" | "authorization-code" | "scope-reduction"; /** * Sign-in Time */ signInDelay?: { signInTime?: number; additionalProperties?: never; }; signInSignUpType?: "sign-in" | "sign-up"; userFound?: boolean; additionalProperties?: never; }; isPrivateMeeting?: boolean; /** * Low Latency Mercury latency measurements */ llmLatency?: { clientLLMDatachannelResponseTime?: number; clientLLMWebSocketConnectTime?: number; additionalProperties?: never; }; /** * Sync Latency measurements. Expected to be sent in client.locus.sync.complete and locus.sync.sent events that could be triggered in a converged webinar session */ syncLatency?: { randomBackoffTime?: number; hashtreePrepTime?: number; hashtreeProcessingTime?: number; hashtreeResponseTime?: number; syncPrepTime?: number; syncResponseTime?: number; syncProcessingTime?: number; syncMessageReceiveTime?: number; totalTime?: number; additionalProperties?: never; }; /** * Low Latency Mercury related information. */ llmInfo?: { dataSet?: "main" | "atd-active" | "atd-unmuted"; additionalProperties?: never; }; trigger?: "dummyTrigger1" | "dummyTrigger2" | "recording-event"; name: | "crc.recording.create.request" | "crc.session.open.sent" | "hesiod.session.open.receive" | "hesiod.roap.sent" | "crc.roap.receive" | "crc.recording.create.response" | "crc.recording.active" | "crc.recording.delete" | "crc.recording.failure"; isSuccess: boolean; /** * Failure or Error code specified by CRC/Hesiod. */ failureCode?: | "SessionOpenNoAgentsAvailable" | "SessionOpenTimeout" | "SessionOpenFailed" | "RecordingCreateFailed" | "TimeoutWaitingForEvent"; failureDescription?: string; /** * Base type for the various identifiers used to connect the dots. * In general, these should be populated whenever possible. Subtypes may make a particular key required. * */ identifiers: { aggregatedBreakoutMoveId?: string; attendeeId?: string; participantId?: string; breakoutGroupId?: string; breakoutMoveId?: string; breakoutTrackingId?: string; breakoutSessionId?: string; browserId?: string; ciExchangeTokenUrl?: string; confluenceId?: string; correlationId?: string; /** * Set of identifiers dedicated to CPaaS clients * In general, these should be populated whenever possible. Subtypes may make a particular key required. * */ cpaasIdentifiers?: { imiTenantId: string; devClientId: string; imiServiceId: string; imiAppId: string; sessionId: string; sessionInstanceId: string; additionalProperties?: never; }; csdmDeviceUrl?: string; destinationBreakoutSessionId?: string; destinationLocusSessionId?: string; destinationLocusUrl?: string; destinationVenueId?: string; deviceId?: string; globalMeetingId?: string; installationId?: string; webexMeetingUUID?: string; ivrCallId?: string; ivrDialogId?: string; ivrId?: string; callId?: string; pairCallId?: string; llmWebsocketUrl?: string; locusCluster?: string; locusId?: string; locusJoinUrl?: string; locusSessionId?: string; locusStartTime?: string; locusUrl?: string; machineId?: string; mediaAgentAlias?: string; mediaAgentGroupId?: string; meetClusterName?: string; meetingInstanceId?: string; meetingLookupUrl?: string; meetingOrgId?: string; metricServiceUrl?: string; mercuryWebsocketUrl?: string; msteamsTenantGuid?: string; msteamsConferenceId?: string; msteamsMeetingId?: string; mtid?: string; oauth2ClientId?: string; orgId?: string; provisionalCorrelationId?: string; roomId?: string; sessionCorrelationId?: string; sharedMediaId?: string; sipCallId?: string; sipSessionId?: { local?: string; remote?: string; additionalProperties?: never; }; sipUri?: string; subConfId?: string; tenantId?: string; trackingId?: string; userId?: string; venueId?: string; venueUrl?: string; whiteboardUrl?: string; wdmDeviceRegistrationUrl?: string; webexConferenceId?: number; webexClusterName?: string; webexConferenceIdStr?: string; webexDataCenter?: string; webexGuestId?: number; webexMeetingId?: number; webexNodeId?: number; webexSiteId?: number; webexSiteName?: string; webexSiteUuid?: string; webexUserId?: number; webexWebDomain?: string; clientCorrelationId?: string; idForEndpointAB?: string; customerOrgId?: string; recordingId: string; additionalProperties?: never; }; /** * metadata associated with a media cluster. */ clusterInfo?: { serverOrgId: string; serverGroupId: string; isHybridMedia: boolean; clusterAlreadyInVenue?: boolean; transportTypes?: ("UDP" | "TCP" | "xTLS" | "TLS")[]; latency?: number; skippedReason?: | "CAPACITY" | "CLIENT_EXCLUSION" | "LATENCY" | "OFFLINE" | "UNREACHABLE" | "CAPACITY_OR_UNREACHABLE" | "PRIVATE_MEETING_CLUSTER" | "NO_MEDIA_NODES"; reason?: | "CLOUD_INGRESS_REGION" | "CLIENT_SOURCE_REGION" | "CALLER_CLUSTER" | "DESIGNATED_CLUSTER" | "GEO_HINT" | "LINUS_SELECT" | "OVERRIDE_PREFERRED_CLUSTER" | "PREFERRED_CLUSTER" | "REACHABILITY" | "USER_SETTING" | "FAILOVER_CLUSTER" | "DEFAULT_CLUSTER"; region?: string; reachabilityDueToFolding?: boolean; additionalProperties?: never; }; /** * RecordingType for recording events and reports. */ recordingType?: "MEETING" | "CALLING" | "CONTACT_CENTER"; recordingDurationInSec?: number; additionalProperties?: never; }; /** * Information about the receiver of the event */ destination?: { nodeType: | "addin" | "antares" | "appapi" | "beech" | "breakout" | "calendar" | "cb" | "cca" | "ccc" | "cloudproxy" | "crc" | "edonus" | "endpoint" | "givr" | "hecate" | "hedge" | "hesiod" | "homer" | "idbroker" | "superhomer" | "l2sip" | "linus" | "locus" | "mbs" | "mcc" | "mcs" | "mercury" | "mes" | "mjs" | "mrs" | "mmp" | "mygdon" | "ngpage" | "ngservice" | "oauth" | "orpheus" | "page" | "poros" | "publicapi" | "sbs" | "rhesos" | "terminus" | "tpgw" | "ucc" | "wdm" | "webexivr" | "meetingcontainer"; uri?: string; additionalProperties?: never; }; uiFrameworkInfo?: string; additionalProperties?: never; } /* eslint-disable */ /** * This file was automatically generated by json-schema-to-typescript. * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file, * and run json-schema-to-typescript to regenerate this file. */ /** * Type of dialog window displayed to user */ export type DialogType = "PREFER_WEB_JOIN_PROMPT" | "EULA" | "INSTALLER_SLOW_CONNECTION_PROMPT"; /** * Events from clients */ export interface ClientEvent { canProceed?: boolean; state?: string; mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard" | "gamestate"; /** * Details associated with a share floor type */ floorType?: { name: "DEFAULT" | "EMBEDDED_APP" | "OTHER"; priority?: {}; additionalProperties?: never; }; csi?: number; /** * media capability for both transmit and receive */ mediaCapabilities?: { /** * explicit indication of media capabilities. true=supported */ tx: { audio: boolean; video: boolean; share: boolean; share_audio: boolean; whiteboard: boolean; gamestate?: boolean; additionalProperties?: never; }; /** * explicit indication of media capabilities. true=supported */ rx: { audio: boolean; video: boolean; share: boolean; share_audio: boolean; whiteboard: boolean; gamestate?: boolean; additionalProperties?: never; }; additionalProperties?: never; }; mediaLines?: { clusterName?: string; connectionType?: "none" | "direct" | "proxy"; direction: "sendrecv" | "sendonly" | "recvonly" | "inactive"; errorCode?: number; extension?: {}; failureDescription?: string; failureReason?: "network" | "transport" | "rejected" | "timeout" | "notstarted" | "succeeded"; iceMangled?: boolean; localIP?: string; localNetworkPrefix?: string; localPort?: number; mediaLineData?: {}; mediaType: "audio" | "video" | "share" | "share_audio" | "whiteboard" | "gamestate" | "all"; protocol: "udp" | "tcp" | "xtls" | "unknown"; recvRespTime?: string; remoteIP?: string; remotePort?: number; sentReqTime?: string; status?: "succeeded" | "in-progress" | "failed"; tlsDomain?: string; transactionId?: string; ufrag?: string; additionalProperties?: never; }[]; /** * allows client to specify media preferences */ clientMediaPreferences?: { preferTranscoding: boolean; additionalProperties?: never; }; pstnAudioType?: "dial-in" | "dial-out"; homeDataCenter?: string; success?: boolean; isTranscoded?: boolean; isGatewayed?: boolean; isComposed?: boolean; /** * determine how the events are processed as well as how the reports are aggregated and sliced */ registrationMode?: "SIP" | "Cloud" | "CloudAware"; /** * protocols used to help determine how the events are processed as well as how the reports are aggregated and sliced */ protocol?: "SIP" | "H323" | "H323_IP" | "Locus" | "WebRTC"; /** * The underlying service provider of the call. */ meetingPlatform?: "MsTeams" | "GoogleMeet" | "Zoom" | "Webex"; labels?: string[]; labelsStr?: string; webexServiceType?: "MC" | "EC" | "SC" | "TC" | "AA" | "RA" | "NBR" | "WRF" | "HOL"; /** * this defines the sub service type */ webexSubServiceType?: | "PMR" | "Event" | "Training" | "ScheduleMeeting" | "ScheduledMeeting" | "Webcast" | "Webinar" | "LargeScaleWebinar" | "others"; ivrDialogType?: | "MEDIA_ON_HOLD" | "ANNOUNCEMENT" | "TONE" | "COLLECT_PIN" | "PROMPT" | "MEDIA_SERVICE_AGENT" | "COLLECT"; ivrDialogResult?: | "SUCCESS" | "FAILURE" | "HOST_PIN_MATCH" | "GUEST_PIN_MATCH" | "PANELIST_PIN_MATCH" | "NO_MATCH" | "INVALID_PIN"; callType?: | "VIDEO_DIALIN" | "VIDEO_DIALOUT" | "CASCADE" | "HYBRID_CASCADE" | "PSTN_SIP" | "PSTN_DIALIN" | "PSTN_DIALOUT" | "PSTN_ONLY_DIALIN" | "PSTN_ONLY_DIALOUT" | "AUDIO_DIALIN" | "AUDIO_ONLY_DIALIN" | "H323" | "H323_IP" | "SIP_ENTERPRISE" | "SIP_MOBILE" | "SIP_NATIONAL" | "SIP_INTERNATIONAL" | "SIP_EMERGENCY" | "SIP_OPERATOR" | "SIP_SHORTCODE" | "SIP_TOLLFREE" | "SIP_PREMIUM" | "SIP_URI" | "SIP_INBOUND" | "UNKNOWN" | "ZTM" | "SIP_MEETING" | "SIP_DIALOUT" | "SIP_ONLY_DIALOUT"; eventData?: {}; derivedSipClientType?: | "SIP_CE_SINGLE_SCREEN" | "SIP_CE_MULTI_SCREEN" | "SIP_JABBER" | "SIP_TIP_SINGLE_SCREEN" | "SIP_TIP_THREE_SCREEN" | "SIP_PSTN" | "SIP_OTHER" | "SIP_WEBEX_CASCADE" | "SIP_NONE"; /** * this defines the major client types */ derivedClientType?: | "MEETING_CENTER" | "EVENT_CENTER" | "TRAINING_CENTER" | "TEAMS_CLIENT" | "TEAMS_DEVICE" | "TEAMS_SHARE" | "SIP" | "RECORDING" | "CLOUD_AWARE_SIP" | "TEAMS_WXC_CLIENT" | "WXC_CLIENT" | "WXC_DEVICE" | "WEBEX_JS_SDK" | "VOICEA_CLIENT" | "CISCO_SIP_GW" | "WEBEX_SDK" | "CPAAS_THIRD_PARTY_SDK" | "WXC_THIRD_PARTY" | "WXCC" | "TEAMS_PHONE" | "WEBEX_RELAY"; /** * this defines the sub types of clients */ derivedSubClientType?: | "AUTOMOTIVE_APP" | "BROWSER_EXTENSION" | "DESKTOP_APP" | "DESKTOP_APP_VDI" | "DEVICE_CURRENT" | "DEVICE_LEGACY_2020" | "HOLOGRAM_HEADSET_APP" | "HVDI_APP" | "MIXED" | "MOBILE_APP" | "MOBILE_NETWORK" | "PAGE" | "TEAMS_DEVICE" | "VDI_APP" | "WEB_APP" | "PHONE_NOVUM" | "PHONE_ESPRESSO" | "PHONE_BUMBLEBEE" | "SIP" | "SIP_PSTN"; meetingRole?: "PANELIST" | "ATTENDEE"; serverRole?: | "CONFERENCE" | "TRANSCODER" | "WHITEBOARD_INJECTOR" | "MS_TEAMS_CONFERENCE" | "RECORDING" | "GATEWAY" | "GATEWAY_CLIENT_SIDE" | "UNKNOWN" | "HOLOGRAM_RENDER" | "EDGE"; reconnect?: boolean; retryCount?: number; meetSimple?: boolean; /** * represents media quality status report such as no media or drop out */ mediaStatus?: { mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard"; mediaSuccess?: boolean; shareType?: | "cb-normal-share" | "ce-airplay-share" | "ce-direct-share" | "ce-gui-loopback-share" | "ce-input-source-share" | "ce-input-source-share-hdmi" | "ce-input-source-share-usbc" | "ce-jpg-share" | "ce-miracast-share" | "mcs-normal-share" | "mcs-normal-audio-share" | "mcs-hfps-share" | "mcs-hfps-audio-share"; isTransmitter?: boolean; audioJoinType?: | "phone-call-in" | "phone-call-back" | "voip" | "device-call-back" | "never-join-audio" | "tried-but-never-join"; /** * indicates transport type used */ transportType?: "UDP" | "TCP" | "xTLS" | "TLS"; additionalData?: {}; /** * information object for the peripheral */ mediaDeviceInfo?: { name: "camera" | "microphone" | "speaker"; information?: string; driver?: string; errorCode?: string; subErrorCode?: string; captureFrameSize?: number; captureFps?: number; captureFrameworkType?: number; captureRawType?: number; deviceCapabilitiesTime?: number; connectionType?: {}; bluetoothMode?: {}; openDeviceCostTimeMilliSecond?: number; startCaptureCostTimeMilliSecond?: number; txSampleRate?: number; rxSampleRate?: number; isAAudioLowLatency?: number; isStartNDKFailed?: number; startPlaybackCostTimeMilliSecond?: number; changeCount?: number; /** * indicates capture device's system volume, between -1 and 100, -1 means invalid */ captureSystemVolume?: number; /** * indicates playback device's system volume, between -1 and 100, -1 means invalid */ playbackSystemVolume?: number; started?: boolean; sysAudioSEStatus?: number; isVolumeControlAvailable?: boolean; rawStreamStatus?: number; status?: string; initCaptureFrameworkType?: "unknown" | "dshow" | "mf" | "mfPrefer"; cameraRetried?: boolean; captureCameraType?: | "unknown" | "builtIn" | "aggregate" | "virtual" | "pci" | "usb" | "fireWire" | "bluetooth" | "hdmi" | "displayPort" | "airPlay" | "avb" | "thunderbolt" | "lineLevel" | "external" | "continuityCaptureWired" | "continuityCaptureWireless" | "audioRemote" | "iphoneCamera" | "deskViewCamera" | "virtualCamera" | "builtInMinijack"; captureCameraFailNum?: number; videoCaptureEnumTime?: number; additionalProperties?: never; }; additionalProperties?: never; }; shareInstanceId?: string; ipVersion?: "IPv4" | "IPv6" | "Dual"; isTransmitter?: boolean; shareDuration?: number; stopReason?: string; shareStartReason?: string; hologramStreamId?: string; /** * represents all of the properities that could cause delay during media setup process. */ audioSetupDelay?: { floorReqSentReceived?: number; floorRespSentReceived?: number; mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard"; txReqFloorGranted?: number; txSessionCreateConfirm?: number; txApeEnrollConfirm?: number; txUIDelay?: number; txScreenCaptureDelay?: number; txScreenCaptureDelayReasonCode?: number; txShareStartOverallDelay?: number; floorGranted2tx1stPacketSendDelay?: number; rx1stPacket2RenderDelay?: number; rxGranted2RenderDelay?: number; rxFailFrameNumB4Success?: number; e2eFirstFrameDelay?: number; CBSessionRespToLocusFloorGrantDelay?: number; CBShareReceiveToServerShareTransmitDelay?: number; CBShareReceiveToTPGWFirstKeyFrameDelay?: number; /** * phrased HTTP timing */ floorRequestHttpTiming?: { connect?: number; dnsLookup?: number; sendRequest?: number; compressRequest?: number; receiveResponse?: number; extractJson?: number; verifyCert?: number; refreshToken?: number; additionalProperties?: never; }; TPGWFirstKeyFrameToServerShareTransmitDelay?: number; MCSSessionActivateToLocusFloorGrantDelay?: number; ServerShareInitiateToLocusFloorGrantDelay?: number; LocusFloorGrantToCBSessionStartDelay?: number; ServerShareReceiveToTPGWFirstKeyFrameDelay?: number; LocusFloorGrantToTPGWFloorGrantDelay?: number; LocusFloorGrantToReceiverNotificationDelay?: number; CBShareSessionRespDelay?: number; LocusShareFloorGrantRespDelay?: number; LocusFloorReqToRespDelay?: number; ServerShareFloorGrantRespDelay?: number; joinRespRxStart?: number; joinRespTxStart?: number; maxRemoteLossRate?: number; media2SignalDelay?: number; warholDownloadTime?: number; contentDownloadTime?: number; boardCreationTime?: number; totalBoardServiceRespDelay?: number; additionalProperties?: never; }; /** * represents all of the properities that could cause delay during media setup process. */ videoSetupDelay?: { floorReqSentReceived?: number; floorRespSentReceived?: number; mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard"; txReqFloorGranted?: number; txSessionCreateConfirm?: number; txApeEnrollConfirm?: number; txUIDelay?: number; txScreenCaptureDelay?: number; txScreenCaptureDelayReasonCode?: number; txShareStartOverallDelay?: number; floorGranted2tx1stPacketSendDelay?: number; rx1stPacket2RenderDelay?: number; rxGranted2RenderDelay?: number; rxFailFrameNumB4Success?: number; e2eFirstFrameDelay?: number; CBSessionRespToLocusFloorGrantDelay?: number; CBShareReceiveToServerShareTransmitDelay?: number; CBShareReceiveToTPGWFirstKeyFrameDelay?: number; /** * phrased HTTP timing */ floorRequestHttpTiming?: { connect?: number; dnsLookup?: number; sendRequest?: number; compressRequest?: number; receiveResponse?: number; extractJson?: number; verifyCert?: number; refreshToken?: number; additionalProperties?: never; }; TPGWFirstKeyFrameToServerShareTransmitDelay?: number; MCSSessionActivateToLocusFloorGrantDelay?: number; ServerShareInitiateToLocusFloorGrantDelay?: number; LocusFloorGrantToCBSessionStartDelay?: number; ServerShareReceiveToTPGWFirstKeyFrameDelay?: number; LocusFloorGrantToTPGWFloorGrantDelay?: number; LocusFloorGrantToReceiverNotificationDelay?: number; CBShareSessionRespDelay?: number; LocusShareFloorGrantRespDelay?: number; LocusFloorReqToRespDelay?: number; ServerShareFloorGrantRespDelay?: number; joinRespRxStart?: number; joinRespTxStart?: number; maxRemoteLossRate?: number; media2SignalDelay?: number; warholDownloadTime?: number; contentDownloadTime?: number; boardCreationTime?: number; totalBoardServiceRespDelay?: number; additionalProperties?: never; }; /** * represents all of the properities that could cause delay during media setup process. */ shareSetupDelay?: { floorReqSentReceived?: number; floorRespSentReceived?: number; mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard"; txReqFloorGranted?: number; txSessionCreateConfirm?: number; txApeEnrollConfirm?: number; txUIDelay?: number; txScreenCaptureDelay?: number; txScreenCaptureDelayReasonCode?: number; txShareStartOverallDelay?: number; floorGranted2tx1stPacketSendDelay?: number; rx1stPacket2RenderDelay?: number; rxGranted2RenderDelay?: number; rxFailFrameNumB4Success?: number; e2eFirstFrameDelay?: number; CBSessionRespToLocusFloorGrantDelay?: number; CBShareReceiveToServerShareTransmitDelay?: number; CBShareReceiveToTPGWFirstKeyFrameDelay?: number; /** * phrased HTTP timing */ floorRequestHttpTiming?: { connect?: number; dnsLookup?: number; sendRequest?: number; compressRequest?: number; receiveResponse?: number; extractJson?: number; verifyCert?: number; refreshToken?: number; additionalProperties?: never; }; TPGWFirstKeyFrameToServerShareTransmitDelay?: number; MCSSessionActivateToLocusFloorGrantDelay?: number; ServerShareInitiateToLocusFloorGrantDelay?: number; LocusFloorGrantToCBSessionStartDelay?: number; ServerShareReceiveToTPGWFirstKeyFrameDelay?: number; LocusFloorGrantToTPGWFloorGrantDelay?: number; LocusFloorGrantToReceiverNotificationDelay?: number; CBShareSessionRespDelay?: number; LocusShareFloorGrantRespDelay?: number; LocusFloorReqToRespDelay?: number; ServerShareFloorGrantRespDelay?: number; joinRespRxStart?: number; joinRespTxStart?: number; maxRemoteLossRate?: number; media2SignalDelay?: number; warholDownloadTime?: number; contentDownloadTime?: number; boardCreationTime?: number; totalBoardServiceRespDelay?: number; additionalProperties?: never; }; /** * represents all of the properities that could cause delay during media setup process. */ shareAudioSetupDelay?: { floorReqSentReceived?: number; floorRespSentReceived?: number; mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard"; txReqFloorGranted?: number; txSessionCreateConfirm?: number; txApeEnrollConfirm?: number; txUIDelay?: number; txScreenCaptureDelay?: number; txScreenCaptureDelayReasonCode?: number; txShareStartOverallDelay?: number; floorGranted2tx1stPacketSendDelay?: number; rx1stPacket2RenderDelay?: number; rxGranted2RenderDelay?: number; rxFailFrameNumB4Success?: number; e2eFirstFrameDelay?: number; CBSessionRespToLocusFloorGrantDelay?: number; CBShareReceiveToServerShareTransmitDelay?: number; CBShareReceiveToTPGWFirstKeyFrameDelay?: number; /** * phrased HTTP timing */ floorRequestHttpTiming?: { connect?: number; dnsLookup?: number; sendRequest?: number; compressRequest?: number; receiveResponse?: number; extractJson?: number; verifyCert?: number; refreshToken?: number; additionalProperties?: never; }; TPGWFirstKeyFrameToServerShareTransmitDelay?: number; MCSSessionActivateToLocusFloorGrantDelay?: number; ServerShareInitiateToLocusFloorGrantDelay?: number; LocusFloorGrantToCBSessionStartDelay?: number; ServerShareReceiveToTPGWFirstKeyFrameDelay?: number; LocusFloorGrantToTPGWFloorGrantDelay?: number; LocusFloorGrantToReceiverNotificationDelay?: number; CBShareSessionRespDelay?: number; LocusShareFloorGrantRespDelay?: number; LocusFloorReqToRespDelay?: number; ServerShareFloorGrantRespDelay?: number; joinRespRxStart?: number; joinRespTxStart?: number; maxRemoteLossRate?: number; media2SignalDelay?: number; warholDownloadTime?: number; contentDownloadTime?: number; boardCreationTime?: number; totalBoardServiceRespDelay?: number; additionalProperties?: never; }; /** * represents all of the properities that could cause delay during media setup process. */ whiteboardSetupDelay?: { floorReqSentReceived?: number; floorRespSentReceived?: number; mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard"; txReqFloorGranted?: number; txSessionCreateConfirm?: number; txApeEnrollConfirm?: number; txUIDelay?: number; txScreenCaptureDelay?: number; txScreenCaptureDelayReasonCode?: number; txShareStartOverallDelay?: number; floorGranted2tx1stPacketSendDelay?: number; rx1stPacket2RenderDelay?: number; rxGranted2RenderDelay?: number; rxFailFrameNumB4Success?: number; e2eFirstFrameDelay?: number; CBSessionRespToLocusFloorGrantDelay?: number; CBShareReceiveToServerShareTransmitDelay?: number; CBShareReceiveToTPGWFirstKeyFrameDelay?: number; /** * phrased HTTP timing */ floorRequestHttpTiming?: { connect?: number; dnsLookup?: number; sendRequest?: number; compressRequest?: number; receiveResponse?: number; extractJson?: number; verifyCert?: number; refreshToken?: number; additionalProperties?: never; }; TPGWFirstKeyFrameToServerShareTransmitDelay?: number; MCSSessionActivateToLocusFloorGrantDelay?: number; ServerShareInitiateToLocusFloorGrantDelay?: number; LocusFloorGrantToCBSessionStartDelay?: number; ServerShareReceiveToTPGWFirstKeyFrameDelay?: number; LocusFloorGrantToTPGWFloorGrantDelay?: number; LocusFloorGrantToReceiverNotificationDelay?: number; CBShareSessionRespDelay?: number; LocusShareFloorGrantRespDelay?: number; LocusFloorReqToRespDelay?: number; ServerShareFloorGrantRespDelay?: number; joinRespRxStart?: number; joinRespTxStart?: number; maxRemoteLossRate?: number; media2SignalDelay?: number; warholDownloadTime?: number; contentDownloadTime?: number; boardCreationTime?: number; totalBoardServiceRespDelay?: number; additionalProperties?: never; }; isFocus?: boolean; processingDelay?: number; shareResourceType?: | "APPLICATION_OR_WINDOW" | "CAMERA" | "DEFAULT" | "EMBEDDED_APP" | "FILE" | "MOBILE_FILE" | "MOBILE_SCREEN_MIRRORING" | "SCREEN"; shareResourceName?: string; shareType?: | "cb-normal-share" | "ce-airplay-share" | "ce-direct-share" | "ce-gui-loopback-share" | "ce-input-source-share" | "ce-input-source-share-hdmi" | "ce-input-source-share-usbc" | "ce-jpg-share" | "ce-miracast-share" | "mcs-normal-share" | "mcs-normal-audio-share" | "mcs-hfps-share" | "mcs-hfps-audio-share"; isShareBeingTakenOver?: boolean; floorBeneficiaryUpdated?: boolean; meetingJoinedTime?: string; /** * join phase of event */ meetingJoinPhase?: "pre-join" | "join" | "in-meeting"; meetingScheduledTime?: string; seconds2StartTime?: number; e2eeKeyEpoch?: number; e2eeDecompressRatio?: number; keyResponses?: { gotKeyTime?: number; useKeyTime?: number; cacheKeyTime?: number; additionalProperties?: never; }[]; e2eeVersion?: "E2EEV1" | "E2EEV2" | "E2EEV3" | "E2EEV4" | "E2EEV4_PLUS" | "E2EEV4_B" | "E2EEV5"; isZeroTrust?: boolean; /** * Version of SFrame in use. */ sframeVersion?: "SFRAMEV1" | "SFRAMEV2"; isConvergedArchitectureEnabled?: boolean; isCustomBrowser?: boolean; callingServiceType?: "CUCM" | "WEBEXCALLING" | "BROADWORKS" | "LOCUS" | "BROADCLOUDCARRIER"; supplementaryMediaSessionType?: "DirectShare"; isPaired?: boolean; inLobby?: boolean; isVIPMeeting?: boolean; webexAppEntrypoint?: string; firstParticipant?: boolean; isImmersiveShare?: boolean; /** * Request/Response Time for Internal Services / Clients */ registeredTimestamps?: { locusCreateConfluenceRequestTime?: string; locusCreateConfluenceResponseTime?: string; locusCreateVenueRequestTime?: string; locusCreateVenueResponseTime?: string; interstitialWindowLaunchedTime?: string; additionalProperties?: never; }; skipInterstitialWindow?: boolean; callDurationSecs?: number; connectionDurationSecs?: number; lobbyType?: string; callDirection?: "ORIGINATING" | "TERMINATING"; /** * Details associated with a breakout move */ breakout?: { moveType?: "between_breakout" | "to_breakout" | "to_main"; trigger?: "assignment_changed" | "client_initiated" | "session_ended" | "session_started"; startState?: "joined" | "lobby"; endState?: "joined" | "lobby"; additionalProperties?: never; }; /** * Latency values associated with breakout session */ breakoutLatency?: { clientBreakoutMoveReqJoinResp?: number; boBreakoutMoveProcessed?: number; boBreakoutMoveResp?: number; boLocusBreakoutMoveResp?: number; locusBreakoutMoveResp?: number; orpheusConfluenceMoveReqResp?: number; additionalProperties?: never; }; /** * two-way whiteboard related info */ whiteboard?: { action?: "open" | "create"; type?: "whiteboard" | "annotation"; capability?: "one_way" | "two_way"; granted?: "one_way" | "two_way"; additionalProperties?: never; }; /** * Pstn Carrier Infos */ pstnCarrierInfo?: { cic?: string; carrierName?: string; ucreDnsSrvs?: string[]; additionalProperties?: never; }; pstnAudioCallType?: "PSTN" | "CCA_E" | "CCA_SP" | "EDGE_AUDIO" | "CCA_S" | "VMN_AUDIO"; l2sipCallbackUrl?: string; ivrDialingStatusOriginator?: "L2SIP" | "CLOUD_PROXY" | "CARRIER" | "UNIDENTIFIED"; cic?: string; carrierName?: string; originator?: string; ucreDnsSrvs?: string[]; ivrServiceUcreAttempts?: number; antiFraudPolicyType?: string; antiFraudBlocked?: boolean; sipResponseCode?: | "100_Trying" | "183_Ringing" | "200_Ok" | "404_NotFound" | "407_ProxyAuthRequired" | "486_BusyHere" | "503_ServiceUnavailable" | "606_NotAcceptable"; /** * details of scheduling information */ schedulingInfo?: { /** * this defines calendar type for scheduling */ calendarType?: "exchange_online" | "exchange_onprem" | "google" | "other" | "webex"; /** * this defines meeting categories for scheduling */ meetingCategory?: "AdhocUSM" | "Instant" | "Scheduled" | "ScheduledPMR" | "ScheduledUSM" | "SpaceMeetingV1"; /** * this defines where the meeting was scheduled from */ scheduledFrom?: | "ADDIN_O365" | "ADDIN_ONPREM" | "ADHOC_USM" | "AT_WEBEX_GOOGLE" | "AT_WEBEX_MSFT" | "AT_MEET_GOOGLE" | "AT_MEET_MSFT" | "GOOGLE_ADDON" | "INSTANT_MEETING" | "OTHER" | "PT" | "PUBLIC_API" | "TEAMS_CLIENT" | "TEAMS_CLIENT_CROSS_LAUNCH" | "UNIFIED_PAGE" | "WEBEX_PAGE"; /** * this defines meeting categories for scheduling */ schedulingOperationType?: "prepare" | "create" | "update" | "delete"; additionalProperties?: never; }; /** * details of setting information */ settingInfo?: { /** * this defines where the type of Setting being modified/updated */ settingType: "AUDIO_VIDEO" | "EMAIL_TEMPLATE" | "GENERAL" | "PMR" | "RECORDING" | "SCHEDULING" | "WEBEX_SITE"; additionalProperties?: never; }; sessionJoinCount?: number; /** * indicates transport type used */ transportType?: "UDP" | "TCP" | "xTLS" | "TLS"; joinFlowVersion?: "NewFTE" | "Other"; locale?: string; accessNumber?: string; isVVipMeeting?: boolean; /** * Login-related information. */ loginInfo?: { loginType?: "user-hub" | "control-hub" | "meeting-site" | "global-sign-in-page" | "web-client" | "native-client"; method?: "idbroker" | "enterprise" | "social"; grantType?: "client-credential" | "authorization-code" | "scope-reduction"; /** * Sign-in Time */ signInDelay?: { signInTime?: number; additionalProperties?: never; }; signInSignUpType?: "sign-in" | "sign-up"; userFound?: boolean; additionalProperties?: never; }; isPrivateMeeting?: boolean; /** * Low Latency Mercury latency measurements */ llmLatency?: { clientLLMDatachannelResponseTime?: number; clientLLMWebSocketConnectTime?: number; additionalProperties?: never; }; /** * Sync Latency measurements. Expected to be sent in client.locus.sync.complete and locus.sync.sent events that could be triggered in a converged webinar session */ syncLatency?: { randomBackoffTime?: number; hashtreePrepTime?: number; hashtreeProcessingTime?: number; hashtreeResponseTime?: number; syncPrepTime?: number; syncResponseTime?: number; syncProcessingTime?: number; syncMessageReceiveTime?: number; totalTime?: number; additionalProperties?: never; }; /** * Low Latency Mercury related information. */ llmInfo?: { dataSet?: "main" | "atd-active" | "atd-unmuted"; additionalProperties?: never; }; name: | "client.abort.join" | "client.alert.displayed" | "client.alert.removed" | "client.application.validate" | "client.audio.noise.removal" | "client.breakout-session.join.request" | "client.breakout-session.join.response" | "client.breakout-session.leave" | "client.breakout-session.move.request" | "client.breakout-session.move.response" | "client.call.aborted" | "client.call.declined" | "client.call.fallback" | "client.call.diagnostics" | "client.call.displayed" | "client.call.info" | "client.call.initiated" | "client.call.leave" | "client.call.move-media" | "client.call.remote-ended" | "client.call.remote-started" | "client.call.skip-locus-join" | "client.ci.exchange-token.request" | "client.ci.exchange-token.response" | "client.conversation.request" | "client.conversation.response" | "client.click.pre-join" | "client.crash" | "client.daemon.join.begin" | "client.daemon.job.done" | "client.daemon.launch-meeting-process" | "client.daemon.pending-on-existing-upgrade-job" | "client.daemon.query-site-info" | "client.daemon.upgrade-and-join" | "client.daemon.wakeup-meeting-client" | "client.duplicate.join" | "client.device.resource-room.joined" | "client.dialog-window.dismissed" | "client.dialog-window.selected" | "client.dialog-window.showed" | "client.e2ee.join.response" | "client.embedded-authorize-page.loaded" | "client.embedded-object-info" | "client.entering-background" | "client.entering-foreground" | "client.exit.app" | "client.gesture.recognition" | "client.hologram.initiated" | "client.hologram.stopped" | "client.hologram.remote.initiated" | "client.hologram.remote.stopped" | "client.hung" | "client.ice.end" | "client.ice.start" | "client.idbroker.authorize.request" | "client.idbroker.authorize.response" | "client.idbroker.client-credential.request" | "client.idbroker.client-credential.response" | "client.idbroker.cloud-reduced-scope.request" | "client.idbroker.direct-authorize.request" | "client.idbroker.direct-authorize.response" | "client.idbroker.cloud-reduced-scope.response" | "client.idbroker.exchange-token.request" | "client.idbroker.exchange-token.response" | "client.idbroker.kms-reduced-scope.request" | "client.idbroker.kms-reduced-scope.response" | "client.idbroker.scim.request" | "client.idbroker.scim.response" | "client.idbroker.user-invoke.request" | "client.idbroker.user-invoke.response" | "client.installer.start" | "client.installer.end" | "client.installer.download-app" | "client.installer.decompress-app" | "client.installer.fallback" | "client.installer.install-app" | "client.installer.launch-app" | "client.installer.switch.to.webapp" | "client.launcher.start" | "client.launcher.selfupgrade.start" | "client.launcher.selfupgrade.end" | "client.launcher.downloadapp.start" | "client.launcher.downloadapp.end" | "client.launcher.launchapp" | "client.launcher.end" | "client.launcher.restart.begin" | "client.launcher.restart.end" | "client.license.activations.request" | "client.license.activations.response" | "client.llm.connect.response" | "client.interstitial-window.launched" | "client.interstitial-window.start-launch" | "client.ivr.join.request" | "client.ivr.join.response" | "client.ivr.leave.request" | "client.ivr.leave.response" | "client.ivr.notify.request" | "client.ivr.notify.response" | "client.lobby.entered" | "client.lobby.exited" | "client.locus.decline.request" | "client.locus.join.request" | "client.locus.join.response" | "client.locus.leave.request" | "client.locus.leave.response" | "client.locus.media.request" | "client.locus.media.response" | "client.locus.sync.complete" | "client.media-engine.crash" | "client.media-engine.launched" | "client.media-engine.lost" | "client.media-engine.local-sdp-generated" | "client.media-engine.ready" | "client.media-engine.remote-sdp-received" | "client.media-engine.start-launch" | "client.media-device.ready" | "client.media-device.stop" | "client.media-device.error" | "client.media-status" | "client.media.capabilities" | "client.media.ready" | "client.media.reachability" | "client.media.reconnecting" | "client.media.recovered" | "client.media.render.start" | "client.media.render.stop" | "client.media.rx.start" | "client.media.rx.stop" | "client.media.share.csi.changed" | "client.media.tx.start" | "client.media.tx.stop" | "client.meetinginfo.request" | "client.meetinginfo.response" | "client.meetingmanagersdk.ipc.run" | "client.meeting.app-loaded" | "client.meeting.breakout-session.action" | "client.meeting.breakout-session.summary" | "client.meeting.browser-plugin.started" | "client.meeting.click.joinbutton" | "client.meeting.closed" | "client.meeting.disclaimer-window.accepted" | "client.meeting.disclaimer-window.closed" | "client.meeting.disclaimer-window.showed" | "client.meeting.docshow.request" | "client.meeting.docshow.response" | "client.meeting.e2e.u2c.response" | "client.meeting.e2e.wca.response" | "client.meeting.e2e.key.response" | "client.meeting.e2ee.u2c.response" | "client.meeting.e2ee.wca.response" | "client.meeting.e2ee.key.response" | "client.meeting.gpc.download" | "client.meeting.gpcparameter.request" | "client.meeting.gpcparameter.response" | "client.meeting.interstitial-window.closed" | "client.meeting.interstitial-window.showed" | "client.meeting.join.request" | "client.meeting.key-information" | "client.meeting.launched" | "client.meeting.login-window.clicked" | "client.meeting.login-window.closed" | "client.meeting.login-window.showed" | "client.meeting.login.response" | "client.meeting.people-insights.check.response" | "client.meeting.people-insights.query.response" | "client.meeting.ping.request" | "client.meeting.ping.response" | "client.meeting.plugin-extension.started" | "client.meeting.resume" | "client.meeting.report-log" | "client.meeting.session.connected" | "client.meeting.start-webexapp" | "client.meeting.start-launch" | "client.meeting.summary" | "client.meeting.user-action" | "client.meeting.validated" | "client.meeting.VDI.detect.plugin.response" | "client.meeting.VDI.connect.plugin.response" | "client.mercury.connection.lost" | "client.mercury.connection.restored" | "client.mercury.connection.start" | "client.mercury.connection.connected" | "client.multistream.sca.rx" | "client.multistream.sca.tx" | "client.multistream.scr.rx" | "client.multistream.scr.tx" | "client.muted" | "client.network.changed" | "client.notification.received" | "client.onboarding-window.start" | "client.onboarding-window.end" | "client.permission.closed" | "client.permission.prompted" | "client.pin.collected" | "client.pin.prompt" | "client.post.meeting.hook" | "client.pstnaudio.attempt.correlation" | "client.pstnaudio.attempt.finish" | "client.pstnaudio.attempt.skip" | "client.pstnaudio.attempt.start" | "client.roap-message.received" | "client.roap-message.sent" | "client.scheduling.initiate" | "client.scheduling.notification" | "client.share.floor-accept.notification" | "client.share.floor-grant.cancel-request" | "client.share.floor-grant.notification" | "client.share.floor-grant.request" | "client.share.floor-granted.local" | "client.share.initiated" | "client.share.layout.displayed" | "client.share.paused" | "client.share.selected-app" | "client.share.stopped" | "client.sign-in.start" | "client.sign-in.end" | "client.started-after-shutdown" | "client.started-from-crash" | "client.stuntrace.failed" | "client.switch.app" | "client.terminate.app" | "client.unmuted" | "client.webexapp.start-launch" | "client.webexapp.launched" | "client.login.start" | "client.login.end" | "client.startup.start" | "client.startup.end" | "client.switch.environment" | "client.u2c.limited-catalog.request" | "client.u2c.limited-catalog.response" | "client.u2c.signin-catalog.request" | "client.u2c.signin-catalog.response" | "client.upgrade-window.accepted" | "client.upgrade-window.closed" | "client.upgrade-window.showed" | "client.waiting.user-action" | "client.warhol.downloaded" | "client.wdm.device-registration.request" | "client.wdm.device-registration.response" | "client.webapp-download.start" | "client.webapp-download.in-progress" | "client.webapp-download.end" | "client.whiteboard.loaded" | "client.call.survey.trigger" | "meeting.initiated" | "meeting.converged.initiated" | "meeting.joined" | "page.click.pre-join" | "page.client.abort.join" | "page.client.interstitial-window.launched" | "page.meeting.browser-reset" | "page.meeting.close-browser" | "page.meeting.extension.started" | "page.meeting.extension.app.starting" | "page.meeting.extension.app.started" | "page.meeting.join-fallback.dismiss" | "page.meeting.join-fallback" | "page.meeting.launch-thinclient" | "page.meeting.launched-duplicate.context" | "page.meeting.loading" | "page.meeting.mobile.call" | "page.meeting.mobile.download" | "page.meeting.mobile.join-link" | "page.meeting.plugin.launch-meeting" | "page.meeting.run-plugin" | "page.meeting.switch.to.webapp" | "page.meeting.testing-plugin" | "page.meeting.testing-plugin.finished" | "page.meeting.tfs.start-download" | "page.meeting.urlprotocol.detect" | "page.meeting.waiting.user-action" | "page.meeting.webexapp.launched" | "page.meeting.webinstaller.started" | "page.meeting.webinstaller.ended" | "client.feature.ptplugin.distribution"; /** * Base type for the various identifiers used to connect the dots. * In general, these should be populated whenever possible. Subtypes may make a particular key required. * */ identifiers: { aggregatedBreakoutMoveId?: string; attendeeId?: string; participantId?: string; breakoutGroupId?: string; breakoutMoveId?: string; breakoutTrackingId?: string; breakoutSessionId?: string; browserId?: string; ciExchangeTokenUrl?: string; confluenceId?: string; /** * Set of identifiers dedicated to CPaaS clients * In general, these should be populated whenever possible. Subtypes may make a particular key required. * */ cpaasIdentifiers?: { imiTenantId: string; devClientId: string; imiServiceId: string; imiAppId: string; sessionId: string; sessionInstanceId: string; additionalProperties?: never; }; csdmDeviceUrl?: string; destinationBreakoutSessionId?: string; destinationLocusSessionId?: string; destinationLocusUrl?: string; destinationVenueId?: string; deviceId?: string; globalMeetingId?: string; installationId?: string; webexMeetingUUID?: string; ivrCallId?: string; ivrDialogId?: string; ivrId?: string; callId?: string; pairCallId?: string; llmWebsocketUrl?: string; locusCluster?: string; locusId?: string; locusJoinUrl?: string; locusSessionId?: string; locusStartTime?: string; locusUrl?: string; machineId?: string; mediaAgentAlias?: string; mediaAgentGroupId?: string; meetClusterName?: string; meetingInstanceId?: string; meetingLookupUrl?: string; meetingOrgId?: string; metricServiceUrl?: string; mercuryWebsocketUrl?: string; msteamsTenantGuid?: string; msteamsConferenceId?: string; msteamsMeetingId?: string; mtid?: string; oauth2ClientId?: string; orgId?: string; provisionalCorrelationId?: string; roomId?: string; sessionCorrelationId?: string; sharedMediaId?: string; sipCallId?: string; sipSessionId?: { local?: string; remote?: string; additionalProperties?: never; }; sipUri?: string; subConfId?: string; tenantId?: string; trackingId?: string; userId?: string; venueId?: string; venueUrl?: string; whiteboardUrl?: string; wdmDeviceRegistrationUrl?: string; webexConferenceId?: number; webexClusterName?: string; webexConferenceIdStr?: string; webexDataCenter?: string; webexGuestId?: number; webexMeetingId?: number; webexNodeId?: number; webexSiteId?: number; webexSiteName?: string; webexSiteUuid?: string; webexUserId?: number; webexWebDomain?: string; recordingId?: string; clientCorrelationId?: string; idForEndpointAB?: string; customerOrgId?: string; correlationId: string; additionalProperties?: never; }; errors?: { fatal: boolean; category: "signaling" | "media" | "network" | "other" | "expected"; errorDescription?: string; errorCode?: number; errorCodeStr?: string; httpCode?: number; errorCodeExt1?: number; errorData?: {}; rawErrorMessage?: string; mediaDeviceErrors?: string; shownToUser: boolean; serviceErrorCode?: number; name: | "media-engine" | "ice.failed" | "locus.response" | "locus.leave" | "client.leave" | "media-device" | "media-sca" | "wxc" | "service-api-error" | "network-error" | "Error_Success" | "other"; component?: string; additionalProperties?: never; }[]; /** * media quality error report such as no media or drop out */ clientMediaError?: { mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard"; mediaFailureType?: "noMedia" | "mediaDrop" | "mediaEvent"; isDropAtStart?: boolean; isJMF?: boolean; txError?: | "NO_ERROR" | "DEVICE_ERROR" | "LOAD_LIBRARY_ERROR" | "MCS_SESSION_CONNECT_ERROR" | "CB_SESSION_CREATE_ERROR" | "NO_FRAME_DECODE_ERROR" | "NO_PACKET_RECV_ERROR" | "LOW_VOLUME_ERROR" | "INITIAL_MEMORY_ERROR" | "MAC_VIRTUAL_AUDIO_DRV_ERROR" | "MMP_SESSION_CONNECT_ERROR" | "MEDIA_PROCESS_CRASH_ERROR" | "HEARTBEAT_LOST_WITH_MEDIA_PROCESS_ERROR" | "MEDIA_SERVER_CONNECT_ERROR" | "LOCUS_SESSION_CONNECT_ERROR" | "NO_PACKET_SEND_ERROR" | "NETWORK_LOST_ERROR" | "MEDIA_NOT_AVAILABLE" | "FAIL_TO_OPEN_SHARE_DIALOG"; rxError?: | "NO_ERROR" | "DEVICE_ERROR" | "LOAD_LIBRARY_ERROR" | "MCS_SESSION_CONNECT_ERROR" | "CB_SESSION_CREATE_ERROR" | "NO_FRAME_DECODE_ERROR" | "NO_PACKET_RECV_ERROR" | "LOW_VOLUME_ERROR" | "INITIAL_MEMORY_ERROR" | "MAC_VIRTUAL_AUDIO_DRV_ERROR" | "MMP_SESSION_CONNECT_ERROR" | "MEDIA_PROCESS_CRASH_ERROR" | "HEARTBEAT_LOST_WITH_MEDIA_PROCESS_ERROR" | "MEDIA_SERVER_CONNECT_ERROR" | "LOCUS_SESSION_CONNECT_ERROR" | "NO_PACKET_SEND_ERROR" | "NETWORK_LOST_ERROR" | "MEDIA_NOT_AVAILABLE" | "FAIL_TO_OPEN_SHARE_DIALOG"; txDeviceErrorCode?: number; rxDeviceErrorCode?: number; sessionConnectErrorCode?: number; firstDropTime?: string; totalDropCount?: number; failureDuration?: number; txMoreError?: string; rxMoreError?: string; totalUserWhenCBStartError?: number; sessionConnectExtErrorCode?: number; sessionConnectErrorType?: "unknown" | "MCC_error" | "MCS_error" | "Tahoe_error"; txSystemErrorCode?: number; rxSystemErrorCode?: number; errorDetails?: {}; additionalProperties?: never; }; /** * client reachability result */ reachability?: { age?: number; method?: "standard" | "standard-early" | "fast"; hasResult?: boolean; nodeCount?: number; duration?: number; reachableNodeCount?: number; source?: "memory-local-ips"; trigger?: | "early-call-local-network-changed" | "early-call-no-min-reached" | "expired" | "ice-failed" | "meeting-join" | "meeting-prejoin" | "meeting-prepare" | "network-ip-address-changed" | "network-ip-address-changed-vdi-hvd" | "network-ip-address-changed-vdi-thin-client" | "network-proxy-changed" | "network-proxy-changed-vdi-hvd" | "network-proxy-changed-vdi-thin-client" | "network-restored" | "network-vdi-switch-fallback-to-vdi" | "network-vdi-switch-vdi-to-fallback" | "startup"; joinCookie?: string; isJoinCookieUsed?: boolean; serverTime?: number; expiredAfter?: number; additionalProperties?: never; }; /** * End Trigger - indicate how the call was ended from client. Set in end of call events such as client.call.end, client.call.aborted */ endTrigger?: "ejected" | "end-meeting" | "leave" | "other"; trigger?: | "bricklet" | "call-history" | "carPlay" | "APNS" | "widget-meeting" | "user-activity" | "companion-join" | "app-hub" | "contact-profile" | "dialpad" | "exited-app" | "loci-update" | "mc-crosslaunch" | "media-engine-event" | "meetbutton-click" | "meetings-tab" | "meetings-tab-join-a-meeting" | "meetings-tab-start-a-meeting" | "meetings-tab-start-ai-notes" | "meetings-tab-calendar" | "message-click" | "mercury-event" | "obtp" | "onboarding-page" | "other" | "pairing" | "protocol" | "search" | "signaling" | "space-share" | "third-party-interop" | "timeout" | "toast" | "user-interaction" | "webinar-registration-page" | "web-ucf-crosslaunch" | "wireless-share" | "deep-link" | "protocol-after-upgrade" | "protocol-after-crash" | "protocol-refresh-token-expired" | "protocol-restart-and-join" | "protocol-generated-link" | "protocol-in-meeting-upgrade" | "protocol-single-interstitial-sign-in-join"; leaveReason?: "paired-leave" | "one-to-one" | "ended-by-locus"; displayLocation?: | "toast" | "room-list" | "call-pane" | "call-view" | "room" | "meeting-list" | "meeting" | "personal-meeting-room" | "intents" | "external-link" | "automation" | "meeting-information" | "contact-card" | "control-center" | "search-result" | "other"; displayType?: "scheduled"; dialedDomain?: string; isScheduled?: boolean; guestModeShare?: boolean; highFpsModeShare?: boolean; contentAudioShare?: boolean; pairingState?: "paired" | "observing" | "challenging"; pairedDevice?: { deviceId?: string; deviceJoinType?: string; devicePairingType?: string; deviceType?: string; deviceURL?: string; isPersonalDevice?: boolean; modelNumber?: string; productName?: string; tempSipUri?: string; additionalProperties?: never; }; /** * Information about the sender of the event */ oldOrigin?: { name: | "addin" | "antares" | "appapi" | "beech" | "breakout" | "calendar" | "cb" | "cca" | "ccc" | "cloudproxy" | "crc" | "edonus" | "endpoint" | "givr" | "hecate" | "hedge" | "hesiod" | "homer" | "idbroker" | "superhomer" | "l2sip" | "linus" | "locus" | "mbs" | "mcc" | "mcs" | "mercury" | "mes" | "mjs" | "mmp" | "mrs" | "mygdon" | "ngpage" | "ngservice" | "oauth" | "orpheus" | "page" | "poros" | "publicapi" | "rhesos" | "sbs" | "terminus" | "tpgw" | "ucc" | "wdm" | "webexivr" | "meetingcontainer"; userAgent: string; buildType?: "debug" | "test" | "prod" | "tap" | "analyzer-test"; /** * Will be used as a label for client software status */ upgradeChannel?: string; /** * (e.g. slowchannel, pinned release or an UUID). If the value is not known use NULL, or if its default channel 'system' */ upgradeSource?: string; /** * Identifier for a particular instance of a service, such as a particular linus */ instanceId?: string; networkType: "wifi" | "ethernet" | "cellular" | "unknown"; localIP?: string; usingProxy?: boolean; mediaEngineSoftwareVersion?: string; environment?: string; newEnvironment?: string; /** * Details of client environment */ clientInfo?: { os?: | "android" | "android-x64" | "android-arm64" | "chrome" | "ios" | "linux" | "mac" | "other" | "uwp-arm64" | "windows"; osVersion?: string; localIP?: string; gatewayIP?: string; macAddress?: string; localNetworkPrefix?: string; publicNetworkPrefix?: string; browserLaunchMethod?: | "activex" | "npapi" | "extension" | "cwsapi" | "java" | "tfs" | "webacd" | "url-handler" | "thinclient" | "switch-to-web" | "switch-to-native"; cwsStatus?: "starting-converged-mtg" | "webexapp-launched" | "webex-launcher-launched"; cwsVersion?: string; clientLaunchMethod?: | "url-handler" | "universal-link" | "voice-command" | "notification" | "manual" | "teams-cross-launch" | "mc-cross-launch" | "cws" | "installer" | "installer-launcher" | "launcher" | "cws-launcher"; urlProtocolLaunchMethod?: "auto" | "manual" | "extension-fallback"; browser?: string; browserVersion?: string; connectionDownlinkMbps?: number; connectionEffectiveType?: string; connectionThroughputMbps?: number; isSupportedBrowserFamily?: boolean; isOutdatedBrowserVersion?: boolean; /** * this defines the major client types */ clientType?: | "MEETING_CENTER" | "EVENT_CENTER" | "TRAINING_CENTER" | "TEAMS_CLIENT" | "TEAMS_DEVICE" | "TEAMS_SHARE" | "SIP" | "RECORDING" | "CLOUD_AWARE_SIP" | "TEAMS_WXC_CLIENT" | "WXC_CLIENT" | "WXC_DEVICE" | "WEBEX_JS_SDK" | "VOICEA_CLIENT" | "CISCO_SIP_GW" | "WEBEX_SDK" | "CPAAS_THIRD_PARTY_SDK" | "WXC_THIRD_PARTY" | "WXCC" | "TEAMS_PHONE" | "WEBEX_RELAY"; /** * this defines the sub types of clients */ subClientType?: | "AUTOMOTIVE_APP" | "BROWSER_EXTENSION" | "DESKTOP_APP" | "DESKTOP_APP_VDI" | "DEVICE_CURRENT" | "DEVICE_LEGACY_2020" | "HOLOGRAM_HEADSET_APP" | "HVDI_APP" | "MIXED" | "MOBILE_APP" | "MOBILE_NETWORK" | "PAGE" | "TEAMS_DEVICE" | "VDI_APP" | "WEB_APP" | "PHONE_NOVUM" | "PHONE_ESPRESSO" | "PHONE_BUMBLEBEE" | "SIP" | "SIP_PSTN"; /** * this defines the major client types for scheduling */ schedulingClientType?: | "GOOGLE_ADDON" | "GOOGLE_NOTIFICATION_CALENDAR" | "MSFT_NOTIFICATION_ADDIN" | "MSFT_NOTIFICATION_CALENDAR" | "OUTLOOK_ADDIN" | "PT" | "PUBLIC_API" | "TEAMS_CLIENT" | "UNIFIED_PAGE" | "WEBEX_PAGE"; clientVersion?: string; /** * this defines the client version status. Determined by call analyzer based on client major version */ clientVersionStatus?: "CURRENT" | "LEGACY" | "UNSUPPORTED"; localClientVersion?: string; launcherVersion?: string; installerVersion?: string; installerMajorVersion?: number; installerMinorVersion?: number; installerRevision?: number; modelNumber?: string; joinFirstUpdateLater?: "ep-enabled" | "sp-enabled" | "not-enabled"; standbyUsed?: boolean; prefetchDocShowUsed?: boolean; fastJoinUsed?: boolean; clientDownloadSize?: number; clientDownloadFileCount?: number; nodeId?: number; machineInfo?: string; parentAppName?: string; parentAppInPermitList?: boolean; meetingSiteType?: "train" | "webex-11" | "orion"; CDNEnabled?: boolean; clientMajorVersion?: string; majorVersion?: number; minorVersion?: number; revision?: number; isValidClientVersion?: boolean; /** * This object defines the fields related to the CPU being used by the emitter of the event */ cpuInfo?: { description: string; numberOfCores: number; architecture: | "intel32" | "intel64" | "amd32" | "amd64" | "arm32" | "arm64" | "armv9" | "armv8" | "armv7" | "armv6" | "x86_64" | "x86_32" | "unknown"; staticPerformance?: string; clockSpeedGigaHertz?: number; additionalProperties?: never; }; shareType?: | "cb-normal-share" | "ce-airplay-share" | "ce-direct-share" | "ce-gui-loopback-share" | "ce-input-source-share" | "ce-input-source-share-hdmi" | "ce-input-source-share-usbc" | "ce-jpg-share" | "ce-miracast-share" | "mcs-normal-share" | "mcs-normal-audio-share" | "mcs-hfps-share" | "mcs-hfps-audio-share"; /** * Video display mode currently in use */ videoDisplayMode?: "grid-view" | "active-speaker-view"; videoLayoutType?: | "stack" | "stackWithShare" | "sideBySide" | "sideBySideWithShare" | "grid" | "floatingActive" | "floatingThumbnail" | "floatingGrid" | "overlay" | "focus" | "prominent" | "focusWithShare" | "prominentWithShare" | "equal" | "equalWithShare" | "largeGallery" | "auto" | "autoWithShare"; appliedLayout?: | "stack" | "stackWithShare" | "sideBySide" | "sideBySideWithShare" | "grid" | "floatingActive" | "floatingThumbnail" | "floatingGrid" | "overlay" | "focus" | "prominent" | "focusWithShare" | "prominentWithShare" | "equal" | "equalWithShare" | "largeGallery" | "auto" | "autoWithShare"; /** * this defines the video render type of meetings */ videoRenderType?: "wme" | "client_d3d" | "client_gdi"; vdiInfo?: {}; is64BitsClient?: boolean; webexAppVersion?: string; /** * this defines launch 32 bits client reason */ launch32BitsReason?: | "forcewin32" | "disablewin64" | "platform_win32" | "platform_arm" | "platform_unknown" | "version_below_41.11"; inMeetingUpdate?: boolean; mtaVersion?: string; isWarholOpening?: boolean; vendorId?: string; staticPerformanceLevel?: string; staticPerformanceScore?: number; preInstalledTime?: string; preInstalledType?: "app" | "installer" | "launcher"; preInstalledVersion?: string; proxyInfo?: {}; additionalProperties?: never; }; /** * Details of the Web Installer package download, reported under origin.installerInfo */ installerInfo?: { packageSuffix?: string; packageArch?: string; launchId?: string; packageCount?: number; totalSize?: number; additionalProperties?: never; }; /** * Management mode applied to the Webex app. */ webexAppManagementType?: "UNMANAGED" | "MDM_ONLY" | "MAM_ONLY" | "MDM_AND_MAM"; emmVendorId?: string; isHybridMedia?: boolean; originData?: {}; serviceVersion?: string; additionalProperties?: never; }; reachabilityStatus?: "none" | "all-false" | "partial-success" | "all-success"; recoveredBy?: "retry" | "new"; joinType?: "auto" | "no-locus-join"; audioJoinType?: "phone-call-in" | "phone-call-back" | "voip" | "device-call-back" | "never-join-audio"; isVideoMuted?: boolean; isVPN?: boolean; /** * phrased HTTP timing */ joinHttpTiming?: { connect?: number; dnsLookup?: number; sendRequest?: number; compressRequest?: number; receiveResponse?: number; extractJson?: number; verifyCert?: number; refreshToken?: number; additionalProperties?: never; }; /** * phrased HTTP timing */ meetingInfoHttpTiming?: { connect?: number; dnsLookup?: number; sendRequest?: number; compressRequest?: number; receiveResponse?: number; extractJson?: number; verifyCert?: number; refreshToken?: number; additionalProperties?: never; }; /** * phrased HTTP timing */ floorRequestHttpTiming?: { connect?: number; dnsLookup?: number; sendRequest?: number; compressRequest?: number; receiveResponse?: number; extractJson?: number; verifyCert?: number; refreshToken?: number; additionalProperties?: never; }; icePhase?: "JOIN_MEETING_FINAL" | "JOIN_MEETING_RETRY" | "IN_MEETING"; iceResult?: {}; userType?: "host" | "attendee" | "cohost" | "panelist"; updateType?: "new-user" | "update-user" | "return-user"; userNameInput?: "new" | "current" | "changed"; emailInput?: "none" | "new" | "current" | "changed"; isRoapCallEnabled?: boolean; isFirstTimeUser?: boolean; isWebReturnUser?: boolean; webOnlyDayCrossLaunch?: boolean; responseCode?: number; /** * Join Meeting Time */ joinTimes?: { announceJmt?: number; appLoadTime?: number; audioCallbackJMT?: number; audioCBJMT?: number; audioICESetupTime?: number; audioMCCJMT?: number; audioMCSJMT?: number; audioPstnJMT?: number; audioTAJMT?: number; audioVOIPJMT?: number; cacheKeyTime?: number; callInitJoinReq?: number; callInitMediaEngineReady?: number; callInitLoginEnd?: number; cbJmt?: number; clickToInterstitial?: number; clickToInterstitialWithUserDelay?: number; clickToMediaOKJMT?: number; clientDecompressTime?: number; clientDownloadTime?: number; clientJmt?: number; clientPstnDialOutJMT?: number; connectVDITime?: number; decompressTime?: number; detectVDITime?: number; deviceCallbackJMT?: number; deviceParingJMT?: number; downloadIntelligenceModelsReqResp?: number; downloadMsiTime?: number; downloadTime?: number; exchangeCITokenJMT?: number; exchangeOnetimeTokenJMT?: number; getAppMetadataTime?: number; getDocShowTime?: number; getGPCParametersTime?: number; getPCParametersTime?: number; getReachabilityClustersReqResp?: number; getU2CTime?: number; getWCATime?: number; GLAJmt?: number; gotKeyTime?: number; e2eeKeyReadyTime?: number; guestSessionCreationTime?: number; guestTokenRetrievalTime?: number; ICESetupTime?: number; initializeCameraTime?: number; installAppTime?: number; installerJmt?: number; interstitialToLoginEnd?: number; interstitialToJoinOK?: number; interstitialToMediaOKJMT?: number; ivrSvcDialInFirstScript?: number; ivrSvcDialInTahoeJoin?: number; JMTDetail?: string; joinConfJmt?: number; joinReqResp?: number; joinRespAudioReady?: number; joinRespMediaEngineReady?: number; joinRespShareReady?: number; joinRespShareAudioReady?: number; joinRespVideoReady?: number; joinReqSentReceived?: number; joinRespSentReceived?: number; launchAppJmt?: number; localSDPGenRemoteSDPRecv?: number; locusBreakoutSessionMoveReqResp?: number; locusJoinReqResp?: number; locusLobbyMovedToMtgToClientExitedLobby?: number; loggedToInterstitial?: number; loginEndToInterstitialTime?: number; loginTime?: number; mediaEngineInitTime?: number; meetingInfoFetchTime?: number; meetingInfoReqResp?: number; mmpPreConnected?: boolean; moveVerifiedFilesTime?: number; networkLatency?: number; otherAppApiReqResp?: number; pageJmt?: number; pageLaunchThinClientToWebAppDownloadStart?: number; pageLoadingTime?: number; pageLoadingToLaunchThinClient?: number; pageLoadingToTFSStartDownload?: number; pageUrlProtocolDetectToWebexAppLaunched?: number; pageWebexInstallerStartToWebexAppLaunched?: number; pingJmt?: number; pluginJmt?: number; pstnDialInReferL2SIPJoinReq?: number; pstnDialInReferL2SIPRoapOk?: number; pstnIvrSvcCallSetup?: number; pstnIvrSvcDialOutAudioLatency?: number; pstnIvrSvcEarlyOfferDelay?: number; pstnIvrSvcJMT?: number; pstnIvrSvcMrsMeetingInfo?: number; pstnIvrSvcOfferToSipInvite?: number; pstnIvrSvcSipInviteToCancel?: number; pstnIvrSvcSipInviteToRinging?: number; qmlInterstitialLoadTime?: number; refreshCaptchaServiceReqResp?: number; registerWDMDeviceJMT?: number; roapAnswerTime?: number; roapOfferReqToOkTime?: number; roapOfferRespTime?: number; roapOkTime?: number; serverMeetingInfoReqResp?: number; sessionJMT?: number; shareICESetupTime?: number; showInterstitialTime?: number; stayLobbyTime?: number; TFSDownloadToWebexAppInstalled?: number; totalJmt?: number; totalJMTWithUserDelay?: number; totalMediaJMT?: number; totalMediaJMTWithUserDelay?: number; useKeyTime?: number; verifySignatureTime?: number; videoCBJMT?: number; videoICESetupTime?: number; videoJMT?: number; videoMCCJMT?: number; videoMCSJMT?: number; WDMRegistrationTime?: number; additionalProperties?: never; }; /** * ROAP message details */ roap?: { type?: | "ANSWER" | "ERROR" | "OFFER" | "OFFER_REQUEST" | "OFFER_RESPONSE" | "OK" | "OKAY" | "TURN_DISCOVERY_REQUEST" | "TURN_DISCOVERY_RESPONSE"; messageType?: | "ANSWER" | "ERROR" | "OFFER" | "OFFER_REQUEST" | "OFFER_RESPONSE" | "OK" | "OKAY" | "TURN_DISCOVERY_REQUEST" | "TURN_DISCOVERY_RESPONSE"; error?: string; duration?: number; seq?: number; additionalProperties?: never; }; /** * metadata associated with emitter of the event. This data is included only in the first emitted for a given call and does not need to be repeated with each event. */ mediaMetadata?: { mediaEngineSoftwareType: string; applicationSoftwareType: string; applicationSoftwareVersion: string; mediaEngineSoftwareVersion?: string; hardwareType?: string; clientRegion?: string; serverRegion?: string; serverOrg?: string; serverGroup?: string; serverAlias?: string; serverDeployType?: "private" | "public"; startTime: string; endTime?: string; csi?: number[]; isCascade?: boolean; isHybridMedia?: boolean; videoMeshClusterName?: string; videoMeshServerName?: string; isTIP?: boolean; isMARI?: boolean; has264Checksum?: boolean; intervalPeriod?: number; cascadePeerRegion?: string; cascadePeerOrg?: string; cascadePeerGroup?: string; cascadePeerAlias?: string; cascadePeerServerType?: | "CB" | "CMS" | "CRC" | "HESIOD" | "LINUS" | "MCC" | "MCS" | "MES" | "MJS" | "MRS" | "MYGDONUS" | "MZM" | "TERMINUS" | "TPGW" | "TA" | "HOMER" | "SUPERHOMER" | "U2C" | "WCA" | "MSE" | "UNKNOWN"; cascadePeerDeployType?: "private" | "public"; additionalProperties?: never; }; /** * Details of server environment */ serverInfo?: { serverType?: | "CB" | "CMS" | "CRC" | "HESIOD" | "LINUS" | "MCC" | "MCS" | "MES" | "MJS" | "MRS" | "MYGDONUS" | "MZM" | "TERMINUS" | "TPGW" | "TA" | "HOMER" | "SUPERHOMER" | "U2C" | "WCA" | "MSE" | "UNKNOWN"; serverAddress?: string; additionalProperties?: never; }; /** * Details of client connect session */ videoSession?: { mediaSessionType?: "AUDIO_CALLBACK" | "AUDIO_VOIP" | "DEVICE_CALLBACK" | "DEVICE_PAIRING" | "VIDEO"; isSuccess?: boolean; signalingServerType?: | "CB" | "CMS" | "CRC" | "HESIOD" | "LINUS" | "MCC" | "MCS" | "MES" | "MJS" | "MRS" | "MYGDONUS" | "MZM" | "TERMINUS" | "TPGW" | "TA" | "HOMER" | "SUPERHOMER" | "U2C" | "WCA" | "MSE" | "UNKNOWN"; signalingServerAddress?: string; mediaServerType?: | "CB" | "CMS" | "CRC" | "HESIOD" | "LINUS" | "MCC" | "MCS" | "MES" | "MJS" | "MRS" | "MYGDONUS" | "MZM" | "TERMINUS" | "TPGW" | "TA" | "HOMER" | "SUPERHOMER" | "U2C" | "WCA" | "MSE" | "UNKNOWN"; mediaServerAddress?: string; errorDescription?: string; errorCode?: number; mediaErrorType?: | "NO_ERROR" | "DEVICE_ERROR" | "LOAD_LIBRARY_ERROR" | "MCS_SESSION_CONNECT_ERROR" | "CB_SESSION_CREATE_ERROR" | "NO_FRAME_DECODE_ERROR" | "NO_PACKET_RECV_ERROR" | "LOW_VOLUME_ERROR" | "INITIAL_MEMORY_ERROR" | "MAC_VIRTUAL_AUDIO_DRV_ERROR" | "MMP_SESSION_CONNECT_ERROR" | "MEDIA_PROCESS_CRASH_ERROR" | "HEARTBEAT_LOST_WITH_MEDIA_PROCESS_ERROR" | "MEDIA_SERVER_CONNECT_ERROR" | "LOCUS_SESSION_CONNECT_ERROR" | "NO_PACKET_SEND_ERROR" | "NETWORK_LOST_ERROR" | "MEDIA_NOT_AVAILABLE" | "FAIL_TO_OPEN_SHARE_DIALOG"; isJoinAtStart?: boolean; additionalProperties?: never; }; /** * Details of client connect session */ audioVOIPSession?: { mediaSessionType?: "AUDIO_CALLBACK" | "AUDIO_VOIP" | "DEVICE_CALLBACK" | "DEVICE_PAIRING" | "VIDEO"; isSuccess?: boolean; signalingServerType?: | "CB" | "CMS" | "CRC" | "HESIOD" | "LINUS" | "MCC" | "MCS" | "MES" | "MJS" | "MRS" | "MYGDONUS" | "MZM" | "TERMINUS" | "TPGW" | "TA" | "HOMER" | "SUPERHOMER" | "U2C" | "WCA" | "MSE" | "UNKNOWN"; signalingServerAddress?: string; mediaServerType?: | "CB" | "CMS" | "CRC" | "HESIOD" | "LINUS" | "MCC" | "MCS" | "MES" | "MJS" | "MRS" | "MYGDONUS" | "MZM" | "TERMINUS" | "TPGW" | "TA" | "HOMER" | "SUPERHOMER" | "U2C" | "WCA" | "MSE" | "UNKNOWN"; mediaServerAddress?: string; errorDescription?: string; errorCode?: number; mediaErrorType?: | "NO_ERROR" | "DEVICE_ERROR" | "LOAD_LIBRARY_ERROR" | "MCS_SESSION_CONNECT_ERROR" | "CB_SESSION_CREATE_ERROR" | "NO_FRAME_DECODE_ERROR" | "NO_PACKET_RECV_ERROR" | "LOW_VOLUME_ERROR" | "INITIAL_MEMORY_ERROR" | "MAC_VIRTUAL_AUDIO_DRV_ERROR" | "MMP_SESSION_CONNECT_ERROR" | "MEDIA_PROCESS_CRASH_ERROR" | "HEARTBEAT_LOST_WITH_MEDIA_PROCESS_ERROR" | "MEDIA_SERVER_CONNECT_ERROR" | "LOCUS_SESSION_CONNECT_ERROR" | "NO_PACKET_SEND_ERROR" | "NETWORK_LOST_ERROR" | "MEDIA_NOT_AVAILABLE" | "FAIL_TO_OPEN_SHARE_DIALOG"; isJoinAtStart?: boolean; additionalProperties?: never; }; /** * Details of client connect session */ audioCallbackSession?: { mediaSessionType?: "AUDIO_CALLBACK" | "AUDIO_VOIP" | "DEVICE_CALLBACK" | "DEVICE_PAIRING" | "VIDEO"; isSuccess?: boolean; signalingServerType?: | "CB" | "CMS" | "CRC" | "HESIOD" | "LINUS" | "MCC" | "MCS" | "MES" | "MJS" | "MRS" | "MYGDONUS" | "MZM" | "TERMINUS" | "TPGW" | "TA" | "HOMER" | "SUPERHOMER" | "U2C" | "WCA" | "MSE" | "UNKNOWN"; signalingServerAddress?: string; mediaServerType?: | "CB" | "CMS" | "CRC" | "HESIOD" | "LINUS" | "MCC" | "MCS" | "MES" | "MJS" | "MRS" | "MYGDONUS" | "MZM" | "TERMINUS" | "TPGW" | "TA" | "HOMER" | "SUPERHOMER" | "U2C" | "WCA" | "MSE" | "UNKNOWN"; mediaServerAddress?: string; errorDescription?: string; errorCode?: number; mediaErrorType?: | "NO_ERROR" | "DEVICE_ERROR" | "LOAD_LIBRARY_ERROR" | "MCS_SESSION_CONNECT_ERROR" | "CB_SESSION_CREATE_ERROR" | "NO_FRAME_DECODE_ERROR" | "NO_PACKET_RECV_ERROR" | "LOW_VOLUME_ERROR" | "INITIAL_MEMORY_ERROR" | "MAC_VIRTUAL_AUDIO_DRV_ERROR" | "MMP_SESSION_CONNECT_ERROR" | "MEDIA_PROCESS_CRASH_ERROR" | "HEARTBEAT_LOST_WITH_MEDIA_PROCESS_ERROR" | "MEDIA_SERVER_CONNECT_ERROR" | "LOCUS_SESSION_CONNECT_ERROR" | "NO_PACKET_SEND_ERROR" | "NETWORK_LOST_ERROR" | "MEDIA_NOT_AVAILABLE" | "FAIL_TO_OPEN_SHARE_DIALOG"; isJoinAtStart?: boolean; additionalProperties?: never; }; /** * Details of client connect session */ devicePairingSession?: { mediaSessionType?: "AUDIO_CALLBACK" | "AUDIO_VOIP" | "DEVICE_CALLBACK" | "DEVICE_PAIRING" | "VIDEO"; isSuccess?: boolean; signalingServerType?: | "CB" | "CMS" | "CRC" | "HESIOD" | "LINUS" | "MCC" | "MCS" | "MES" | "MJS" | "MRS" | "MYGDONUS" | "MZM" | "TERMINUS" | "TPGW" | "TA" | "HOMER" | "SUPERHOMER" | "U2C" | "WCA" | "MSE" | "UNKNOWN"; signalingServerAddress?: string; mediaServerType?: | "CB" | "CMS" | "CRC" | "HESIOD" | "LINUS" | "MCC" | "MCS" | "MES" | "MJS" | "MRS" | "MYGDONUS" | "MZM" | "TERMINUS" | "TPGW" | "TA" | "HOMER" | "SUPERHOMER" | "U2C" | "WCA" | "MSE" | "UNKNOWN"; mediaServerAddress?: string; errorDescription?: string; errorCode?: number; mediaErrorType?: | "NO_ERROR" | "DEVICE_ERROR" | "LOAD_LIBRARY_ERROR" | "MCS_SESSION_CONNECT_ERROR" | "CB_SESSION_CREATE_ERROR" | "NO_FRAME_DECODE_ERROR" | "NO_PACKET_RECV_ERROR" | "LOW_VOLUME_ERROR" | "INITIAL_MEMORY_ERROR" | "MAC_VIRTUAL_AUDIO_DRV_ERROR" | "MMP_SESSION_CONNECT_ERROR" | "MEDIA_PROCESS_CRASH_ERROR" | "HEARTBEAT_LOST_WITH_MEDIA_PROCESS_ERROR" | "MEDIA_SERVER_CONNECT_ERROR" | "LOCUS_SESSION_CONNECT_ERROR" | "NO_PACKET_SEND_ERROR" | "NETWORK_LOST_ERROR" | "MEDIA_NOT_AVAILABLE" | "FAIL_TO_OPEN_SHARE_DIALOG"; isJoinAtStart?: boolean; additionalProperties?: never; }; /** * Details of client connect session */ deviceCallbackSession?: { mediaSessionType?: "AUDIO_CALLBACK" | "AUDIO_VOIP" | "DEVICE_CALLBACK" | "DEVICE_PAIRING" | "VIDEO"; isSuccess?: boolean; signalingServerType?: | "CB" | "CMS" | "CRC" | "HESIOD" | "LINUS" | "MCC" | "MCS" | "MES" | "MJS" | "MRS" | "MYGDONUS" | "MZM" | "TERMINUS" | "TPGW" | "TA" | "HOMER" | "SUPERHOMER" | "U2C" | "WCA" | "MSE" | "UNKNOWN"; signalingServerAddress?: string; mediaServerType?: | "CB" | "CMS" | "CRC" | "HESIOD" | "LINUS" | "MCC" | "MCS" | "MES" | "MJS" | "MRS" | "MYGDONUS" | "MZM" | "TERMINUS" | "TPGW" | "TA" | "HOMER" | "SUPERHOMER" | "U2C" | "WCA" | "MSE" | "UNKNOWN"; mediaServerAddress?: string; errorDescription?: string; errorCode?: number; mediaErrorType?: | "NO_ERROR" | "DEVICE_ERROR" | "LOAD_LIBRARY_ERROR" | "MCS_SESSION_CONNECT_ERROR" | "CB_SESSION_CREATE_ERROR" | "NO_FRAME_DECODE_ERROR" | "NO_PACKET_RECV_ERROR" | "LOW_VOLUME_ERROR" | "INITIAL_MEMORY_ERROR" | "MAC_VIRTUAL_AUDIO_DRV_ERROR" | "MMP_SESSION_CONNECT_ERROR" | "MEDIA_PROCESS_CRASH_ERROR" | "HEARTBEAT_LOST_WITH_MEDIA_PROCESS_ERROR" | "MEDIA_SERVER_CONNECT_ERROR" | "LOCUS_SESSION_CONNECT_ERROR" | "NO_PACKET_SEND_ERROR" | "NETWORK_LOST_ERROR" | "MEDIA_NOT_AVAILABLE" | "FAIL_TO_OPEN_SHARE_DIALOG"; isJoinAtStart?: boolean; additionalProperties?: never; }; /** * report when client crash */ crashReport?: { /** * data define for background noise removal event */ eventData?: { crashType?: "client" | "other" | "thirdparty" | "wme" | "mta"; processName?: string; moduleName?: string; threadInfo?: string; crashFrame?: string; crashStack?: string; exceptionType?: "unset" | "crash" | "freeze" | "disappear"; lastAction?: string; forTrace?: boolean; registerInfo?: string; extData?: string; additionalProperties?: never; }; additionalProperties?: never; }; clientCrashCallStack?: string; /** * Details of breakout session information, sent after end of breakout session */ breakoutSessionSummaryInfo?: { duration: number; subConferenceCount: number; totalAttendeeCount: number; participantCount: number; assignedparticipantCount: number; cohostCount: number; averageAttendeeCountPerSubConference: number; totalHostJoinedCount: number; isBoStarted: boolean; isBoEnabled: boolean; isPreAssigned: boolean; boStartedTimers: number; createType: "pre-meeting" | "in-meeting"; enableType: "pre-meeting" | "in-meeting"; additionalProperties?: never; }; breakoutSessionAction?: | "add" | "assign" | "ask-for-help" | "breakout-session-open" | "breakout-session-close" | "breakout-session-mute-all" | "breakout-session-unmute-all" | "broadcast-open" | "broadcast-send" | "cancel-automatic-close" | "create" | "delete" | "disable" | "dynamic-assign" | "dynamic-exchange" | "end" | "enable" | "exchange" | "join" | "leave" | "lock-all-sessions" | "lock-this-sessions" | "moveto" | "mute-all" | "mute-all-set" | "recreate" | "remove" | "rename" | "search" | "select-all" | "show-all-sessions" | "start" | "unmute-all" | "unlock-all-sessions" | "unlock-this-sessions" | "allow-leave-session" | "allow-join-session-later" | "auto-end-sessions" | "time-before-leave-session"; clientAction?: | "changeVolume" | "disableHardMute" | "enableHardMute" | "gesture" | "joinMeetingWithPairedDevice" | "muteAll" | "mutePairedDevice" | "muteSipDevice" | "reaction" | "requestUnmute" | "setLanguage" | "unifyRaiseHand" | "unmuteAll" | "unmutePairedDevice" | "unmuteSipDevice"; clientActionFrom?: | "actionBar" | "auto" | "breakoutAssignDialog" | "breakoutPopupDialog" | "fitMenu" | "hardMuteMoreOptionsDialog" | "initAction" | "mainMenu" | "plist" | "plistContextMenu" | "plistToolBar" | "videoThumbnail" | "muteAllAction" | "reactionPopupDialog" | "unmuteAllAction"; clientActionTime?: number; /** * Details of client action */ clientActionInfo?: { clientAction: | "changeVolume" | "disableHardMute" | "enableHardMute" | "gesture" | "joinMeetingWithPairedDevice" | "muteAll" | "mutePairedDevice" | "muteSipDevice" | "reaction" | "requestUnmute" | "setLanguage" | "unifyRaiseHand" | "unmuteAll" | "unmutePairedDevice" | "unmuteSipDevice"; actionFrom?: | "actionBar" | "auto" | "breakoutAssignDialog" | "breakoutPopupDialog" | "fitMenu" | "hardMuteMoreOptionsDialog" | "initAction" | "mainMenu" | "plist" | "plistContextMenu" | "plistToolBar" | "videoThumbnail" | "muteAllAction" | "reactionPopupDialog" | "unmuteAllAction"; actionRole?: "host" | "attendee" | "presenter" | "cohost" | "self"; duration?: number; fromValue?: string; toValue?: string; gestureType?: "clap" | "none" | "raiseHand" | "thumpUp" | "thumbDown"; languageAction?: | "openLanguageDialog" | "subscribeTransLanguage" | "unsubscribeTransLanguage" | "changeSpeakLanguage" | "transcriptTurnOnWebexAssistantDialog" | "transcriptTurnOffWebexAssistantDialog" | "transcriptTurnOnWebexAssistantMenu" | "transcriptTurn0ffWebexAssistantMenu" | "transcriptViewHighlightPanel" | "transcriptViewHighlightPanelViaCloseCaption" | "transcriptViewHighlightPanelViaPanelOption" | "transcriptViewHighlightPanelViaWebexAssistant" | "transcriptEnableCloseCaptionDialog" | "transcriptDisableCloseCaptionDialog" | "transcriptDisableCloseCaptionDialogForActiveCCOpen" | "transcriptDisableCloseCaptionDialogViaCCButton" | "transcriptDisableCloseCaptionDialogViaCCDialog" | "transcriptEnableCloseCaptionMenu" | "transcriptDisableCloseCaptionMenu" | "transcriptTabToCaptions" | "transcriptTabToHighlights" | "transcriptCreateHighlight" | "transcriptDeleteHighlightInHighlight" | "transcriptDeleteHighlightInCaptions" | "transcriptChangeFontSize" | "transcriptBackToDefaultPosition" | "transcriptChangeModeToDark" | "transcriptChangeModeToLight"; fromLanguage?: | "lan_af" | "lan_sq" | "lan_am" | "lan_ar" | "lan_hy" | "lan_az" | "lan_eu" | "lan_be" | "lan_bn" | "lan_bs" | "lan_bg" | "lan_ca" | "lan_ceb" | "lan_zh" | "lan_zh-TW" | "lan_co" | "lan_hr" | "lan_cs" | "lan_da" | "lan_nl" | "lan_en" | "lan_en-GB" | "lan_eo" | "lan_et" | "lan_fi" | "lan_fr" | "lan_fr-CA" | "lan_fy" | "lan_gl" | "lan_ka" | "lan_de" | "lan_el" | "lan_gu" | "lan_ht" | "lan_ha" | "lan_haw" | "lan_he" | "lan_hi" | "lan_hmn" | "lan_hu" | "lan_is" | "lan_ig" | "lan_id" | "lan_ga" | "lan_it" | "lan_ja" | "lan_jv" | "lan_kn" | "lan_kk" | "lan_km" | "lan_rw" | "lan_ko" | "lan_ku" | "lan_ky" | "lan_lo" | "lan_la" | "lan_lv" | "lan_lt" | "lan_lb" | "lan_mk" | "lan_mg" | "lan_ms" | "lan_ml" | "lan_mt" | "lan_mi" | "lan_mr" | "lan_mn" | "lan_my" | "lan_ne" | "lan_no" | "lan_ny" | "lan_or" | "lan_ps" | "lan_fa" | "lan_pl" | "lan_pt" | "lan_pa" | "lan_ro" | "lan_ru" | "lan_sm" | "lan_gd" | "lan_sr" | "lan_st" | "lan_sn" | "lan_sd" | "lan_si" | "lan_sk" | "lan_sl" | "lan_so" | "lan_es" | "lan_es-ES" | "lan_su" | "lan_sw" | "lan_sv" | "lan_tl" | "lan_tg" | "lan_ta" | "lan_tt" | "lan_te" | "lan_th" | "lan_tr" | "lan_tk" | "lan_uk" | "lan_ur" | "lan_ug" | "lan_uz" | "lan_vi" | "lan_cy" | "lan_xh" | "lan_yi" | "lan_yo" | "lan_zu"; toLanguage?: | "lan_af" | "lan_sq" | "lan_am" | "lan_ar" | "lan_hy" | "lan_az" | "lan_eu" | "lan_be" | "lan_bn" | "lan_bs" | "lan_bg" | "lan_ca" | "lan_ceb" | "lan_zh" | "lan_zh-TW" | "lan_co" | "lan_hr" | "lan_cs" | "lan_da" | "lan_nl" | "lan_en" | "lan_en-GB" | "lan_eo" | "lan_et" | "lan_fi" | "lan_fr" | "lan_fr-CA" | "lan_fy" | "lan_gl" | "lan_ka" | "lan_de" | "lan_el" | "lan_gu" | "lan_ht" | "lan_ha" | "lan_haw" | "lan_he" | "lan_hi" | "lan_hmn" | "lan_hu" | "lan_is" | "lan_ig" | "lan_id" | "lan_ga" | "lan_it" | "lan_ja" | "lan_jv" | "lan_kn" | "lan_kk" | "lan_km" | "lan_rw" | "lan_ko" | "lan_ku" | "lan_ky" | "lan_lo" | "lan_la" | "lan_lv" | "lan_lt" | "lan_lb" | "lan_mk" | "lan_mg" | "lan_ms" | "lan_ml" | "lan_mt" | "lan_mi" | "lan_mr" | "lan_mn" | "lan_my" | "lan_ne" | "lan_no" | "lan_ny" | "lan_or" | "lan_ps" | "lan_fa" | "lan_pl" | "lan_pt" | "lan_pa" | "lan_ro" | "lan_ru" | "lan_sm" | "lan_gd" | "lan_sr" | "lan_st" | "lan_sn" | "lan_sd" | "lan_si" | "lan_sk" | "lan_sl" | "lan_so" | "lan_es" | "lan_es-ES" | "lan_su" | "lan_sw" | "lan_sv" | "lan_tl" | "lan_tg" | "lan_ta" | "lan_tt" | "lan_te" | "lan_th" | "lan_tr" | "lan_tk" | "lan_uk" | "lan_ur" | "lan_ug" | "lan_uz" | "lan_vi" | "lan_cy" | "lan_xh" | "lan_yi" | "lan_yo" | "lan_zu"; reactionType?: | "celebrate" | "clap" | "haha" | "love" | "sad" | "smile" | "thumbUp" | "thumbDown" | "wow" | "collapse" | "disable" | "enable" | "disableGestures" | "enableGestures" | "expand" | "openMenu"; unifyRaiseHand?: "lowerHand" | "lowerAllHand" | "raiseHand"; additionalProperties?: never; }; clientEventType?: "normal-event" | "user-action"; /** * Audio background noise removal */ audioNoiseRemoval?: { /** * background noise removal action data */ actionData?: { bnrActionType: "turn-on-bnr" | "turn-off-bnr"; additionalProperties?: never; }; /** * background noise removal event data */ eventData?: { bnrEventType: "bnr-on" | "bnr-off"; additionalProperties?: never; }; additionalProperties?: never; }; /** * Details of client action */ gestureRecognition?: { supportedMachine?: boolean; gestureType?: "clap" | "none" | "raiseHand" | "thumpUp" | "thumbDown"; duration?: number; additionalProperties?: never; }; /** * post meeting hook report */ postMeetingHook?: { /** * data define for background noise removal action */ actionData?: { pmhActionType: "share" | "view-details" | "close"; pmhActionResult?: string; additionalProperties?: never; }; /** * data define for background noise removal event */ eventData?: { pmhEventType: "used" | "not-show-again"; additionalProperties?: never; }; additionalProperties?: never; }; breakoutSessionJoinType?: "any-one-can-join" | "auto" | "manual" | "preassign-rest"; breakoutSessionActionClickFrom?: | "actionbar" | "assign-dialog" | "auto" | "breakout-session-list" | "contextmenu" | "menu" | "plist" | "popup-dialog"; broadcastSendType?: | "all-sessions-all-participants" | "all-sessions-all-cohost-and-presenters" | "one-session-all-participants" | "one-session-one-participant"; breakoutSessionDialogOpenTime?: number; breakoutSessionDialogAssignTime?: number; /** * call embedded browser object result, if failed, will populate error at Error item */ embeddedBrowserObject?: { browserType: "IE" | "WebView2"; version?: string; callFrom?: string; additionalProperties?: never; }; /** * data define for download detail data */ downloadInfo?: { percentCompleted?: number; packageName?: string; timestamp?: string; clientDownloadFileCount?: number; clientDownloadSize?: number; clientDownloadTime?: number; clientDecompressTime?: number; CDNEnabled?: boolean; updateFlag?: "preMeeting" | "inMeeting" | "postMeeting"; epSP?: boolean; isEPUpdate?: boolean; spDifferent?: number; spVersionDelta?: number; deltaUpdate?: boolean; deltaListDownloadTime?: number; deltaPackageDownloadTime?: number; deltaCachePackageCopyTime?: number; deltaApplyTime?: number; deltaPackageUncompressTime?: number; deltaDuration?: number; deltaVersion?: string; deltaDownloadFullPackage?: boolean; deltaFileSize?: number; deltaUpdateEnabled?: boolean; deltaFullpackageDownloadEnabled?: boolean; deltaUpdateErrorType?: string; deltaUpdateSuccess?: string; deltaFullpackageDownloadVersion?: string; deltaFullpackageDownloadSuccess?: string; deltaUpdateCorrelationId?: string; deltaFullpackageDownloadCorrelationId?: string; deltaTargetVersion?: string; deltaLocalFullPackageVersions?: string; deltaUpdateFailReason?: string; deltaUpdateTimeStamp?: string; additionalProperties?: never; }; isInstallWebView2?: boolean; launchType?: "Cold" | "Hot" | "Warm"; loginType?: | "no-login" | "login-page" | "reuse-ci-token" | "reuse-site-token" | "login-ci" | "login-site" | "login-social" | "unverified-guest"; loginCrossSite?: boolean; crossBrowserLogin?: boolean; isMultiSiteUser?: boolean; /** * The metadata associated with the emitter of the event. This data is separate from the source metadata and must be emitted with every event. */ mediaQualityMetadata?: { peerReflexiveIP?: string; maskedPeerReflexiveIP?: string; remoteMediaIP?: string; maskedRemoteMediaIP?: string; /** * indicate user local ICE candidates IP type */ localIPType?: "IPTypeUnknown" | "IPv4Only" | "IPv6Only" | "DualIPType"; staticPerformanceLevel?: number; staticPerformanceScore?: number; processAverageCPU?: number; processAverageCPUWithTurbo?: number; processMaximumCPU?: number; systemAverageCPU?: number; systemAverageCPUWithTurbo?: number; systemAverageCPUTimeBased?: number; systemMaximumCPU?: number; systemMaximumCPUTimeBased?: number; systemAverageGPU?: number; systemMaximumGPU?: number; systemAverageVIC?: number; systemMaximumVIC?: number; systemAverageCPUPerfLoad?: number; systemMaximumCPUPerfLoad?: number; processAverageIdleWakeUps?: number; processMaximumIdleWakeUps?: number; processAveragePowerUsage?: number; processMaximumPowerUsage?: number; /** * this object defines the memory related fields that are tracked in media quality events and reports */ memoryUsage?: { processAverageMemoryUsage: number; processMaximumMemoryUsage: number; systemAverageMemoryUsage: number; systemMaximumMemoryUsage: number; processMaximumMemoryBytes: number; mainProcessMaximumMemoryBytes: number; systemTotalMemoryBytes?: number; osBitWidth: number; cpuBitWidth: number; additionalProperties?: never; }; /** * Indicates battery health. See https://developer.android.com/reference/android/os/BatteryManager for more information. */ batteryHealth?: "unknown" | "good" | "cold" | "overvoltage" | "overheat" | "unspecifiedfailure" | "dead"; /** * Provides visibility in charger type in use */ batteryPlugged?: "unknown" | "ac" | "usb" | "wireless" | "dock"; /** * Provides visibility into charging status */ batteryStatus?: "unknown" | "charging" | "discharging" | "notcharging" | "full"; /** * Battery temperature in celsius */ batteryTemperature?: number; /** * Provides visibility of customer experience in limited thermal headroom environments on Apple devices. See https://developer.apple.com/documentation/foundation/processinfo/thermalstate for more information. */ darwinThermalState?: number; androidThermalHeadroom?: number; /** * Indicates thermal status on Android devices. See https://developer.android.com/ndk/reference/group/thermal for more information. */ androidThermalStatus?: number; peripherals?: { name: "camera" | "microphone" | "speaker"; information?: string; driver?: string; errorCode?: string; subErrorCode?: string; captureFrameSize?: number; captureFps?: number; captureFrameworkType?: number; captureRawType?: number; deviceCapabilitiesTime?: number; connectionType?: {}; bluetoothMode?: {}; openDeviceCostTimeMilliSecond?: number; startCaptureCostTimeMilliSecond?: number; txSampleRate?: number; rxSampleRate?: number; isAAudioLowLatency?: number; isStartNDKFailed?: number; startPlaybackCostTimeMilliSecond?: number; changeCount?: number; /** * indicates capture device's system volume, between -1 and 100, -1 means invalid */ captureSystemVolume?: number; /** * indicates playback device's system volume, between -1 and 100, -1 means invalid */ playbackSystemVolume?: number; started?: boolean; sysAudioSEStatus?: number; isVolumeControlAvailable?: boolean; rawStreamStatus?: number; status?: string; initCaptureFrameworkType?: "unknown" | "dshow" | "mf" | "mfPrefer"; cameraRetried?: boolean; captureCameraType?: | "unknown" | "builtIn" | "aggregate" | "virtual" | "pci" | "usb" | "fireWire" | "bluetooth" | "hdmi" | "displayPort" | "airPlay" | "avb" | "thunderbolt" | "lineLevel" | "external" | "continuityCaptureWired" | "continuityCaptureWireless" | "audioRemote" | "iphoneCamera" | "deskViewCamera" | "virtualCamera" | "builtInMinijack"; captureCameraFailNum?: number; videoCaptureEnumTime?: number; additionalProperties?: never; }[]; /** * information object for the peripheral */ cameraInfo?: { name: "camera" | "microphone" | "speaker"; information?: string; driver?: string; errorCode?: string; subErrorCode?: string; captureFrameSize?: number; captureFps?: number; captureFrameworkType?: number; captureRawType?: number; deviceCapabilitiesTime?: number; connectionType?: {}; bluetoothMode?: {}; openDeviceCostTimeMilliSecond?: number; startCaptureCostTimeMilliSecond?: number; txSampleRate?: number; rxSampleRate?: number; isAAudioLowLatency?: number; isStartNDKFailed?: number; startPlaybackCostTimeMilliSecond?: number; changeCount?: number; /** * indicates capture device's system volume, between -1 and 100, -1 means invalid */ captureSystemVolume?: number; /** * indicates playback device's system volume, between -1 and 100, -1 means invalid */ playbackSystemVolume?: number; started?: boolean; sysAudioSEStatus?: number; isVolumeControlAvailable?: boolean; rawStreamStatus?: number; status?: string; initCaptureFrameworkType?: "unknown" | "dshow" | "mf" | "mfPrefer"; cameraRetried?: boolean; captureCameraType?: | "unknown" | "builtIn" | "aggregate" | "virtual" | "pci" | "usb" | "fireWire" | "bluetooth" | "hdmi" | "displayPort" | "airPlay" | "avb" | "thunderbolt" | "lineLevel" | "external" | "continuityCaptureWired" | "continuityCaptureWireless" | "audioRemote" | "iphoneCamera" | "deskViewCamera" | "virtualCamera" | "builtInMinijack"; captureCameraFailNum?: number; videoCaptureEnumTime?: number; additionalProperties?: never; }; /** * information object for the peripheral */ microphoneInfo?: { name: "camera" | "microphone" | "speaker"; information?: string; driver?: string; errorCode?: string; subErrorCode?: string; captureFrameSize?: number; captureFps?: number; captureFrameworkType?: number; captureRawType?: number; deviceCapabilitiesTime?: number; connectionType?: {}; bluetoothMode?: {}; openDeviceCostTimeMilliSecond?: number; startCaptureCostTimeMilliSecond?: number; txSampleRate?: number; rxSampleRate?: number; isAAudioLowLatency?: number; isStartNDKFailed?: number; startPlaybackCostTimeMilliSecond?: number; changeCount?: number; /** * indicates capture device's system volume, between -1 and 100, -1 means invalid */ captureSystemVolume?: number; /** * indicates playback device's system volume, between -1 and 100, -1 means invalid */ playbackSystemVolume?: number; started?: boolean; sysAudioSEStatus?: number; isVolumeControlAvailable?: boolean; rawStreamStatus?: number; status?: string; initCaptureFrameworkType?: "unknown" | "dshow" | "mf" | "mfPrefer"; cameraRetried?: boolean; captureCameraType?: | "unknown" | "builtIn" | "aggregate" | "virtual" | "pci" | "usb" | "fireWire" | "bluetooth" | "hdmi" | "displayPort" | "airPlay" | "avb" | "thunderbolt" | "lineLevel" | "external" | "continuityCaptureWired" | "continuityCaptureWireless" | "audioRemote" | "iphoneCamera" | "deskViewCamera" | "virtualCamera" | "builtInMinijack"; captureCameraFailNum?: number; videoCaptureEnumTime?: number; additionalProperties?: never; }; /** * information object for the peripheral */ speakerInfo?: { name: "camera" | "microphone" | "speaker"; information?: string; driver?: string; errorCode?: string; subErrorCode?: string; captureFrameSize?: number; captureFps?: number; captureFrameworkType?: number; captureRawType?: number; deviceCapabilitiesTime?: number; connectionType?: {}; bluetoothMode?: {}; openDeviceCostTimeMilliSecond?: number; startCaptureCostTimeMilliSecond?: number; txSampleRate?: number; rxSampleRate?: number; isAAudioLowLatency?: number; isStartNDKFailed?: number; startPlaybackCostTimeMilliSecond?: number; changeCount?: number; /** * indicates capture device's system volume, between -1 and 100, -1 means invalid */ captureSystemVolume?: number; /** * indicates playback device's system volume, between -1 and 100, -1 means invalid */ playbackSystemVolume?: number; started?: boolean; sysAudioSEStatus?: number; isVolumeControlAvailable?: boolean; rawStreamStatus?: number; status?: string; initCaptureFrameworkType?: "unknown" | "dshow" | "mf" | "mfPrefer"; cameraRetried?: boolean; captureCameraType?: | "unknown" | "builtIn" | "aggregate" | "virtual" | "pci" | "usb" | "fireWire" | "bluetooth" | "hdmi" | "displayPort" | "airPlay" | "avb" | "thunderbolt" | "lineLevel" | "external" | "continuityCaptureWired" | "continuityCaptureWireless" | "audioRemote" | "iphoneCamera" | "deskViewCamera" | "virtualCamera" | "builtInMinijack"; captureCameraFailNum?: number; videoCaptureEnumTime?: number; additionalProperties?: never; }; /** * This object defines the fields related to the CPU being used by the emitter of the event */ cpuInfo?: { description: string; numberOfCores: number; architecture: | "intel32" | "intel64" | "amd32" | "amd64" | "arm32" | "arm64" | "armv9" | "armv8" | "armv7" | "armv6" | "x86_64" | "x86_32" | "unknown"; staticPerformance?: string; clockSpeedGigaHertz?: number; additionalProperties?: never; }; /** * Thread level cpu performance insights */ cpuDataDetail?: { processesData?: {}[]; coresCpuData?: {}[]; coreVariance?: number; additionalProperties?: never; }; /** * This object defines the fields related to the GPU being used by the emitter of the event */ defaultGpuInfo?: { description: string; memoryMegaBytes: number; gpuVersion?: string; additionalProperties?: never; }; otherGpuInfo?: { description: string; memoryMegaBytes: number; gpuVersion?: string; additionalProperties?: never; }[]; /** * This object defines the fields related to the NPU being used by the emitter of the event */ npuInfo?: { description?: string; npuVersion?: string; memoryMegaBytes?: number; additionalProperties?: never; }; dpcRecord?: string[]; mediaLabels?: string[]; screenResolution?: number; screenWidth?: number; screenHeight?: number; appWindowSize?: number; appWindowHeight?: number; appWindowWidth?: number; meetingUserCount?: number; videoUserCount?: number; numScreens?: number; configuredBitrate?: number; configuredPixelRateMainVideo?: number; configuredPixelRateContentVideo?: number; /** * provisioning room type for CE devices */ roomType?: "Briefing" | "Classroom" | "Standard" | "PresenterAndAudience"; peopleCount?: number; /** * currently selected camera mode */ cameraMode?: | "Unknown" | "BestOverview" | "Closeup" | "Frames" | "GroupAndSpeaker" | "Desktop" | "Dynamic" | "Combined" | "Manual"; /** * type of crop/composition created by automatic framing on a video device */ cameraAppliedView?: { /** * name of the view */ viewName: "Overview" | "Closeup" | "Frames" | "OverlaidCloseup" | "Manual" | "Other"; /** * number of composed video panes (usually 1, but can be more in Frames view) */ numberOfVideoPanes: number; additionalProperties?: never; }; /** * This object tracks the evaluated bandwidth associated with Bandwidth Evaluator(MARI) */ evaluatedBandwidth?: { /** * The min bandwidth evaluated by the BW Evaluator (in bits per second) */ minBandwidth?: number; /** * The maximum bandwidth evaluated the BW Evaluator (in bits per second) */ maxBandwidth?: number; /** * The sum of bandwidth down adjustments (in bits per second) */ sumAdjustmentDown?: number; /** * The sum of bandwidth up adjustments (in bits per second) */ sumAdjustmentUp?: number; /** * Number of times bandwidth adjustment caused a change evaluated bandwidth */ countAdjustments?: number; /** * Number of times the Bandwidth Adjustment changed direction Up->Down/Down->Up */ countDirectionChange?: number; /** * Number of times the evaluated bandwidth was affected due to config change */ countConfigChange?: number; additionalProperties?: never; }; uiRenderMinimumFPS?: number; uiRenderMaximumFPS?: number; uiRenderAverageFPS?: number; /** * This object tracks TWCC report exchange(MARI) */ twccReports?: { /** * Number of RTP packets marked with TWSN */ packetsSentWithTwsn?: number; /** * Number of packets sent without TWSN */ packetsSentWithoutTwsn?: number; /** * Number of reports received */ reportsReceived?: number; /** * Number of reports lost */ reportsLost?: number; /** * Longest consecutive run of reports lost */ reportLossBurstLength?: number; /** * Number of packets not acknowledged due to loss of reports */ unacknowledgedPackets?: number; /** * Average bandwidth in kbps */ avgBandwidth?: number; /** * min bandwidth in interval (kbps) */ minBandwidth?: number; /** * max bandwidth in interval (kbps) */ maxBandwidth?: number; additionalProperties?: never; }; isCarbonAwareModeOn?: boolean; isCarbonAwareModeConfigured?: boolean; /** * Network infrastructure identification - uniquely identifies network elements (switches, WiFi APs, cell towers). */ networkInfrastructureInfo?: { /** * Friendly name of the network element (switch name, access point name, or cellular provider name). It can be empty example for wifi, the AP names can be hidden. */ elementName?: string; /** * ID is BSSID for WiFi- derived from AP's mac address, designed to be globally unique. ID is PLMN ID for Cellular- It is globally unique. ID is Chassis ID for Switch- derived from switch's mac address, designed to be globally unique. */ id: string; /** * LLDP Port ID or interface identifier on the switch or Service Set Identifier (WiFi network name) */ interfaceName?: string; additionalProperties?: never; }; additionalProperties?: never; }; sessionType?: | "AD_HOC" | "ADHOC_UNIFIED_SPACE_MEETING" | "ANSWERED_ELSEWHERE" | "BUTLER" | "CFNA" | "CMR_MEETING" | "DPC_CONTROL" | "EVENT_CENTER_MEETING" | "HALF_ZTM" | "JABBER" | "MEDIA" | "MS_TEAMS" | "NO_JOINS" | "REMOTE_ACCESS" | "SINGLE_PARTICIPANT" | "SIP_CALL" | "SIP_MEETING" | "SPACE_MEETING" | "SPACE_SHARE" | "SPARK_CALL" | "SPARK_MEETING" | "SPARK_SIP_CALL" | "SPARK_SIP_MEETING" | "UNIFIED_SPACE_MEETING" | "UNKNOWN" | "WHITEBOARD_ONLY_SHARE" | "WIRELESS_SHARE" | "ZTM"; /** * Aggregated information for mercury latency metric */ mercuryLatencyAggregates?: { mercuryEventCount?: number; timeOffsetWithMercury?: number; minTotalLatency?: number; avgTotalLatency?: number; maxTotalLatency?: number; maxTransmitDuration?: number; maxDispatchDuration?: number; maxSortDuration?: number; maxParseDuration?: number; maxMergeDuration?: number; additionalProperties?: never; }; /** * Maximum latency information during a meting */ mercuryMaxLatency?: { transmitDuration?: number; dispatchDuration?: number; sortDuration?: number; parseDuration?: number; mergeDuration?: number; additionalProperties?: never; }; /** * This object tracks the call setup time and call setup failure time. All delay attributes are in milliseconds. */ wxcCallingDelay?: { /** * provisional100Time - SDPReadyTime (outbounding only) */ inviteSentTo100Trying?: number; /** * provisional18xTime - provisional100Time */ sip100TryingToAlert?: number; /** * applyAudioSDPTime - provisional18xTime */ alertToAnswered?: number; /** * The fastest event's time between (firstAudioPacketReceivedTime, wmeReceivedAudioTime) - applyAudioSDPTime */ answerToPacketRecv?: number; /** * min(firstAudioPacketReceivedTime, wmeReceivedAudioTime) - joinCallTime - alertToAnswered (for Outgoing) OR min(firstAudioPacketReceivedTime, wmeReceivedAudioTime) (for Incoming, call setup time is from user press accept button to the first audio data received) */ callSetupTime?: number; /** * When the incoming call accept handling is started Or when the user initiate outgoing call. */ joinCallTime?: number; /** * When the Mobile client start the SIP registration. */ connectSipTime?: number; /** * When the Mobile client sip registration is ready. */ sipConnectedTime?: number; /** * When the client start initialization of the WME to get the required data for Audio SDP. */ startAudioSDPSetupTime?: number; /** * WME provided the required data for the SDP (Audio codecs, Start the listener and return the port, Acquire ICE candidates for audio). */ audioSDPReadyTime?: number; /** * When the client start initialisation of the WME to get the required data for Video SDP. */ startVideoSDPSetupTime?: number; /** * WME provided the required data for the SDP (Video codecs, Start the listener and return the port, Acquire ICE candidates for video). */ videoSDPReadyTime?: number; /** * Equal to startAudioSDPSetupTime */ startSDPSetupTime?: number; /** * The bigger one between audioSDPReadyTime and videoSDPReadyTime. */ SDPReadyTime?: number; /** * Before wmeTrack->start() for the local audio track. */ startLocalAudioTrackTime?: number; /** * After wmeTrack->start() for the local audio track. */ localAudioTrackStartedTime?: number; /** * Before wmeTrack->start() for the remote audio track. */ startRemoteAudioTrackTime?: number; /** * After wmeTrack->start() for the local audio track. */ remoteAudioTrackStartedTime?: number; /** * Before wmeTrack->start() for the local video track. */ startLocalVideoTrackTime?: number; /** * After wmeTrack->start() for the local video track. */ localVideoTrackStartedTime?: number; /** * Before wmeTrack->start() for the remote video track. */ startRemoteVideoTrackTime?: number; /** * After wmeTrack->start() for the remote video track. */ remoteVideoTrackStartedTime?: number; /** * Client send SIP INVITE. For outgoing and incoming calls on mobile and outgoing only on desktop. */ startSipInviteTime?: number; /** * 100 Trying is received */ provisional100Time?: number; /** * 180 or 183 provisional response is received. */ provisional18xTime?: number; /** * For outgoing calls 200OK with SDP is received. For incoming calls ACK of local SDP is received. Then all data from the SDP is provided to the WME. */ applyAudioSDPTime?: number; /** * Happens right after applyAudioSDPTime completes. */ applyVideoSDPTime?: number; /** * The time when the call is successfully established. */ callIsConnectedTime?: number; /** * This field represents the fastest event's time between first captured buffer and wmeSentAudioTime. Note, Almost all the time the value won't be changed. It will be changed only in case of delay of capture start and WME sends data which is not coming from microphone. */ firstAudioPacketSentTime?: number; /** * First audio packet from the remote side is received and send to the sound interface. */ firstAudioPacketReceivedTime?: number; /** * First packet is captured from the camera and sent to the remote side. */ firstVideoPacketSentTime?: number; /** * First packet is received from the remote side and sent to the renderer. */ firstVideoPacketReceivedTime?: number; /** * The data is coming from WME API OnSessionStatus(mediaType = WmeSessionType_Audio, status = WmeSession_Sent) */ wmeSentAudioTime?: number; /** * The data is coming from WME API OnSessionStatus(mediaType = WmeSessionType_Audio, status = WmeSession_Received) */ wmeReceivedAudioTime?: number; /** * The data is coming from WME API OnSessionStatus(mediaType = WmeSessionType_Video, status = WmeSession_Sent) */ wmeSentVideoTime?: number; /** * The data is coming from WME API OnSessionStatus(mediaType = WmeSessionType_Video, status = WmeSession_Received) */ wmeReceivedVideoTime?: number; /** * iOS specific. The audio session is activated. */ iosAudioSessionActiveTime?: number; /** * If the call was started in background then when the user unlocks the screen the time is recorded. At this time the camera will be opened. Meaningful only on iOS. */ switchedToForegroundTime?: number; /** * The time between call join and call close. */ callDuration?: number; /** * WmeMediaEngineEventType_Audio_DeviceStatus_Capture_Started */ audioCaptureStartedTime?: number; /** * WmeMediaEngineEventType_Audio_DeviceStatus_Playback_Started */ audioPlaybackStartedTime?: number; /** * WmeMediaEngineEventType_Audio_DeviceStatus_Capture_DataAvailable - first time */ firstCaptureDataAvailable?: number; /** * WmeMediaEngineEventType_Audio_DeviceStatus_Playback_DataAvailable - first time */ firstPlaybackDataAvailable?: number; /** * Timestamp in milliseconds of first VAD (voice activity detection) detected for capturer */ audioCaptureFirstSpeechTime?: number; /** * Timestamp in milliseconds of first WmeMediaEngineEventType_Audio_Processing_NotifyFirstSpeech. First time when VAD (voice activity detection) event is sent from WME for playback */ audioPlaybackFirstSpeechTime?: number; /** * Timestamp in milliseconds when audio capture restart algorithm is performed. The restart is triggered by client App if certain conditions are met */ audioCaptureRestartTime?: number; /** * Timestamp in milliseconds when audio playback restart algorithm is performed. The restart is triggered by client App if certain conditions are met. */ audioPlaybackRestartTime?: number; additionalProperties?: never; }; /** * Call type indication */ wxcCallMetadata?: { bwcCallId?: number; bwcCallType?: "Sip" | "Xsi" | "HandledElsewhere" | "Other"; callAcceptInBackground?: boolean; callNegotiatedAsVideo?: boolean; callOrigin?: string; callType?: string; clientMode?: string; dnsMode?: number; endReason?: string; endWarning?: string; hostCPUUsageDuringCall?: number; hostCPUUsageDuringCallSetup?: number; iceEnabled?: boolean; iosAcceptCallImmediately?: boolean; ipv6Negotiated?: boolean; isContactCenterCall?: boolean; isSipProxyIpv6?: boolean; mainCPUUsageDuringCall?: number; mainCPUUsageDuringCallSetup?: number; mediaCPUUsageDuringCall?: number; mediaCPUUsageDuringCallSetup?: number; mediaCreateOnCallCreate?: boolean; mediaStartOnCallCreate?: boolean; memMainProcessAvg?: number; memMainProcessMax?: number; memMediaProcessAvg?: number; memMediaProcessMax?: number; sipServiceIndex?: number; wxcCallId?: string; additionalProperties?: never; }; /** * Details of Media info */ mediaDetailInfo?: { /** * This object tracks the Audio device error statistics */ mediaDeviceErrorStatistics?: { /** * Number of WmeMediaEngineEventType_Audio_DeviceStatus_Capture_NoDataTimeout during the call */ captureInteruptionCount?: number; /** * Number of WmeMediaEngineEventType_Audio_DeviceStatus_Capture_DataAvailable during the call after WmeMediaEngineEventType_Audio_DeviceStatus_Capture_NoDataTimeout */ captureRecoveryCount?: number; /** * Timestamp in milliseconds of first WmeMediaEngineEventType_Audio_DeviceStatus_Capture_NoDataTimeout */ firstCaptureNoDataTimeout?: number; /** * Timestamp in milliseconds of first WmeMediaEngineEventType_Audio_DeviceStatus_Capture_DataAvailable after WmeMediaEngineEventType_Audio_DeviceStatus_Capture_NoDataTimeout */ firstCaptureNoDataRecovery?: number; /** * Minimum milliseconds between WmeMediaEngineEventType_Audio_DeviceStatus_Capture_DataAvailable and WmeMediaEngineEventType_Audio_DeviceStatus_Capture_NoDataTimeout */ minCaptureNoDataDuration?: number; /** * Maximum milliseconds between WmeMediaEngineEventType_Audio_DeviceStatus_Capture_DataAvailable and WmeMediaEngineEventType_Audio_DeviceStatus_Capture_NoDataTimeout */ maxCaptureNoDataDuration?: number; /** * Timestamp in milliseconds of WmeMediaEngineEventType_Audio_DeviceStatus_Capture_StartTimeout */ startCaptureTimeout?: number; /** * Number of WmeMediaEngineEventType_Audio_DeviceStatus_Playback_NoDataTimeout during the call */ playbackInteruptionCount?: number; /** * Number of WmeMediaEngineEventType_Audio_DeviceStatus_Playback_DataAvailable during the call after WmeMediaEngineEventType_Audio_DeviceStatus_Playback_NoDataTimeout */ playbackRecoveryCount?: number; /** * Timestamp in milliseconds of first WmeMediaEngineEventType_Audio_DeviceStatus_Playback_NoDataTimeout */ firstPlaybackNoDataTimeout?: number; /** * Timestamp in milliseconds of first WmeMediaEngineEventType_Audio_DeviceStatus_Playback_DataAvailable after WmeMediaEngineEventType_Audio_DeviceStatus_Playback_NoDataTimeout */ firstPlaybackNoDataRecovery?: number; /** * Minimum milliseconds between WmeMediaEngineEventType_Audio_DeviceStatus_Playback_DataAvailable and WmeMediaEngineEventType_Audio_DeviceStatus_Playback_NoDataTimeout */ minPlaybackNoDataDuration?: number; /** * Maximum milliseconds between WmeMediaEngineEventType_Audio_DeviceStatus_Playback_DataAvailable and WmeMediaEngineEventType_Audio_DeviceStatus_Playback_NoDataTimeout */ maxPlaybackNoDataDuration?: number; /** * Timestamp in milliseconds of WmeMediaEngineEventType_Audio_DeviceStatus_Playback_StartTimeout */ startPlaybackTimeout?: number; additionalProperties?: never; }; additionalProperties?: never; }; /** * Push notification processing metrics for incoming calls */ pushNotificationProcessing?: { bwcApproveSipConnectionTime?: number; bwcInitializationTime?: number; bwcPushNotificationReceivedTime?: number; canAnswerCallTime?: number; callPresentedToUserTime?: number; fcmArrivalProcessingDuration?: number; processPushNotificationTime?: number; servicesReadyTime?: number; startCoreFrameworkTime?: number; additionalProperties?: never; }; oauthProvider?: string; /** * monitor how much Client CPU and memory increase when an action started, such as start share, VBG */ clientPerformanceInfo?: { /** * Webex related process properties like name, CPU, memory. */ preStartShare?: { Webex?: {}; WebexHelperMedia?: {}; wasHost?: {}; wmlHost?: {}; WindowServer?: {}; kernel_task?: {}; replayd?: {}; dwm?: {}; system?: {}; top1CPUProcess?: {}; top2CPUProcess?: {}; top3CPUProcess?: {}; top4CPUProcess?: {}; top5CPUProcess?: {}; additionalProperties?: never; }; /** * Webex related process properties like name, CPU, memory. */ postStartShare?: { Webex?: {}; WebexHelperMedia?: {}; wasHost?: {}; wmlHost?: {}; WindowServer?: {}; kernel_task?: {}; replayd?: {}; dwm?: {}; system?: {}; top1CPUProcess?: {}; top2CPUProcess?: {}; top3CPUProcess?: {}; top4CPUProcess?: {}; top5CPUProcess?: {}; additionalProperties?: never; }; additionalProperties?: never; }; webClientPreload?: boolean; forceLogin?: boolean; /** * Call survey trigger data for client.call.survey.trigger event. This object only applies when callingServiceType is CUCM. */ callSurveyTriggerData?: { /** * Unique identifier for the call. */ callId: string; /** * Duration of the call in seconds. */ callDuration: number; /** * Indicates whether the user is a DI (Dedicated Instance) user. */ isDIUser: boolean; additionalProperties?: never; }; onboardingState?: string; /** * captures details of Smart Launcher Function in MJP (Meeting Join Page) that controls the type of client launched for meeting join */ smartLauncherInfo?: { enabled?: boolean; launchStrategy?: string; launchMethod?: "auto-launch-webapp" | "detect-native-auto-launch-webapp" | "detect-native"; additionalProperties?: never; }; dialogType?: DialogType; isAutomatedUser?: boolean; telemetryOptOut?: "automatic" | "manual"; /** * User activation state reported from the browser's navigator.userActivation API */ userActivation?: { hasBeenActive?: boolean; isActive?: boolean; additionalProperties?: never; }; /** * Resource types and their permission status and reason when permission is not granted */ privacyAndSecurityPermission?: { /** * Permission status and reason for a resource */ camera?: { /** * status of device permission given to client application */ status?: "DENIED" | "FAILED" | "GRANTED" | "REQUESTING" | "UNKNOWN"; /** * reason for permission change in privacy and security permission object as given to client application. This is used in PrivacyAndSecurityPermission library */ reason?: "ALREADY_IN_USE" | "DENIED_BY_USER" | "DENIED_BY_SYSTEM" | "NO_DEVICE_FOUND" | "UNKNOWN"; additionalProperties?: never; }; /** * Permission status and reason for a resource */ microphone?: { /** * status of device permission given to client application */ status?: "DENIED" | "FAILED" | "GRANTED" | "REQUESTING" | "UNKNOWN"; /** * reason for permission change in privacy and security permission object as given to client application. This is used in PrivacyAndSecurityPermission library */ reason?: "ALREADY_IN_USE" | "DENIED_BY_USER" | "DENIED_BY_SYSTEM" | "NO_DEVICE_FOUND" | "UNKNOWN"; additionalProperties?: never; }; /** * Permission status and reason for a resource */ contentShare?: { /** * status of device permission given to client application */ status?: "DENIED" | "FAILED" | "GRANTED" | "REQUESTING" | "UNKNOWN"; /** * reason for permission change in privacy and security permission object as given to client application. This is used in PrivacyAndSecurityPermission library */ reason?: "ALREADY_IN_USE" | "DENIED_BY_USER" | "DENIED_BY_SYSTEM" | "NO_DEVICE_FOUND" | "UNKNOWN"; additionalProperties?: never; }; additionalProperties?: never; }; /** * Leave State - Set in some client.call.leave events. Indicates if the leave state is a leave attempt, or if the leave attempt was cancelled */ leaveState?: "attempt" | "cancel"; isCatalogOverride?: boolean; additionalProperties?: never; } /* eslint-disable */ /** * This file was automatically generated by json-schema-to-typescript. * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file, * and run json-schema-to-typescript to regenerate this file. */ /** * Behavioural Events from Clients */ export interface FeatureEvent { canProceed?: boolean; state?: string; mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard" | "gamestate"; /** * Details associated with a share floor type */ floorType?: { name: "DEFAULT" | "EMBEDDED_APP" | "OTHER"; priority?: {}; additionalProperties?: never; }; csi?: number; /** * media capability for both transmit and receive */ mediaCapabilities?: { /** * explicit indication of media capabilities. true=supported */ tx: { audio: boolean; video: boolean; share: boolean; share_audio: boolean; whiteboard: boolean; gamestate?: boolean; additionalProperties?: never; }; /** * explicit indication of media capabilities. true=supported */ rx: { audio: boolean; video: boolean; share: boolean; share_audio: boolean; whiteboard: boolean; gamestate?: boolean; additionalProperties?: never; }; additionalProperties?: never; }; mediaLines?: { clusterName?: string; connectionType?: "none" | "direct" | "proxy"; direction: "sendrecv" | "sendonly" | "recvonly" | "inactive"; errorCode?: number; extension?: {}; failureDescription?: string; failureReason?: "network" | "transport" | "rejected" | "timeout" | "notstarted" | "succeeded"; iceMangled?: boolean; localIP?: string; localNetworkPrefix?: string; localPort?: number; mediaLineData?: {}; mediaType: "audio" | "video" | "share" | "share_audio" | "whiteboard" | "gamestate" | "all"; protocol: "udp" | "tcp" | "xtls" | "unknown"; recvRespTime?: string; remoteIP?: string; remotePort?: number; sentReqTime?: string; status?: "succeeded" | "in-progress" | "failed"; tlsDomain?: string; transactionId?: string; ufrag?: string; additionalProperties?: never; }[]; /** * allows client to specify media preferences */ clientMediaPreferences?: { preferTranscoding: boolean; additionalProperties?: never; }; pstnAudioType?: "dial-in" | "dial-out"; homeDataCenter?: string; success?: boolean; isTranscoded?: boolean; isGatewayed?: boolean; isComposed?: boolean; /** * determine how the events are processed as well as how the reports are aggregated and sliced */ registrationMode?: "SIP" | "Cloud" | "CloudAware"; /** * protocols used to help determine how the events are processed as well as how the reports are aggregated and sliced */ protocol?: "SIP" | "H323" | "H323_IP" | "Locus" | "WebRTC"; /** * The underlying service provider of the call. */ meetingPlatform?: "MsTeams" | "GoogleMeet" | "Zoom" | "Webex"; labels?: string[]; labelsStr?: string; webexServiceType?: "MC" | "EC" | "SC" | "TC" | "AA" | "RA" | "NBR" | "WRF" | "HOL"; /** * this defines the sub service type */ webexSubServiceType?: | "PMR" | "Event" | "Training" | "ScheduleMeeting" | "ScheduledMeeting" | "Webcast" | "Webinar" | "LargeScaleWebinar" | "others"; ivrDialogType?: | "MEDIA_ON_HOLD" | "ANNOUNCEMENT" | "TONE" | "COLLECT_PIN" | "PROMPT" | "MEDIA_SERVICE_AGENT" | "COLLECT"; ivrDialogResult?: | "SUCCESS" | "FAILURE" | "HOST_PIN_MATCH" | "GUEST_PIN_MATCH" | "PANELIST_PIN_MATCH" | "NO_MATCH" | "INVALID_PIN"; callType?: | "VIDEO_DIALIN" | "VIDEO_DIALOUT" | "CASCADE" | "HYBRID_CASCADE" | "PSTN_SIP" | "PSTN_DIALIN" | "PSTN_DIALOUT" | "PSTN_ONLY_DIALIN" | "PSTN_ONLY_DIALOUT" | "AUDIO_DIALIN" | "AUDIO_ONLY_DIALIN" | "H323" | "H323_IP" | "SIP_ENTERPRISE" | "SIP_MOBILE" | "SIP_NATIONAL" | "SIP_INTERNATIONAL" | "SIP_EMERGENCY" | "SIP_OPERATOR" | "SIP_SHORTCODE" | "SIP_TOLLFREE" | "SIP_PREMIUM" | "SIP_URI" | "SIP_INBOUND" | "UNKNOWN" | "ZTM" | "SIP_MEETING" | "SIP_DIALOUT" | "SIP_ONLY_DIALOUT"; eventData?: {}; derivedSipClientType?: | "SIP_CE_SINGLE_SCREEN" | "SIP_CE_MULTI_SCREEN" | "SIP_JABBER" | "SIP_TIP_SINGLE_SCREEN" | "SIP_TIP_THREE_SCREEN" | "SIP_PSTN" | "SIP_OTHER" | "SIP_WEBEX_CASCADE" | "SIP_NONE"; /** * this defines the major client types */ derivedClientType?: | "MEETING_CENTER" | "EVENT_CENTER" | "TRAINING_CENTER" | "TEAMS_CLIENT" | "TEAMS_DEVICE" | "TEAMS_SHARE" | "SIP" | "RECORDING" | "CLOUD_AWARE_SIP" | "TEAMS_WXC_CLIENT" | "WXC_CLIENT" | "WXC_DEVICE" | "WEBEX_JS_SDK" | "VOICEA_CLIENT" | "CISCO_SIP_GW" | "WEBEX_SDK" | "CPAAS_THIRD_PARTY_SDK" | "WXC_THIRD_PARTY" | "WXCC" | "TEAMS_PHONE" | "WEBEX_RELAY"; /** * this defines the sub types of clients */ derivedSubClientType?: | "AUTOMOTIVE_APP" | "BROWSER_EXTENSION" | "DESKTOP_APP" | "DESKTOP_APP_VDI" | "DEVICE_CURRENT" | "DEVICE_LEGACY_2020" | "HOLOGRAM_HEADSET_APP" | "HVDI_APP" | "MIXED" | "MOBILE_APP" | "MOBILE_NETWORK" | "PAGE" | "TEAMS_DEVICE" | "VDI_APP" | "WEB_APP" | "PHONE_NOVUM" | "PHONE_ESPRESSO" | "PHONE_BUMBLEBEE" | "SIP" | "SIP_PSTN"; meetingRole?: "PANELIST" | "ATTENDEE"; serverRole?: | "CONFERENCE" | "TRANSCODER" | "WHITEBOARD_INJECTOR" | "MS_TEAMS_CONFERENCE" | "RECORDING" | "GATEWAY" | "GATEWAY_CLIENT_SIDE" | "UNKNOWN" | "HOLOGRAM_RENDER" | "EDGE"; reconnect?: boolean; retryCount?: number; meetSimple?: boolean; /** * represents media quality status report such as no media or drop out */ mediaStatus?: { mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard"; mediaSuccess?: boolean; shareType?: | "cb-normal-share" | "ce-airplay-share" | "ce-direct-share" | "ce-gui-loopback-share" | "ce-input-source-share" | "ce-input-source-share-hdmi" | "ce-input-source-share-usbc" | "ce-jpg-share" | "ce-miracast-share" | "mcs-normal-share" | "mcs-normal-audio-share" | "mcs-hfps-share" | "mcs-hfps-audio-share"; isTransmitter?: boolean; audioJoinType?: | "phone-call-in" | "phone-call-back" | "voip" | "device-call-back" | "never-join-audio" | "tried-but-never-join"; /** * indicates transport type used */ transportType?: "UDP" | "TCP" | "xTLS" | "TLS"; additionalData?: {}; /** * information object for the peripheral */ mediaDeviceInfo?: { name: "camera" | "microphone" | "speaker"; information?: string; driver?: string; errorCode?: string; subErrorCode?: string; captureFrameSize?: number; captureFps?: number; captureFrameworkType?: number; captureRawType?: number; deviceCapabilitiesTime?: number; connectionType?: {}; bluetoothMode?: {}; openDeviceCostTimeMilliSecond?: number; startCaptureCostTimeMilliSecond?: number; txSampleRate?: number; rxSampleRate?: number; isAAudioLowLatency?: number; isStartNDKFailed?: number; startPlaybackCostTimeMilliSecond?: number; changeCount?: number; /** * indicates capture device's system volume, between -1 and 100, -1 means invalid */ captureSystemVolume?: number; /** * indicates playback device's system volume, between -1 and 100, -1 means invalid */ playbackSystemVolume?: number; started?: boolean; sysAudioSEStatus?: number; isVolumeControlAvailable?: boolean; rawStreamStatus?: number; status?: string; initCaptureFrameworkType?: "unknown" | "dshow" | "mf" | "mfPrefer"; cameraRetried?: boolean; captureCameraType?: | "unknown" | "builtIn" | "aggregate" | "virtual" | "pci" | "usb" | "fireWire" | "bluetooth" | "hdmi" | "displayPort" | "airPlay" | "avb" | "thunderbolt" | "lineLevel" | "external" | "continuityCaptureWired" | "continuityCaptureWireless" | "audioRemote" | "iphoneCamera" | "deskViewCamera" | "virtualCamera" | "builtInMinijack"; captureCameraFailNum?: number; videoCaptureEnumTime?: number; additionalProperties?: never; }; additionalProperties?: never; }; shareInstanceId?: string; ipVersion?: "IPv4" | "IPv6" | "Dual"; isTransmitter?: boolean; shareDuration?: number; stopReason?: string; shareStartReason?: string; hologramStreamId?: string; /** * represents all of the properities that could cause delay during media setup process. */ audioSetupDelay?: { floorReqSentReceived?: number; floorRespSentReceived?: number; mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard"; txReqFloorGranted?: number; txSessionCreateConfirm?: number; txApeEnrollConfirm?: number; txUIDelay?: number; txScreenCaptureDelay?: number; txScreenCaptureDelayReasonCode?: number; txShareStartOverallDelay?: number; floorGranted2tx1stPacketSendDelay?: number; rx1stPacket2RenderDelay?: number; rxGranted2RenderDelay?: number; rxFailFrameNumB4Success?: number; e2eFirstFrameDelay?: number; CBSessionRespToLocusFloorGrantDelay?: number; CBShareReceiveToServerShareTransmitDelay?: number; CBShareReceiveToTPGWFirstKeyFrameDelay?: number; /** * phrased HTTP timing */ floorRequestHttpTiming?: { connect?: number; dnsLookup?: number; sendRequest?: number; compressRequest?: number; receiveResponse?: number; extractJson?: number; verifyCert?: number; refreshToken?: number; additionalProperties?: never; }; TPGWFirstKeyFrameToServerShareTransmitDelay?: number; MCSSessionActivateToLocusFloorGrantDelay?: number; ServerShareInitiateToLocusFloorGrantDelay?: number; LocusFloorGrantToCBSessionStartDelay?: number; ServerShareReceiveToTPGWFirstKeyFrameDelay?: number; LocusFloorGrantToTPGWFloorGrantDelay?: number; LocusFloorGrantToReceiverNotificationDelay?: number; CBShareSessionRespDelay?: number; LocusShareFloorGrantRespDelay?: number; LocusFloorReqToRespDelay?: number; ServerShareFloorGrantRespDelay?: number; joinRespRxStart?: number; joinRespTxStart?: number; maxRemoteLossRate?: number; media2SignalDelay?: number; warholDownloadTime?: number; contentDownloadTime?: number; boardCreationTime?: number; totalBoardServiceRespDelay?: number; additionalProperties?: never; }; /** * represents all of the properities that could cause delay during media setup process. */ videoSetupDelay?: { floorReqSentReceived?: number; floorRespSentReceived?: number; mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard"; txReqFloorGranted?: number; txSessionCreateConfirm?: number; txApeEnrollConfirm?: number; txUIDelay?: number; txScreenCaptureDelay?: number; txScreenCaptureDelayReasonCode?: number; txShareStartOverallDelay?: number; floorGranted2tx1stPacketSendDelay?: number; rx1stPacket2RenderDelay?: number; rxGranted2RenderDelay?: number; rxFailFrameNumB4Success?: number; e2eFirstFrameDelay?: number; CBSessionRespToLocusFloorGrantDelay?: number; CBShareReceiveToServerShareTransmitDelay?: number; CBShareReceiveToTPGWFirstKeyFrameDelay?: number; /** * phrased HTTP timing */ floorRequestHttpTiming?: { connect?: number; dnsLookup?: number; sendRequest?: number; compressRequest?: number; receiveResponse?: number; extractJson?: number; verifyCert?: number; refreshToken?: number; additionalProperties?: never; }; TPGWFirstKeyFrameToServerShareTransmitDelay?: number; MCSSessionActivateToLocusFloorGrantDelay?: number; ServerShareInitiateToLocusFloorGrantDelay?: number; LocusFloorGrantToCBSessionStartDelay?: number; ServerShareReceiveToTPGWFirstKeyFrameDelay?: number; LocusFloorGrantToTPGWFloorGrantDelay?: number; LocusFloorGrantToReceiverNotificationDelay?: number; CBShareSessionRespDelay?: number; LocusShareFloorGrantRespDelay?: number; LocusFloorReqToRespDelay?: number; ServerShareFloorGrantRespDelay?: number; joinRespRxStart?: number; joinRespTxStart?: number; maxRemoteLossRate?: number; media2SignalDelay?: number; warholDownloadTime?: number; contentDownloadTime?: number; boardCreationTime?: number; totalBoardServiceRespDelay?: number; additionalProperties?: never; }; /** * represents all of the properities that could cause delay during media setup process. */ shareSetupDelay?: { floorReqSentReceived?: number; floorRespSentReceived?: number; mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard"; txReqFloorGranted?: number; txSessionCreateConfirm?: number; txApeEnrollConfirm?: number; txUIDelay?: number; txScreenCaptureDelay?: number; txScreenCaptureDelayReasonCode?: number; txShareStartOverallDelay?: number; floorGranted2tx1stPacketSendDelay?: number; rx1stPacket2RenderDelay?: number; rxGranted2RenderDelay?: number; rxFailFrameNumB4Success?: number; e2eFirstFrameDelay?: number; CBSessionRespToLocusFloorGrantDelay?: number; CBShareReceiveToServerShareTransmitDelay?: number; CBShareReceiveToTPGWFirstKeyFrameDelay?: number; /** * phrased HTTP timing */ floorRequestHttpTiming?: { connect?: number; dnsLookup?: number; sendRequest?: number; compressRequest?: number; receiveResponse?: number; extractJson?: number; verifyCert?: number; refreshToken?: number; additionalProperties?: never; }; TPGWFirstKeyFrameToServerShareTransmitDelay?: number; MCSSessionActivateToLocusFloorGrantDelay?: number; ServerShareInitiateToLocusFloorGrantDelay?: number; LocusFloorGrantToCBSessionStartDelay?: number; ServerShareReceiveToTPGWFirstKeyFrameDelay?: number; LocusFloorGrantToTPGWFloorGrantDelay?: number; LocusFloorGrantToReceiverNotificationDelay?: number; CBShareSessionRespDelay?: number; LocusShareFloorGrantRespDelay?: number; LocusFloorReqToRespDelay?: number; ServerShareFloorGrantRespDelay?: number; joinRespRxStart?: number; joinRespTxStart?: number; maxRemoteLossRate?: number; media2SignalDelay?: number; warholDownloadTime?: number; contentDownloadTime?: number; boardCreationTime?: number; totalBoardServiceRespDelay?: number; additionalProperties?: never; }; /** * represents all of the properities that could cause delay during media setup process. */ shareAudioSetupDelay?: { floorReqSentReceived?: number; floorRespSentReceived?: number; mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard"; txReqFloorGranted?: number; txSessionCreateConfirm?: number; txApeEnrollConfirm?: number; txUIDelay?: number; txScreenCaptureDelay?: number; txScreenCaptureDelayReasonCode?: number; txShareStartOverallDelay?: number; floorGranted2tx1stPacketSendDelay?: number; rx1stPacket2RenderDelay?: number; rxGranted2RenderDelay?: number; rxFailFrameNumB4Success?: number; e2eFirstFrameDelay?: number; CBSessionRespToLocusFloorGrantDelay?: number; CBShareReceiveToServerShareTransmitDelay?: number; CBShareReceiveToTPGWFirstKeyFrameDelay?: number; /** * phrased HTTP timing */ floorRequestHttpTiming?: { connect?: number; dnsLookup?: number; sendRequest?: number; compressRequest?: number; receiveResponse?: number; extractJson?: number; verifyCert?: number; refreshToken?: number; additionalProperties?: never; }; TPGWFirstKeyFrameToServerShareTransmitDelay?: number; MCSSessionActivateToLocusFloorGrantDelay?: number; ServerShareInitiateToLocusFloorGrantDelay?: number; LocusFloorGrantToCBSessionStartDelay?: number; ServerShareReceiveToTPGWFirstKeyFrameDelay?: number; LocusFloorGrantToTPGWFloorGrantDelay?: number; LocusFloorGrantToReceiverNotificationDelay?: number; CBShareSessionRespDelay?: number; LocusShareFloorGrantRespDelay?: number; LocusFloorReqToRespDelay?: number; ServerShareFloorGrantRespDelay?: number; joinRespRxStart?: number; joinRespTxStart?: number; maxRemoteLossRate?: number; media2SignalDelay?: number; warholDownloadTime?: number; contentDownloadTime?: number; boardCreationTime?: number; totalBoardServiceRespDelay?: number; additionalProperties?: never; }; /** * represents all of the properities that could cause delay during media setup process. */ whiteboardSetupDelay?: { floorReqSentReceived?: number; floorRespSentReceived?: number; mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard"; txReqFloorGranted?: number; txSessionCreateConfirm?: number; txApeEnrollConfirm?: number; txUIDelay?: number; txScreenCaptureDelay?: number; txScreenCaptureDelayReasonCode?: number; txShareStartOverallDelay?: number; floorGranted2tx1stPacketSendDelay?: number; rx1stPacket2RenderDelay?: number; rxGranted2RenderDelay?: number; rxFailFrameNumB4Success?: number; e2eFirstFrameDelay?: number; CBSessionRespToLocusFloorGrantDelay?: number; CBShareReceiveToServerShareTransmitDelay?: number; CBShareReceiveToTPGWFirstKeyFrameDelay?: number; /** * phrased HTTP timing */ floorRequestHttpTiming?: { connect?: number; dnsLookup?: number; sendRequest?: number; compressRequest?: number; receiveResponse?: number; extractJson?: number; verifyCert?: number; refreshToken?: number; additionalProperties?: never; }; TPGWFirstKeyFrameToServerShareTransmitDelay?: number; MCSSessionActivateToLocusFloorGrantDelay?: number; ServerShareInitiateToLocusFloorGrantDelay?: number; LocusFloorGrantToCBSessionStartDelay?: number; ServerShareReceiveToTPGWFirstKeyFrameDelay?: number; LocusFloorGrantToTPGWFloorGrantDelay?: number; LocusFloorGrantToReceiverNotificationDelay?: number; CBShareSessionRespDelay?: number; LocusShareFloorGrantRespDelay?: number; LocusFloorReqToRespDelay?: number; ServerShareFloorGrantRespDelay?: number; joinRespRxStart?: number; joinRespTxStart?: number; maxRemoteLossRate?: number; media2SignalDelay?: number; warholDownloadTime?: number; contentDownloadTime?: number; boardCreationTime?: number; totalBoardServiceRespDelay?: number; additionalProperties?: never; }; isFocus?: boolean; processingDelay?: number; shareResourceType?: | "APPLICATION_OR_WINDOW" | "CAMERA" | "DEFAULT" | "EMBEDDED_APP" | "FILE" | "MOBILE_FILE" | "MOBILE_SCREEN_MIRRORING" | "SCREEN"; shareResourceName?: string; shareType?: | "cb-normal-share" | "ce-airplay-share" | "ce-direct-share" | "ce-gui-loopback-share" | "ce-input-source-share" | "ce-input-source-share-hdmi" | "ce-input-source-share-usbc" | "ce-jpg-share" | "ce-miracast-share" | "mcs-normal-share" | "mcs-normal-audio-share" | "mcs-hfps-share" | "mcs-hfps-audio-share"; isShareBeingTakenOver?: boolean; floorBeneficiaryUpdated?: boolean; meetingJoinedTime?: string; /** * join phase of event */ meetingJoinPhase?: "pre-join" | "join" | "in-meeting"; meetingScheduledTime?: string; seconds2StartTime?: number; e2eeKeyEpoch?: number; e2eeDecompressRatio?: number; keyResponses?: { gotKeyTime?: number; useKeyTime?: number; cacheKeyTime?: number; additionalProperties?: never; }[]; e2eeVersion?: "E2EEV1" | "E2EEV2" | "E2EEV3" | "E2EEV4" | "E2EEV4_PLUS" | "E2EEV4_B" | "E2EEV5"; isZeroTrust?: boolean; /** * Version of SFrame in use. */ sframeVersion?: "SFRAMEV1" | "SFRAMEV2"; isConvergedArchitectureEnabled?: boolean; isCustomBrowser?: boolean; callingServiceType?: "CUCM" | "WEBEXCALLING" | "BROADWORKS" | "LOCUS" | "BROADCLOUDCARRIER"; supplementaryMediaSessionType?: "DirectShare"; isPaired?: boolean; inLobby?: boolean; isVIPMeeting?: boolean; webexAppEntrypoint?: string; firstParticipant?: boolean; isImmersiveShare?: boolean; /** * Request/Response Time for Internal Services / Clients */ registeredTimestamps?: { locusCreateConfluenceRequestTime?: string; locusCreateConfluenceResponseTime?: string; locusCreateVenueRequestTime?: string; locusCreateVenueResponseTime?: string; interstitialWindowLaunchedTime?: string; additionalProperties?: never; }; skipInterstitialWindow?: boolean; callDurationSecs?: number; connectionDurationSecs?: number; lobbyType?: string; callDirection?: "ORIGINATING" | "TERMINATING"; /** * Details associated with a breakout move */ breakout?: { moveType?: "between_breakout" | "to_breakout" | "to_main"; trigger?: "assignment_changed" | "client_initiated" | "session_ended" | "session_started"; startState?: "joined" | "lobby"; endState?: "joined" | "lobby"; additionalProperties?: never; }; /** * Latency values associated with breakout session */ breakoutLatency?: { clientBreakoutMoveReqJoinResp?: number; boBreakoutMoveProcessed?: number; boBreakoutMoveResp?: number; boLocusBreakoutMoveResp?: number; locusBreakoutMoveResp?: number; orpheusConfluenceMoveReqResp?: number; additionalProperties?: never; }; /** * two-way whiteboard related info */ whiteboard?: { action?: "open" | "create"; type?: "whiteboard" | "annotation"; capability?: "one_way" | "two_way"; granted?: "one_way" | "two_way"; additionalProperties?: never; }; /** * ROAP message details */ roap?: { type?: | "ANSWER" | "ERROR" | "OFFER" | "OFFER_REQUEST" | "OFFER_RESPONSE" | "OK" | "OKAY" | "TURN_DISCOVERY_REQUEST" | "TURN_DISCOVERY_RESPONSE"; messageType?: | "ANSWER" | "ERROR" | "OFFER" | "OFFER_REQUEST" | "OFFER_RESPONSE" | "OK" | "OKAY" | "TURN_DISCOVERY_REQUEST" | "TURN_DISCOVERY_RESPONSE"; error?: string; duration?: number; seq?: number; additionalProperties?: never; }; /** * Pstn Carrier Infos */ pstnCarrierInfo?: { cic?: string; carrierName?: string; ucreDnsSrvs?: string[]; additionalProperties?: never; }; pstnAudioCallType?: "PSTN" | "CCA_E" | "CCA_SP" | "EDGE_AUDIO" | "CCA_S" | "VMN_AUDIO"; l2sipCallbackUrl?: string; ivrDialingStatusOriginator?: "L2SIP" | "CLOUD_PROXY" | "CARRIER" | "UNIDENTIFIED"; cic?: string; carrierName?: string; originator?: string; ucreDnsSrvs?: string[]; ivrServiceUcreAttempts?: number; antiFraudPolicyType?: string; antiFraudBlocked?: boolean; sipResponseCode?: | "100_Trying" | "183_Ringing" | "200_Ok" | "404_NotFound" | "407_ProxyAuthRequired" | "486_BusyHere" | "503_ServiceUnavailable" | "606_NotAcceptable"; /** * details of scheduling information */ schedulingInfo?: { /** * this defines calendar type for scheduling */ calendarType?: "exchange_online" | "exchange_onprem" | "google" | "other" | "webex"; /** * this defines meeting categories for scheduling */ meetingCategory?: "AdhocUSM" | "Instant" | "Scheduled" | "ScheduledPMR" | "ScheduledUSM" | "SpaceMeetingV1"; /** * this defines where the meeting was scheduled from */ scheduledFrom?: | "ADDIN_O365" | "ADDIN_ONPREM" | "ADHOC_USM" | "AT_WEBEX_GOOGLE" | "AT_WEBEX_MSFT" | "AT_MEET_GOOGLE" | "AT_MEET_MSFT" | "GOOGLE_ADDON" | "INSTANT_MEETING" | "OTHER" | "PT" | "PUBLIC_API" | "TEAMS_CLIENT" | "TEAMS_CLIENT_CROSS_LAUNCH" | "UNIFIED_PAGE" | "WEBEX_PAGE"; /** * this defines meeting categories for scheduling */ schedulingOperationType?: "prepare" | "create" | "update" | "delete"; additionalProperties?: never; }; /** * details of setting information */ settingInfo?: { /** * this defines where the type of Setting being modified/updated */ settingType: "AUDIO_VIDEO" | "EMAIL_TEMPLATE" | "GENERAL" | "PMR" | "RECORDING" | "SCHEDULING" | "WEBEX_SITE"; additionalProperties?: never; }; sessionJoinCount?: number; /** * indicates transport type used */ transportType?: "UDP" | "TCP" | "xTLS" | "TLS"; joinFlowVersion?: "NewFTE" | "Other"; locale?: string; accessNumber?: string; isVVipMeeting?: boolean; /** * Login-related information. */ loginInfo?: { loginType?: "user-hub" | "control-hub" | "meeting-site" | "global-sign-in-page" | "web-client" | "native-client"; method?: "idbroker" | "enterprise" | "social"; grantType?: "client-credential" | "authorization-code" | "scope-reduction"; /** * Sign-in Time */ signInDelay?: { signInTime?: number; additionalProperties?: never; }; signInSignUpType?: "sign-in" | "sign-up"; userFound?: boolean; additionalProperties?: never; }; isPrivateMeeting?: boolean; /** * Low Latency Mercury latency measurements */ llmLatency?: { clientLLMDatachannelResponseTime?: number; clientLLMWebSocketConnectTime?: number; additionalProperties?: never; }; /** * Sync Latency measurements. Expected to be sent in client.locus.sync.complete and locus.sync.sent events that could be triggered in a converged webinar session */ syncLatency?: { randomBackoffTime?: number; hashtreePrepTime?: number; hashtreeProcessingTime?: number; hashtreeResponseTime?: number; syncPrepTime?: number; syncResponseTime?: number; syncProcessingTime?: number; syncMessageReceiveTime?: number; totalTime?: number; additionalProperties?: never; }; /** * Low Latency Mercury related information. */ llmInfo?: { dataSet?: "main" | "atd-active" | "atd-unmuted"; additionalProperties?: never; }; name: | "client.feature.audio.noise.removal" | "client.feature.embedded-object-info" | "client.feature.gesture.recognition" | "client.feature.meeting.breakout-session.action" | "client.feature.meeting.breakout-session.summary" | "client.feature.meeting.download.summary" | "client.feature.meeting.people-insights.check.response" | "client.feature.meeting.people-insights.query.response" | "client.feature.meeting.problem-report.submit" | "client.feature.meeting.summary" | "client.feature.meeting.teams.launch" | "client.feature.meeting.user-action" | "client.feature.mta.launched" | "client.feature.report" | "client.feature.vdi.collect.thinclient.log" | "client.feature.webexapplauncher.install-webexapp"; /** * Base type for the various identifiers used to connect the dots. * In general, these should be populated whenever possible. Subtypes may make a particular key required. * */ identifiers: { aggregatedBreakoutMoveId?: string; attendeeId?: string; participantId?: string; breakoutGroupId?: string; breakoutMoveId?: string; breakoutTrackingId?: string; breakoutSessionId?: string; browserId?: string; ciExchangeTokenUrl?: string; confluenceId?: string; /** * Set of identifiers dedicated to CPaaS clients * In general, these should be populated whenever possible. Subtypes may make a particular key required. * */ cpaasIdentifiers?: { imiTenantId: string; devClientId: string; imiServiceId: string; imiAppId: string; sessionId: string; sessionInstanceId: string; additionalProperties?: never; }; csdmDeviceUrl?: string; destinationBreakoutSessionId?: string; destinationLocusSessionId?: string; destinationLocusUrl?: string; destinationVenueId?: string; deviceId?: string; globalMeetingId?: string; installationId?: string; webexMeetingUUID?: string; ivrCallId?: string; ivrDialogId?: string; ivrId?: string; callId?: string; pairCallId?: string; llmWebsocketUrl?: string; locusCluster?: string; locusId?: string; locusJoinUrl?: string; locusSessionId?: string; locusStartTime?: string; locusUrl?: string; machineId?: string; mediaAgentAlias?: string; mediaAgentGroupId?: string; meetClusterName?: string; meetingInstanceId?: string; meetingLookupUrl?: string; meetingOrgId?: string; metricServiceUrl?: string; mercuryWebsocketUrl?: string; msteamsTenantGuid?: string; msteamsConferenceId?: string; msteamsMeetingId?: string; mtid?: string; oauth2ClientId?: string; orgId?: string; provisionalCorrelationId?: string; roomId?: string; sessionCorrelationId?: string; sharedMediaId?: string; sipCallId?: string; sipSessionId?: { local?: string; remote?: string; additionalProperties?: never; }; sipUri?: string; subConfId?: string; tenantId?: string; trackingId?: string; userId?: string; venueId?: string; venueUrl?: string; whiteboardUrl?: string; wdmDeviceRegistrationUrl?: string; webexConferenceId?: number; webexClusterName?: string; webexConferenceIdStr?: string; webexDataCenter?: string; webexGuestId?: number; webexMeetingId?: number; webexNodeId?: number; webexSiteId?: number; webexSiteName?: string; webexSiteUuid?: string; webexUserId?: number; webexWebDomain?: string; recordingId?: string; clientCorrelationId?: string; idForEndpointAB?: string; customerOrgId?: string; correlationId: string; additionalProperties?: never; }; trigger?: "user-interaction"; errors?: { fatal: boolean; category: "signaling" | "media" | "network" | "other" | "expected"; errorDescription?: string; errorCode?: number; errorCodeStr?: string; httpCode?: number; errorCodeExt1?: number; errorData?: {}; rawErrorMessage?: string; mediaDeviceErrors?: string; shownToUser: boolean; serviceErrorCode?: number; name: | "media-engine" | "ice.failed" | "locus.response" | "locus.leave" | "client.leave" | "media-device" | "media-sca" | "wxc" | "service-api-error" | "network-error" | "Error_Success" | "other"; component?: string; additionalProperties?: never; }[]; pairingState?: "paired" | "observing" | "challenging"; userType?: "host" | "attendee" | "cohost" | "panelist"; updateType?: "new-user" | "update-user" | "return-user"; migrationToUCFType?: "new-install" | "upgrade" | "force-upgrade" | "upgrade-not-needed" | "install-not-needed"; isFirstTimeUser?: boolean; /** * Details of server environment */ serverInfo?: { serverType?: | "CB" | "CMS" | "CRC" | "HESIOD" | "LINUS" | "MCC" | "MCS" | "MES" | "MJS" | "MRS" | "MYGDONUS" | "MZM" | "TERMINUS" | "TPGW" | "TA" | "HOMER" | "SUPERHOMER" | "U2C" | "WCA" | "MSE" | "UNKNOWN"; serverAddress?: string; additionalProperties?: never; }; /** * Details of breakout session information, sent after end of breakout session */ breakoutSessionSummaryInfo?: { duration: number; subConferenceCount: number; totalAttendeeCount: number; participantCount: number; assignedparticipantCount: number; cohostCount: number; averageAttendeeCountPerSubConference: number; totalHostJoinedCount: number; isBoStarted: boolean; isBoEnabled: boolean; isPreAssigned: boolean; boStartedTimers: number; createType: "pre-meeting" | "in-meeting"; enableType: "pre-meeting" | "in-meeting"; additionalProperties?: never; }; /** * Details of meeting summary information */ meetingSummaryInfo?: { featureReportSummary?: { featureName: {}; usage: boolean; usageDuration?: number; toggle: boolean; clickCount: number; isMachineSupport: boolean; additionalProperties?: never; }[]; featureActionSummary?: { featureName: {}; featureActions: {}[]; additionalProperties?: never; }[]; featureEventSummary?: { featureName: {}; featureEvents: {}[]; additionalProperties?: never; }[]; /** * Details of MeetingInfo. */ meetingInfo?: { simultaneousMeetingCount?: number; totalBreakoutSessionCount?: number; totalAttendeeCount?: number; currentUserCountWhenLeaving?: number; isE2EEnable?: boolean; isModernE2EEnable?: boolean; isWbxTraceOverWrite?: boolean; isAnonymousMeeting?: boolean; serverCipher?: string; mediaCipher?: string; additionalProperties?: never; }; /** * Details of SurveyInfo. */ surveyInfo?: { surveyCount: number; surveyLocalClientVersion?: string; surveyDate?: string; additionalProperties?: never; }; languageType?: | "lan_af" | "lan_sq" | "lan_am" | "lan_ar" | "lan_hy" | "lan_az" | "lan_eu" | "lan_be" | "lan_bn" | "lan_bs" | "lan_bg" | "lan_ca" | "lan_ceb" | "lan_zh" | "lan_zh-TW" | "lan_co" | "lan_hr" | "lan_cs" | "lan_da" | "lan_nl" | "lan_en" | "lan_en-GB" | "lan_eo" | "lan_et" | "lan_fi" | "lan_fr" | "lan_fr-CA" | "lan_fy" | "lan_gl" | "lan_ka" | "lan_de" | "lan_el" | "lan_gu" | "lan_ht" | "lan_ha" | "lan_haw" | "lan_he" | "lan_hi" | "lan_hmn" | "lan_hu" | "lan_is" | "lan_ig" | "lan_id" | "lan_ga" | "lan_it" | "lan_ja" | "lan_jv" | "lan_kn" | "lan_kk" | "lan_km" | "lan_rw" | "lan_ko" | "lan_ku" | "lan_ky" | "lan_lo" | "lan_la" | "lan_lv" | "lan_lt" | "lan_lb" | "lan_mk" | "lan_mg" | "lan_ms" | "lan_ml" | "lan_mt" | "lan_mi" | "lan_mr" | "lan_mn" | "lan_my" | "lan_ne" | "lan_no" | "lan_ny" | "lan_or" | "lan_ps" | "lan_fa" | "lan_pl" | "lan_pt" | "lan_pa" | "lan_ro" | "lan_ru" | "lan_sm" | "lan_gd" | "lan_sr" | "lan_st" | "lan_sn" | "lan_sd" | "lan_si" | "lan_sk" | "lan_sl" | "lan_so" | "lan_es" | "lan_es-ES" | "lan_su" | "lan_sw" | "lan_sv" | "lan_tl" | "lan_tg" | "lan_ta" | "lan_tt" | "lan_te" | "lan_th" | "lan_tr" | "lan_tk" | "lan_uk" | "lan_ur" | "lan_ug" | "lan_uz" | "lan_vi" | "lan_cy" | "lan_xh" | "lan_yi" | "lan_yo" | "lan_zu"; additionalProperties?: never; }; /** * Audio background noise removal */ audioNoiseRemoval?: { /** * background noise removal action data */ actionData?: { bnrActionType: "turn-on-bnr" | "turn-off-bnr"; additionalProperties?: never; }; /** * background noise removal event data */ eventData?: { bnrEventType: "bnr-on" | "bnr-off"; additionalProperties?: never; }; additionalProperties?: never; }; /** * Details of client action */ gestureRecognition?: { supportedMachine?: boolean; gestureType?: "clap" | "none" | "raiseHand" | "thumpUp" | "thumbDown"; duration?: number; additionalProperties?: never; }; /** * post meeting hook report */ postMeetingHook?: { /** * data define for background noise removal action */ actionData?: { pmhActionType: "share" | "view-details" | "close"; pmhActionResult?: string; additionalProperties?: never; }; /** * data define for background noise removal event */ eventData?: { pmhEventType: "used" | "not-show-again"; additionalProperties?: never; }; additionalProperties?: never; }; /** * Details of problem report information */ problemReportInfo?: { logId: string; fileSize: number; uploadStage: "connect" | "upload"; collectWMETime?: number; collectTopicTime?: number; collectSystemInfoTime?: number; collectMeetingDataTime?: number; collectDumpTime?: number; collectCPUTime?: number; zipTime?: number; connectTime?: number; uploadTime?: number; totalTime?: number; uploadErrorMessage?: string; additionalProperties?: never; }; /** * Details of breakout session information */ breakoutSessionInfo?: { breakoutSessionAction: | "add" | "assign" | "ask-for-help" | "breakout-session-open" | "breakout-session-close" | "breakout-session-mute-all" | "breakout-session-unmute-all" | "broadcast-open" | "broadcast-send" | "cancel-automatic-close" | "create" | "delete" | "disable" | "dynamic-assign" | "dynamic-exchange" | "end" | "enable" | "exchange" | "join" | "leave" | "lock-all-sessions" | "lock-this-sessions" | "moveto" | "mute-all" | "mute-all-set" | "recreate" | "remove" | "rename" | "search" | "select-all" | "show-all-sessions" | "start" | "unmute-all" | "unlock-all-sessions" | "unlock-this-sessions" | "allow-leave-session" | "allow-join-session-later" | "auto-end-sessions" | "time-before-leave-session"; breakoutSessionJoinType?: "any-one-can-join" | "auto" | "manual" | "preassign-rest"; breakoutSessionActionClickFrom?: | "actionbar" | "assign-dialog" | "auto" | "breakout-session-list" | "contextmenu" | "menu" | "plist" | "popup-dialog"; broadcastSendType?: | "all-sessions-all-participants" | "all-sessions-all-cohost-and-presenters" | "one-session-all-participants" | "one-session-one-participant"; breakoutSessionDialogOpenTime?: number; breakoutSessionDialogAssignTime?: number; additionalProperties?: never; }; /** * call embedded browser object result, if failed, will populate error at Error item */ embeddedBrowserObject?: { browserType: "IE" | "WebView2"; version?: string; callFrom?: string; additionalProperties?: never; }; /** * TeamsLaunchWebexMeeting report */ teamsLaunchWebexMeeting?: { /** * data define for TeamsLaunchWebexMeeting event */ eventData?: { tlmEevntType: "sync-preference" | "sip-call-launch" | "skip-interstitial" | "ipc-ready" | "ipc-failed"; ipcConnectTime?: number; additionalProperties?: never; }; /** * data define for TeamsLaunchWebexMeeting action */ actionData?: { tlmActionType: "change-audio" | "change-video"; additionalProperties?: never; }; /** * data define for TeamsLaunchWebexMeeting data from */ dataFrom?: { tlmFromType: "webex-meeting" | "webex-teams"; additionalProperties?: never; }; additionalProperties?: never; }; /** * Details of language action */ languageActionInfo?: { languageAction: | "openLanguageDialog" | "subscribeTransLanguage" | "unsubscribeTransLanguage" | "changeSpeakLanguage" | "transcriptTurnOnWebexAssistantDialog" | "transcriptTurnOffWebexAssistantDialog" | "transcriptTurnOnWebexAssistantMenu" | "transcriptTurn0ffWebexAssistantMenu" | "transcriptViewHighlightPanel" | "transcriptViewHighlightPanelViaCloseCaption" | "transcriptViewHighlightPanelViaPanelOption" | "transcriptViewHighlightPanelViaWebexAssistant" | "transcriptEnableCloseCaptionDialog" | "transcriptDisableCloseCaptionDialog" | "transcriptDisableCloseCaptionDialogForActiveCCOpen" | "transcriptDisableCloseCaptionDialogViaCCButton" | "transcriptDisableCloseCaptionDialogViaCCDialog" | "transcriptEnableCloseCaptionMenu" | "transcriptDisableCloseCaptionMenu" | "transcriptTabToCaptions" | "transcriptTabToHighlights" | "transcriptCreateHighlight" | "transcriptDeleteHighlightInHighlight" | "transcriptDeleteHighlightInCaptions" | "transcriptChangeFontSize" | "transcriptBackToDefaultPosition" | "transcriptChangeModeToDark" | "transcriptChangeModeToLight"; fromLanguage?: | "lan_af" | "lan_sq" | "lan_am" | "lan_ar" | "lan_hy" | "lan_az" | "lan_eu" | "lan_be" | "lan_bn" | "lan_bs" | "lan_bg" | "lan_ca" | "lan_ceb" | "lan_zh" | "lan_zh-TW" | "lan_co" | "lan_hr" | "lan_cs" | "lan_da" | "lan_nl" | "lan_en" | "lan_en-GB" | "lan_eo" | "lan_et" | "lan_fi" | "lan_fr" | "lan_fr-CA" | "lan_fy" | "lan_gl" | "lan_ka" | "lan_de" | "lan_el" | "lan_gu" | "lan_ht" | "lan_ha" | "lan_haw" | "lan_he" | "lan_hi" | "lan_hmn" | "lan_hu" | "lan_is" | "lan_ig" | "lan_id" | "lan_ga" | "lan_it" | "lan_ja" | "lan_jv" | "lan_kn" | "lan_kk" | "lan_km" | "lan_rw" | "lan_ko" | "lan_ku" | "lan_ky" | "lan_lo" | "lan_la" | "lan_lv" | "lan_lt" | "lan_lb" | "lan_mk" | "lan_mg" | "lan_ms" | "lan_ml" | "lan_mt" | "lan_mi" | "lan_mr" | "lan_mn" | "lan_my" | "lan_ne" | "lan_no" | "lan_ny" | "lan_or" | "lan_ps" | "lan_fa" | "lan_pl" | "lan_pt" | "lan_pa" | "lan_ro" | "lan_ru" | "lan_sm" | "lan_gd" | "lan_sr" | "lan_st" | "lan_sn" | "lan_sd" | "lan_si" | "lan_sk" | "lan_sl" | "lan_so" | "lan_es" | "lan_es-ES" | "lan_su" | "lan_sw" | "lan_sv" | "lan_tl" | "lan_tg" | "lan_ta" | "lan_tt" | "lan_te" | "lan_th" | "lan_tr" | "lan_tk" | "lan_uk" | "lan_ur" | "lan_ug" | "lan_uz" | "lan_vi" | "lan_cy" | "lan_xh" | "lan_yi" | "lan_yo" | "lan_zu"; toLanguage?: | "lan_af" | "lan_sq" | "lan_am" | "lan_ar" | "lan_hy" | "lan_az" | "lan_eu" | "lan_be" | "lan_bn" | "lan_bs" | "lan_bg" | "lan_ca" | "lan_ceb" | "lan_zh" | "lan_zh-TW" | "lan_co" | "lan_hr" | "lan_cs" | "lan_da" | "lan_nl" | "lan_en" | "lan_en-GB" | "lan_eo" | "lan_et" | "lan_fi" | "lan_fr" | "lan_fr-CA" | "lan_fy" | "lan_gl" | "lan_ka" | "lan_de" | "lan_el" | "lan_gu" | "lan_ht" | "lan_ha" | "lan_haw" | "lan_he" | "lan_hi" | "lan_hmn" | "lan_hu" | "lan_is" | "lan_ig" | "lan_id" | "lan_ga" | "lan_it" | "lan_ja" | "lan_jv" | "lan_kn" | "lan_kk" | "lan_km" | "lan_rw" | "lan_ko" | "lan_ku" | "lan_ky" | "lan_lo" | "lan_la" | "lan_lv" | "lan_lt" | "lan_lb" | "lan_mk" | "lan_mg" | "lan_ms" | "lan_ml" | "lan_mt" | "lan_mi" | "lan_mr" | "lan_mn" | "lan_my" | "lan_ne" | "lan_no" | "lan_ny" | "lan_or" | "lan_ps" | "lan_fa" | "lan_pl" | "lan_pt" | "lan_pa" | "lan_ro" | "lan_ru" | "lan_sm" | "lan_gd" | "lan_sr" | "lan_st" | "lan_sn" | "lan_sd" | "lan_si" | "lan_sk" | "lan_sl" | "lan_so" | "lan_es" | "lan_es-ES" | "lan_su" | "lan_sw" | "lan_sv" | "lan_tl" | "lan_tg" | "lan_ta" | "lan_tt" | "lan_te" | "lan_th" | "lan_tr" | "lan_tk" | "lan_uk" | "lan_ur" | "lan_ug" | "lan_uz" | "lan_vi" | "lan_cy" | "lan_xh" | "lan_yi" | "lan_yo" | "lan_zu"; additionalProperties?: never; }; /** * Details of video action */ videoActionInfo?: { videoAction: | "switchLayout" | "switchPage" | "switchActiveUser" | "zoomIn" | "zoomOut" | "pinVideoToStage" | "unpinVideoToStage" | "syncMyStageForAll" | "desyncMyStageForAll" | "showParticipantWithoutVideo" | "hideParticipantWithoutVideo" | "showActiveVideoInStage" | "hideActiveVideoInStage" | "showActiveVideoWithShareContent" | "hideActiveVideoWithShareContent" | "showVideoOnTP" | "showVideoOnComputer" | "EnterFullScreen" | "ExitFullScreen" | "EnterFullScreenWithShare" | "ExitFullScreenWithShare" | "hideFilmStrip" | "showFilmStrip"; fromLayoutType?: | "stack" | "stackWithShare" | "sideBySide" | "sideBySideWithShare" | "grid" | "floatingActive" | "floatingThumbnail" | "floatingGrid" | "overlay" | "focus" | "prominent" | "focusWithShare" | "prominentWithShare" | "equal" | "equalWithShare" | "largeGallery" | "auto" | "autoWithShare"; toLayoutType?: | "stack" | "stackWithShare" | "sideBySide" | "sideBySideWithShare" | "grid" | "floatingActive" | "floatingThumbnail" | "floatingGrid" | "overlay" | "focus" | "prominent" | "focusWithShare" | "prominentWithShare" | "equal" | "equalWithShare" | "largeGallery" | "auto" | "autoWithShare"; zoomLayoutType?: | "stack" | "stackWithShare" | "sideBySide" | "sideBySideWithShare" | "grid" | "floatingActive" | "floatingThumbnail" | "floatingGrid" | "overlay" | "focus" | "prominent" | "focusWithShare" | "prominentWithShare" | "equal" | "equalWithShare" | "largeGallery" | "auto" | "autoWithShare"; duration?: number; myVideoCSI?: number; myNodeID?: number; fromActiveNodeID?: number; toActiveNodeID?: number; switchFromVideoCount?: number; switchToVideoCount?: number; isSwitchToPrevious?: boolean; pinVideoNodeID?: number; pinVideoCSI?: number; actionFromPlist?: boolean; syncStageNodeIDArray?: number[]; syncStageCSIArray?: number[]; lockAttendeeStageView?: boolean; additionalProperties?: never; }; /** * Details of FeatureReport */ featureReport?: { featureReportItems: { featureName: {}; timeStamp: string; actionName?: string; eventName?: string; duration?: number; extValue?: string; webappData?: {}; reactionData?: {}; interpretationAction?: {}; additionalProperties?: never; }[]; additionalProperties?: never; }; downloadInfos?: { percentCompleted?: number; packageName?: string; timestamp?: string; clientDownloadFileCount?: number; clientDownloadSize?: number; clientDownloadTime?: number; clientDecompressTime?: number; CDNEnabled?: boolean; updateFlag?: "preMeeting" | "inMeeting" | "postMeeting"; epSP?: boolean; isEPUpdate?: boolean; spDifferent?: number; spVersionDelta?: number; deltaUpdate?: boolean; deltaListDownloadTime?: number; deltaPackageDownloadTime?: number; deltaCachePackageCopyTime?: number; deltaApplyTime?: number; deltaPackageUncompressTime?: number; deltaDuration?: number; deltaVersion?: string; deltaDownloadFullPackage?: boolean; deltaFileSize?: number; deltaUpdateEnabled?: boolean; deltaFullpackageDownloadEnabled?: boolean; deltaUpdateErrorType?: string; deltaUpdateSuccess?: string; deltaFullpackageDownloadVersion?: string; deltaFullpackageDownloadSuccess?: string; deltaUpdateCorrelationId?: string; deltaFullpackageDownloadCorrelationId?: string; deltaTargetVersion?: string; deltaLocalFullPackageVersions?: string; deltaUpdateFailReason?: string; deltaUpdateTimeStamp?: string; additionalProperties?: never; }[]; additionalProperties?: never; } /* eslint-disable */ /** * This file was automatically generated by json-schema-to-typescript. * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file, * and run json-schema-to-typescript to regenerate this file. */ /** * Media Quality Events from media services (e.g. Linus, Edonus, Clients) */ export interface MediaQualityEvent { canProceed?: boolean; state?: string; mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard" | "gamestate"; /** * Details associated with a share floor type */ floorType?: { name: "DEFAULT" | "EMBEDDED_APP" | "OTHER"; priority?: {}; additionalProperties?: never; }; csi?: number; /** * media capability for both transmit and receive */ mediaCapabilities?: { /** * explicit indication of media capabilities. true=supported */ tx: { audio: boolean; video: boolean; share: boolean; share_audio: boolean; whiteboard: boolean; gamestate?: boolean; additionalProperties?: never; }; /** * explicit indication of media capabilities. true=supported */ rx: { audio: boolean; video: boolean; share: boolean; share_audio: boolean; whiteboard: boolean; gamestate?: boolean; additionalProperties?: never; }; additionalProperties?: never; }; mediaLines?: { clusterName?: string; connectionType?: "none" | "direct" | "proxy"; direction: "sendrecv" | "sendonly" | "recvonly" | "inactive"; errorCode?: number; extension?: {}; failureDescription?: string; failureReason?: "network" | "transport" | "rejected" | "timeout" | "notstarted" | "succeeded"; iceMangled?: boolean; localIP?: string; localNetworkPrefix?: string; localPort?: number; mediaLineData?: {}; mediaType: "audio" | "video" | "share" | "share_audio" | "whiteboard" | "gamestate" | "all"; protocol: "udp" | "tcp" | "xtls" | "unknown"; recvRespTime?: string; remoteIP?: string; remotePort?: number; sentReqTime?: string; status?: "succeeded" | "in-progress" | "failed"; tlsDomain?: string; transactionId?: string; ufrag?: string; additionalProperties?: never; }[]; /** * allows client to specify media preferences */ clientMediaPreferences?: { preferTranscoding: boolean; additionalProperties?: never; }; pstnAudioType?: "dial-in" | "dial-out"; homeDataCenter?: string; success?: boolean; isTranscoded?: boolean; isGatewayed?: boolean; isComposed?: boolean; /** * determine how the events are processed as well as how the reports are aggregated and sliced */ registrationMode?: "SIP" | "Cloud" | "CloudAware"; /** * protocols used to help determine how the events are processed as well as how the reports are aggregated and sliced */ protocol?: "SIP" | "H323" | "H323_IP" | "Locus" | "WebRTC"; /** * The underlying service provider of the call. */ meetingPlatform?: "MsTeams" | "GoogleMeet" | "Zoom" | "Webex"; labels?: string[]; labelsStr?: string; webexServiceType?: "MC" | "EC" | "SC" | "TC" | "AA" | "RA" | "NBR" | "WRF" | "HOL"; /** * this defines the sub service type */ webexSubServiceType?: | "PMR" | "Event" | "Training" | "ScheduleMeeting" | "ScheduledMeeting" | "Webcast" | "Webinar" | "LargeScaleWebinar" | "others"; ivrDialogType?: | "MEDIA_ON_HOLD" | "ANNOUNCEMENT" | "TONE" | "COLLECT_PIN" | "PROMPT" | "MEDIA_SERVICE_AGENT" | "COLLECT"; ivrDialogResult?: | "SUCCESS" | "FAILURE" | "HOST_PIN_MATCH" | "GUEST_PIN_MATCH" | "PANELIST_PIN_MATCH" | "NO_MATCH" | "INVALID_PIN"; callType?: | "VIDEO_DIALIN" | "VIDEO_DIALOUT" | "CASCADE" | "HYBRID_CASCADE" | "PSTN_SIP" | "PSTN_DIALIN" | "PSTN_DIALOUT" | "PSTN_ONLY_DIALIN" | "PSTN_ONLY_DIALOUT" | "AUDIO_DIALIN" | "AUDIO_ONLY_DIALIN" | "H323" | "H323_IP" | "SIP_ENTERPRISE" | "SIP_MOBILE" | "SIP_NATIONAL" | "SIP_INTERNATIONAL" | "SIP_EMERGENCY" | "SIP_OPERATOR" | "SIP_SHORTCODE" | "SIP_TOLLFREE" | "SIP_PREMIUM" | "SIP_URI" | "SIP_INBOUND" | "UNKNOWN" | "ZTM" | "SIP_MEETING" | "SIP_DIALOUT" | "SIP_ONLY_DIALOUT"; eventData?: {}; derivedSipClientType?: | "SIP_CE_SINGLE_SCREEN" | "SIP_CE_MULTI_SCREEN" | "SIP_JABBER" | "SIP_TIP_SINGLE_SCREEN" | "SIP_TIP_THREE_SCREEN" | "SIP_PSTN" | "SIP_OTHER" | "SIP_WEBEX_CASCADE" | "SIP_NONE"; /** * this defines the major client types */ derivedClientType?: | "MEETING_CENTER" | "EVENT_CENTER" | "TRAINING_CENTER" | "TEAMS_CLIENT" | "TEAMS_DEVICE" | "TEAMS_SHARE" | "SIP" | "RECORDING" | "CLOUD_AWARE_SIP" | "TEAMS_WXC_CLIENT" | "WXC_CLIENT" | "WXC_DEVICE" | "WEBEX_JS_SDK" | "VOICEA_CLIENT" | "CISCO_SIP_GW" | "WEBEX_SDK" | "CPAAS_THIRD_PARTY_SDK" | "WXC_THIRD_PARTY" | "WXCC" | "TEAMS_PHONE" | "WEBEX_RELAY"; /** * this defines the sub types of clients */ derivedSubClientType?: | "AUTOMOTIVE_APP" | "BROWSER_EXTENSION" | "DESKTOP_APP" | "DESKTOP_APP_VDI" | "DEVICE_CURRENT" | "DEVICE_LEGACY_2020" | "HOLOGRAM_HEADSET_APP" | "HVDI_APP" | "MIXED" | "MOBILE_APP" | "MOBILE_NETWORK" | "PAGE" | "TEAMS_DEVICE" | "VDI_APP" | "WEB_APP" | "PHONE_NOVUM" | "PHONE_ESPRESSO" | "PHONE_BUMBLEBEE" | "SIP" | "SIP_PSTN"; meetingRole?: "PANELIST" | "ATTENDEE"; serverRole?: | "CONFERENCE" | "TRANSCODER" | "WHITEBOARD_INJECTOR" | "MS_TEAMS_CONFERENCE" | "RECORDING" | "GATEWAY" | "GATEWAY_CLIENT_SIDE" | "UNKNOWN" | "HOLOGRAM_RENDER" | "EDGE"; reconnect?: boolean; retryCount?: number; meetSimple?: boolean; /** * represents media quality status report such as no media or drop out */ mediaStatus?: { mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard"; mediaSuccess?: boolean; shareType?: | "cb-normal-share" | "ce-airplay-share" | "ce-direct-share" | "ce-gui-loopback-share" | "ce-input-source-share" | "ce-input-source-share-hdmi" | "ce-input-source-share-usbc" | "ce-jpg-share" | "ce-miracast-share" | "mcs-normal-share" | "mcs-normal-audio-share" | "mcs-hfps-share" | "mcs-hfps-audio-share"; isTransmitter?: boolean; audioJoinType?: | "phone-call-in" | "phone-call-back" | "voip" | "device-call-back" | "never-join-audio" | "tried-but-never-join"; /** * indicates transport type used */ transportType?: "UDP" | "TCP" | "xTLS" | "TLS"; additionalData?: {}; /** * information object for the peripheral */ mediaDeviceInfo?: { name: "camera" | "microphone" | "speaker"; information?: string; driver?: string; errorCode?: string; subErrorCode?: string; captureFrameSize?: number; captureFps?: number; captureFrameworkType?: number; captureRawType?: number; deviceCapabilitiesTime?: number; connectionType?: {}; bluetoothMode?: {}; openDeviceCostTimeMilliSecond?: number; startCaptureCostTimeMilliSecond?: number; txSampleRate?: number; rxSampleRate?: number; isAAudioLowLatency?: number; isStartNDKFailed?: number; startPlaybackCostTimeMilliSecond?: number; changeCount?: number; /** * indicates capture device's system volume, between -1 and 100, -1 means invalid */ captureSystemVolume?: number; /** * indicates playback device's system volume, between -1 and 100, -1 means invalid */ playbackSystemVolume?: number; started?: boolean; sysAudioSEStatus?: number; isVolumeControlAvailable?: boolean; rawStreamStatus?: number; status?: string; initCaptureFrameworkType?: "unknown" | "dshow" | "mf" | "mfPrefer"; cameraRetried?: boolean; captureCameraType?: | "unknown" | "builtIn" | "aggregate" | "virtual" | "pci" | "usb" | "fireWire" | "bluetooth" | "hdmi" | "displayPort" | "airPlay" | "avb" | "thunderbolt" | "lineLevel" | "external" | "continuityCaptureWired" | "continuityCaptureWireless" | "audioRemote" | "iphoneCamera" | "deskViewCamera" | "virtualCamera" | "builtInMinijack"; captureCameraFailNum?: number; videoCaptureEnumTime?: number; additionalProperties?: never; }; additionalProperties?: never; }; shareInstanceId?: string; ipVersion?: "IPv4" | "IPv6" | "Dual"; isTransmitter?: boolean; shareDuration?: number; stopReason?: string; shareStartReason?: string; hologramStreamId?: string; /** * represents all of the properities that could cause delay during media setup process. */ audioSetupDelay?: { floorReqSentReceived?: number; floorRespSentReceived?: number; mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard"; txReqFloorGranted?: number; txSessionCreateConfirm?: number; txApeEnrollConfirm?: number; txUIDelay?: number; txScreenCaptureDelay?: number; txScreenCaptureDelayReasonCode?: number; txShareStartOverallDelay?: number; floorGranted2tx1stPacketSendDelay?: number; rx1stPacket2RenderDelay?: number; rxGranted2RenderDelay?: number; rxFailFrameNumB4Success?: number; e2eFirstFrameDelay?: number; CBSessionRespToLocusFloorGrantDelay?: number; CBShareReceiveToServerShareTransmitDelay?: number; CBShareReceiveToTPGWFirstKeyFrameDelay?: number; /** * phrased HTTP timing */ floorRequestHttpTiming?: { connect?: number; dnsLookup?: number; sendRequest?: number; compressRequest?: number; receiveResponse?: number; extractJson?: number; verifyCert?: number; refreshToken?: number; additionalProperties?: never; }; TPGWFirstKeyFrameToServerShareTransmitDelay?: number; MCSSessionActivateToLocusFloorGrantDelay?: number; ServerShareInitiateToLocusFloorGrantDelay?: number; LocusFloorGrantToCBSessionStartDelay?: number; ServerShareReceiveToTPGWFirstKeyFrameDelay?: number; LocusFloorGrantToTPGWFloorGrantDelay?: number; LocusFloorGrantToReceiverNotificationDelay?: number; CBShareSessionRespDelay?: number; LocusShareFloorGrantRespDelay?: number; LocusFloorReqToRespDelay?: number; ServerShareFloorGrantRespDelay?: number; joinRespRxStart?: number; joinRespTxStart?: number; maxRemoteLossRate?: number; media2SignalDelay?: number; warholDownloadTime?: number; contentDownloadTime?: number; boardCreationTime?: number; totalBoardServiceRespDelay?: number; additionalProperties?: never; }; /** * represents all of the properities that could cause delay during media setup process. */ videoSetupDelay?: { floorReqSentReceived?: number; floorRespSentReceived?: number; mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard"; txReqFloorGranted?: number; txSessionCreateConfirm?: number; txApeEnrollConfirm?: number; txUIDelay?: number; txScreenCaptureDelay?: number; txScreenCaptureDelayReasonCode?: number; txShareStartOverallDelay?: number; floorGranted2tx1stPacketSendDelay?: number; rx1stPacket2RenderDelay?: number; rxGranted2RenderDelay?: number; rxFailFrameNumB4Success?: number; e2eFirstFrameDelay?: number; CBSessionRespToLocusFloorGrantDelay?: number; CBShareReceiveToServerShareTransmitDelay?: number; CBShareReceiveToTPGWFirstKeyFrameDelay?: number; /** * phrased HTTP timing */ floorRequestHttpTiming?: { connect?: number; dnsLookup?: number; sendRequest?: number; compressRequest?: number; receiveResponse?: number; extractJson?: number; verifyCert?: number; refreshToken?: number; additionalProperties?: never; }; TPGWFirstKeyFrameToServerShareTransmitDelay?: number; MCSSessionActivateToLocusFloorGrantDelay?: number; ServerShareInitiateToLocusFloorGrantDelay?: number; LocusFloorGrantToCBSessionStartDelay?: number; ServerShareReceiveToTPGWFirstKeyFrameDelay?: number; LocusFloorGrantToTPGWFloorGrantDelay?: number; LocusFloorGrantToReceiverNotificationDelay?: number; CBShareSessionRespDelay?: number; LocusShareFloorGrantRespDelay?: number; LocusFloorReqToRespDelay?: number; ServerShareFloorGrantRespDelay?: number; joinRespRxStart?: number; joinRespTxStart?: number; maxRemoteLossRate?: number; media2SignalDelay?: number; warholDownloadTime?: number; contentDownloadTime?: number; boardCreationTime?: number; totalBoardServiceRespDelay?: number; additionalProperties?: never; }; /** * represents all of the properities that could cause delay during media setup process. */ shareSetupDelay?: { floorReqSentReceived?: number; floorRespSentReceived?: number; mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard"; txReqFloorGranted?: number; txSessionCreateConfirm?: number; txApeEnrollConfirm?: number; txUIDelay?: number; txScreenCaptureDelay?: number; txScreenCaptureDelayReasonCode?: number; txShareStartOverallDelay?: number; floorGranted2tx1stPacketSendDelay?: number; rx1stPacket2RenderDelay?: number; rxGranted2RenderDelay?: number; rxFailFrameNumB4Success?: number; e2eFirstFrameDelay?: number; CBSessionRespToLocusFloorGrantDelay?: number; CBShareReceiveToServerShareTransmitDelay?: number; CBShareReceiveToTPGWFirstKeyFrameDelay?: number; /** * phrased HTTP timing */ floorRequestHttpTiming?: { connect?: number; dnsLookup?: number; sendRequest?: number; compressRequest?: number; receiveResponse?: number; extractJson?: number; verifyCert?: number; refreshToken?: number; additionalProperties?: never; }; TPGWFirstKeyFrameToServerShareTransmitDelay?: number; MCSSessionActivateToLocusFloorGrantDelay?: number; ServerShareInitiateToLocusFloorGrantDelay?: number; LocusFloorGrantToCBSessionStartDelay?: number; ServerShareReceiveToTPGWFirstKeyFrameDelay?: number; LocusFloorGrantToTPGWFloorGrantDelay?: number; LocusFloorGrantToReceiverNotificationDelay?: number; CBShareSessionRespDelay?: number; LocusShareFloorGrantRespDelay?: number; LocusFloorReqToRespDelay?: number; ServerShareFloorGrantRespDelay?: number; joinRespRxStart?: number; joinRespTxStart?: number; maxRemoteLossRate?: number; media2SignalDelay?: number; warholDownloadTime?: number; contentDownloadTime?: number; boardCreationTime?: number; totalBoardServiceRespDelay?: number; additionalProperties?: never; }; /** * represents all of the properities that could cause delay during media setup process. */ shareAudioSetupDelay?: { floorReqSentReceived?: number; floorRespSentReceived?: number; mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard"; txReqFloorGranted?: number; txSessionCreateConfirm?: number; txApeEnrollConfirm?: number; txUIDelay?: number; txScreenCaptureDelay?: number; txScreenCaptureDelayReasonCode?: number; txShareStartOverallDelay?: number; floorGranted2tx1stPacketSendDelay?: number; rx1stPacket2RenderDelay?: number; rxGranted2RenderDelay?: number; rxFailFrameNumB4Success?: number; e2eFirstFrameDelay?: number; CBSessionRespToLocusFloorGrantDelay?: number; CBShareReceiveToServerShareTransmitDelay?: number; CBShareReceiveToTPGWFirstKeyFrameDelay?: number; /** * phrased HTTP timing */ floorRequestHttpTiming?: { connect?: number; dnsLookup?: number; sendRequest?: number; compressRequest?: number; receiveResponse?: number; extractJson?: number; verifyCert?: number; refreshToken?: number; additionalProperties?: never; }; TPGWFirstKeyFrameToServerShareTransmitDelay?: number; MCSSessionActivateToLocusFloorGrantDelay?: number; ServerShareInitiateToLocusFloorGrantDelay?: number; LocusFloorGrantToCBSessionStartDelay?: number; ServerShareReceiveToTPGWFirstKeyFrameDelay?: number; LocusFloorGrantToTPGWFloorGrantDelay?: number; LocusFloorGrantToReceiverNotificationDelay?: number; CBShareSessionRespDelay?: number; LocusShareFloorGrantRespDelay?: number; LocusFloorReqToRespDelay?: number; ServerShareFloorGrantRespDelay?: number; joinRespRxStart?: number; joinRespTxStart?: number; maxRemoteLossRate?: number; media2SignalDelay?: number; warholDownloadTime?: number; contentDownloadTime?: number; boardCreationTime?: number; totalBoardServiceRespDelay?: number; additionalProperties?: never; }; /** * represents all of the properities that could cause delay during media setup process. */ whiteboardSetupDelay?: { floorReqSentReceived?: number; floorRespSentReceived?: number; mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard"; txReqFloorGranted?: number; txSessionCreateConfirm?: number; txApeEnrollConfirm?: number; txUIDelay?: number; txScreenCaptureDelay?: number; txScreenCaptureDelayReasonCode?: number; txShareStartOverallDelay?: number; floorGranted2tx1stPacketSendDelay?: number; rx1stPacket2RenderDelay?: number; rxGranted2RenderDelay?: number; rxFailFrameNumB4Success?: number; e2eFirstFrameDelay?: number; CBSessionRespToLocusFloorGrantDelay?: number; CBShareReceiveToServerShareTransmitDelay?: number; CBShareReceiveToTPGWFirstKeyFrameDelay?: number; /** * phrased HTTP timing */ floorRequestHttpTiming?: { connect?: number; dnsLookup?: number; sendRequest?: number; compressRequest?: number; receiveResponse?: number; extractJson?: number; verifyCert?: number; refreshToken?: number; additionalProperties?: never; }; TPGWFirstKeyFrameToServerShareTransmitDelay?: number; MCSSessionActivateToLocusFloorGrantDelay?: number; ServerShareInitiateToLocusFloorGrantDelay?: number; LocusFloorGrantToCBSessionStartDelay?: number; ServerShareReceiveToTPGWFirstKeyFrameDelay?: number; LocusFloorGrantToTPGWFloorGrantDelay?: number; LocusFloorGrantToReceiverNotificationDelay?: number; CBShareSessionRespDelay?: number; LocusShareFloorGrantRespDelay?: number; LocusFloorReqToRespDelay?: number; ServerShareFloorGrantRespDelay?: number; joinRespRxStart?: number; joinRespTxStart?: number; maxRemoteLossRate?: number; media2SignalDelay?: number; warholDownloadTime?: number; contentDownloadTime?: number; boardCreationTime?: number; totalBoardServiceRespDelay?: number; additionalProperties?: never; }; isFocus?: boolean; processingDelay?: number; shareResourceType?: | "APPLICATION_OR_WINDOW" | "CAMERA" | "DEFAULT" | "EMBEDDED_APP" | "FILE" | "MOBILE_FILE" | "MOBILE_SCREEN_MIRRORING" | "SCREEN"; shareResourceName?: string; shareType?: | "cb-normal-share" | "ce-airplay-share" | "ce-direct-share" | "ce-gui-loopback-share" | "ce-input-source-share" | "ce-input-source-share-hdmi" | "ce-input-source-share-usbc" | "ce-jpg-share" | "ce-miracast-share" | "mcs-normal-share" | "mcs-normal-audio-share" | "mcs-hfps-share" | "mcs-hfps-audio-share"; isShareBeingTakenOver?: boolean; floorBeneficiaryUpdated?: boolean; meetingJoinedTime?: string; /** * join phase of event */ meetingJoinPhase?: "pre-join" | "join" | "in-meeting"; meetingScheduledTime?: string; seconds2StartTime?: number; e2eeKeyEpoch?: number; e2eeDecompressRatio?: number; keyResponses?: { gotKeyTime?: number; useKeyTime?: number; cacheKeyTime?: number; additionalProperties?: never; }[]; e2eeVersion?: "E2EEV1" | "E2EEV2" | "E2EEV3" | "E2EEV4" | "E2EEV4_PLUS" | "E2EEV4_B" | "E2EEV5"; isZeroTrust?: boolean; /** * Version of SFrame in use. */ sframeVersion?: "SFRAMEV1" | "SFRAMEV2"; isConvergedArchitectureEnabled?: boolean; isCustomBrowser?: boolean; callingServiceType?: "CUCM" | "WEBEXCALLING" | "BROADWORKS" | "LOCUS" | "BROADCLOUDCARRIER"; supplementaryMediaSessionType?: "DirectShare"; isPaired?: boolean; inLobby?: boolean; isVIPMeeting?: boolean; webexAppEntrypoint?: string; firstParticipant?: boolean; isImmersiveShare?: boolean; /** * Request/Response Time for Internal Services / Clients */ registeredTimestamps?: { locusCreateConfluenceRequestTime?: string; locusCreateConfluenceResponseTime?: string; locusCreateVenueRequestTime?: string; locusCreateVenueResponseTime?: string; interstitialWindowLaunchedTime?: string; additionalProperties?: never; }; skipInterstitialWindow?: boolean; callDurationSecs?: number; connectionDurationSecs?: number; lobbyType?: string; callDirection?: "ORIGINATING" | "TERMINATING"; /** * Details associated with a breakout move */ breakout?: { moveType?: "between_breakout" | "to_breakout" | "to_main"; trigger?: "assignment_changed" | "client_initiated" | "session_ended" | "session_started"; startState?: "joined" | "lobby"; endState?: "joined" | "lobby"; additionalProperties?: never; }; /** * Latency values associated with breakout session */ breakoutLatency?: { clientBreakoutMoveReqJoinResp?: number; boBreakoutMoveProcessed?: number; boBreakoutMoveResp?: number; boLocusBreakoutMoveResp?: number; locusBreakoutMoveResp?: number; orpheusConfluenceMoveReqResp?: number; additionalProperties?: never; }; /** * two-way whiteboard related info */ whiteboard?: { action?: "open" | "create"; type?: "whiteboard" | "annotation"; capability?: "one_way" | "two_way"; granted?: "one_way" | "two_way"; additionalProperties?: never; }; /** * ROAP message details */ roap?: { type?: | "ANSWER" | "ERROR" | "OFFER" | "OFFER_REQUEST" | "OFFER_RESPONSE" | "OK" | "OKAY" | "TURN_DISCOVERY_REQUEST" | "TURN_DISCOVERY_RESPONSE"; messageType?: | "ANSWER" | "ERROR" | "OFFER" | "OFFER_REQUEST" | "OFFER_RESPONSE" | "OK" | "OKAY" | "TURN_DISCOVERY_REQUEST" | "TURN_DISCOVERY_RESPONSE"; error?: string; duration?: number; seq?: number; additionalProperties?: never; }; /** * Pstn Carrier Infos */ pstnCarrierInfo?: { cic?: string; carrierName?: string; ucreDnsSrvs?: string[]; additionalProperties?: never; }; pstnAudioCallType?: "PSTN" | "CCA_E" | "CCA_SP" | "EDGE_AUDIO" | "CCA_S" | "VMN_AUDIO"; l2sipCallbackUrl?: string; ivrDialingStatusOriginator?: "L2SIP" | "CLOUD_PROXY" | "CARRIER" | "UNIDENTIFIED"; cic?: string; carrierName?: string; originator?: string; ucreDnsSrvs?: string[]; ivrServiceUcreAttempts?: number; antiFraudPolicyType?: string; antiFraudBlocked?: boolean; sipResponseCode?: | "100_Trying" | "183_Ringing" | "200_Ok" | "404_NotFound" | "407_ProxyAuthRequired" | "486_BusyHere" | "503_ServiceUnavailable" | "606_NotAcceptable"; /** * details of scheduling information */ schedulingInfo?: { /** * this defines calendar type for scheduling */ calendarType?: "exchange_online" | "exchange_onprem" | "google" | "other" | "webex"; /** * this defines meeting categories for scheduling */ meetingCategory?: "AdhocUSM" | "Instant" | "Scheduled" | "ScheduledPMR" | "ScheduledUSM" | "SpaceMeetingV1"; /** * this defines where the meeting was scheduled from */ scheduledFrom?: | "ADDIN_O365" | "ADDIN_ONPREM" | "ADHOC_USM" | "AT_WEBEX_GOOGLE" | "AT_WEBEX_MSFT" | "AT_MEET_GOOGLE" | "AT_MEET_MSFT" | "GOOGLE_ADDON" | "INSTANT_MEETING" | "OTHER" | "PT" | "PUBLIC_API" | "TEAMS_CLIENT" | "TEAMS_CLIENT_CROSS_LAUNCH" | "UNIFIED_PAGE" | "WEBEX_PAGE"; /** * this defines meeting categories for scheduling */ schedulingOperationType?: "prepare" | "create" | "update" | "delete"; additionalProperties?: never; }; /** * details of setting information */ settingInfo?: { /** * this defines where the type of Setting being modified/updated */ settingType: "AUDIO_VIDEO" | "EMAIL_TEMPLATE" | "GENERAL" | "PMR" | "RECORDING" | "SCHEDULING" | "WEBEX_SITE"; additionalProperties?: never; }; sessionJoinCount?: number; /** * indicates transport type used */ transportType?: "UDP" | "TCP" | "xTLS" | "TLS"; joinFlowVersion?: "NewFTE" | "Other"; locale?: string; accessNumber?: string; isVVipMeeting?: boolean; /** * Login-related information. */ loginInfo?: { loginType?: "user-hub" | "control-hub" | "meeting-site" | "global-sign-in-page" | "web-client" | "native-client"; method?: "idbroker" | "enterprise" | "social"; grantType?: "client-credential" | "authorization-code" | "scope-reduction"; /** * Sign-in Time */ signInDelay?: { signInTime?: number; additionalProperties?: never; }; signInSignUpType?: "sign-in" | "sign-up"; userFound?: boolean; additionalProperties?: never; }; isPrivateMeeting?: boolean; /** * Low Latency Mercury latency measurements */ llmLatency?: { clientLLMDatachannelResponseTime?: number; clientLLMWebSocketConnectTime?: number; additionalProperties?: never; }; /** * Sync Latency measurements. Expected to be sent in client.locus.sync.complete and locus.sync.sent events that could be triggered in a converged webinar session */ syncLatency?: { randomBackoffTime?: number; hashtreePrepTime?: number; hashtreeProcessingTime?: number; hashtreeResponseTime?: number; syncPrepTime?: number; syncResponseTime?: number; syncProcessingTime?: number; syncMessageReceiveTime?: number; totalTime?: number; additionalProperties?: never; }; /** * Low Latency Mercury related information. */ llmInfo?: { dataSet?: "main" | "atd-active" | "atd-unmuted"; additionalProperties?: never; }; trigger?: "dummyTrigger1" | "dummyTrigger2" | "media-quality"; name: "server.mediaquality.event" | "client.mediaquality.event"; /** * Details of MeetingJoinInfo. */ meetingJoinInfo?: { globalMeetingIdentifier?: string; joinUri?: string; joinUriHash?: string; /** * The underlying service provider of the call. */ meetingPlatform?: "MsTeams" | "GoogleMeet" | "Zoom" | "Webex"; /** * The underlying service provider of the call. */ inferredMeetingPlatform?: "MsTeams" | "GoogleMeet" | "Zoom" | "Webex"; /** * protocols used to help determine how the events are processed as well as how the reports are aggregated and sliced */ clientSignallingProtocol?: "SIP" | "H323" | "H323_IP" | "Locus" | "WebRTC"; additionalProperties?: never; }; /** * Base type for the various identifiers used to connect the dots. * In general, these should be populated whenever possible. Subtypes may make a particular key required. * */ identifiers: { aggregatedBreakoutMoveId?: string; attendeeId?: string; participantId?: string; breakoutGroupId?: string; breakoutMoveId?: string; breakoutTrackingId?: string; breakoutSessionId?: string; browserId?: string; ciExchangeTokenUrl?: string; confluenceId?: string; /** * Set of identifiers dedicated to CPaaS clients * In general, these should be populated whenever possible. Subtypes may make a particular key required. * */ cpaasIdentifiers?: { imiTenantId: string; devClientId: string; imiServiceId: string; imiAppId: string; sessionId: string; sessionInstanceId: string; additionalProperties?: never; }; csdmDeviceUrl?: string; destinationBreakoutSessionId?: string; destinationLocusSessionId?: string; destinationLocusUrl?: string; destinationVenueId?: string; deviceId?: string; globalMeetingId?: string; installationId?: string; webexMeetingUUID?: string; ivrCallId?: string; ivrDialogId?: string; ivrId?: string; callId?: string; pairCallId?: string; llmWebsocketUrl?: string; locusCluster?: string; locusId?: string; locusJoinUrl?: string; locusSessionId?: string; locusStartTime?: string; locusUrl?: string; machineId?: string; mediaAgentAlias?: string; mediaAgentGroupId?: string; meetClusterName?: string; meetingInstanceId?: string; meetingLookupUrl?: string; meetingOrgId?: string; metricServiceUrl?: string; mercuryWebsocketUrl?: string; msteamsTenantGuid?: string; msteamsConferenceId?: string; msteamsMeetingId?: string; mtid?: string; oauth2ClientId?: string; orgId?: string; provisionalCorrelationId?: string; roomId?: string; sessionCorrelationId?: string; sharedMediaId?: string; sipCallId?: string; sipSessionId?: { local?: string; remote?: string; additionalProperties?: never; }; sipUri?: string; subConfId?: string; tenantId?: string; trackingId?: string; userId?: string; venueId?: string; venueUrl?: string; whiteboardUrl?: string; wdmDeviceRegistrationUrl?: string; webexConferenceId?: number; webexClusterName?: string; webexConferenceIdStr?: string; webexDataCenter?: string; webexGuestId?: number; webexMeetingId?: number; webexNodeId?: number; webexSiteId?: number; webexSiteName?: string; webexSiteUuid?: string; webexUserId?: number; webexWebDomain?: string; recordingId?: string; clientCorrelationId?: string; idForEndpointAB?: string; customerOrgId?: string; correlationId: string; additionalProperties?: never; }; /** * metadata associated with emitter of the event. This data is included only in the first emitted for a given call and does not need to be repeated with each event. */ sourceMetadata?: { mediaEngineSoftwareType: string; applicationSoftwareType: string; applicationSoftwareVersion: string; mediaEngineSoftwareVersion?: string; hardwareType?: string; clientRegion?: string; serverRegion?: string; serverOrg?: string; serverGroup?: string; serverAlias?: string; serverDeployType?: "private" | "public"; startTime: string; endTime?: string; csi?: number[]; isCascade?: boolean; isHybridMedia?: boolean; videoMeshClusterName?: string; videoMeshServerName?: string; isTIP?: boolean; isMARI?: boolean; has264Checksum?: boolean; intervalPeriod?: number; cascadePeerRegion?: string; cascadePeerOrg?: string; cascadePeerGroup?: string; cascadePeerAlias?: string; cascadePeerServerType?: | "CB" | "CMS" | "CRC" | "HESIOD" | "LINUS" | "MCC" | "MCS" | "MES" | "MJS" | "MRS" | "MYGDONUS" | "MZM" | "TERMINUS" | "TPGW" | "TA" | "HOMER" | "SUPERHOMER" | "U2C" | "WCA" | "MSE" | "UNKNOWN"; cascadePeerDeployType?: "private" | "public"; additionalProperties?: never; }; passThroughMQEventData?: {}; /** * Details of a media edge server which is in the media path but does not generate MQE directly */ edgeInfo?: { alias: string; publicIP: string; privateIP: string; version: string; labels?: string; additionalProperties?: never; }; intervals: { intervalNumber: number; /** * The metadata associated with the emitter of the event. This data is separate from the source metadata and must be emitted with every event. */ intervalMetadata: { peerReflexiveIP?: string; maskedPeerReflexiveIP?: string; remoteMediaIP?: string; maskedRemoteMediaIP?: string; /** * indicate user local ICE candidates IP type */ localIPType?: "IPTypeUnknown" | "IPv4Only" | "IPv6Only" | "DualIPType"; staticPerformanceLevel?: number; staticPerformanceScore?: number; processAverageCPU?: number; processAverageCPUWithTurbo?: number; processMaximumCPU?: number; systemAverageCPU?: number; systemAverageCPUWithTurbo?: number; systemAverageCPUTimeBased?: number; systemMaximumCPU?: number; systemMaximumCPUTimeBased?: number; systemAverageGPU?: number; systemMaximumGPU?: number; systemAverageVIC?: number; systemMaximumVIC?: number; systemAverageCPUPerfLoad?: number; systemMaximumCPUPerfLoad?: number; processAverageIdleWakeUps?: number; processMaximumIdleWakeUps?: number; processAveragePowerUsage?: number; processMaximumPowerUsage?: number; /** * this object defines the memory related fields that are tracked in media quality events and reports */ memoryUsage?: { processAverageMemoryUsage: number; processMaximumMemoryUsage: number; systemAverageMemoryUsage: number; systemMaximumMemoryUsage: number; processMaximumMemoryBytes: number; mainProcessMaximumMemoryBytes: number; systemTotalMemoryBytes?: number; osBitWidth: number; cpuBitWidth: number; additionalProperties?: never; }; /** * Indicates battery health. See https://developer.android.com/reference/android/os/BatteryManager for more information. */ batteryHealth?: "unknown" | "good" | "cold" | "overvoltage" | "overheat" | "unspecifiedfailure" | "dead"; /** * Provides visibility in charger type in use */ batteryPlugged?: "unknown" | "ac" | "usb" | "wireless" | "dock"; /** * Provides visibility into charging status */ batteryStatus?: "unknown" | "charging" | "discharging" | "notcharging" | "full"; /** * Battery temperature in celsius */ batteryTemperature?: number; /** * Provides visibility of customer experience in limited thermal headroom environments on Apple devices. See https://developer.apple.com/documentation/foundation/processinfo/thermalstate for more information. */ darwinThermalState?: number; androidThermalHeadroom?: number; /** * Indicates thermal status on Android devices. See https://developer.android.com/ndk/reference/group/thermal for more information. */ androidThermalStatus?: number; peripherals?: { name: "camera" | "microphone" | "speaker"; information?: string; driver?: string; errorCode?: string; subErrorCode?: string; captureFrameSize?: number; captureFps?: number; captureFrameworkType?: number; captureRawType?: number; deviceCapabilitiesTime?: number; connectionType?: {}; bluetoothMode?: {}; openDeviceCostTimeMilliSecond?: number; startCaptureCostTimeMilliSecond?: number; txSampleRate?: number; rxSampleRate?: number; isAAudioLowLatency?: number; isStartNDKFailed?: number; startPlaybackCostTimeMilliSecond?: number; changeCount?: number; /** * indicates capture device's system volume, between -1 and 100, -1 means invalid */ captureSystemVolume?: number; /** * indicates playback device's system volume, between -1 and 100, -1 means invalid */ playbackSystemVolume?: number; started?: boolean; sysAudioSEStatus?: number; isVolumeControlAvailable?: boolean; rawStreamStatus?: number; status?: string; initCaptureFrameworkType?: "unknown" | "dshow" | "mf" | "mfPrefer"; cameraRetried?: boolean; captureCameraType?: | "unknown" | "builtIn" | "aggregate" | "virtual" | "pci" | "usb" | "fireWire" | "bluetooth" | "hdmi" | "displayPort" | "airPlay" | "avb" | "thunderbolt" | "lineLevel" | "external" | "continuityCaptureWired" | "continuityCaptureWireless" | "audioRemote" | "iphoneCamera" | "deskViewCamera" | "virtualCamera" | "builtInMinijack"; captureCameraFailNum?: number; videoCaptureEnumTime?: number; additionalProperties?: never; }[]; /** * information object for the peripheral */ cameraInfo?: { name: "camera" | "microphone" | "speaker"; information?: string; driver?: string; errorCode?: string; subErrorCode?: string; captureFrameSize?: number; captureFps?: number; captureFrameworkType?: number; captureRawType?: number; deviceCapabilitiesTime?: number; connectionType?: {}; bluetoothMode?: {}; openDeviceCostTimeMilliSecond?: number; startCaptureCostTimeMilliSecond?: number; txSampleRate?: number; rxSampleRate?: number; isAAudioLowLatency?: number; isStartNDKFailed?: number; startPlaybackCostTimeMilliSecond?: number; changeCount?: number; /** * indicates capture device's system volume, between -1 and 100, -1 means invalid */ captureSystemVolume?: number; /** * indicates playback device's system volume, between -1 and 100, -1 means invalid */ playbackSystemVolume?: number; started?: boolean; sysAudioSEStatus?: number; isVolumeControlAvailable?: boolean; rawStreamStatus?: number; status?: string; initCaptureFrameworkType?: "unknown" | "dshow" | "mf" | "mfPrefer"; cameraRetried?: boolean; captureCameraType?: | "unknown" | "builtIn" | "aggregate" | "virtual" | "pci" | "usb" | "fireWire" | "bluetooth" | "hdmi" | "displayPort" | "airPlay" | "avb" | "thunderbolt" | "lineLevel" | "external" | "continuityCaptureWired" | "continuityCaptureWireless" | "audioRemote" | "iphoneCamera" | "deskViewCamera" | "virtualCamera" | "builtInMinijack"; captureCameraFailNum?: number; videoCaptureEnumTime?: number; additionalProperties?: never; }; /** * information object for the peripheral */ microphoneInfo?: { name: "camera" | "microphone" | "speaker"; information?: string; driver?: string; errorCode?: string; subErrorCode?: string; captureFrameSize?: number; captureFps?: number; captureFrameworkType?: number; captureRawType?: number; deviceCapabilitiesTime?: number; connectionType?: {}; bluetoothMode?: {}; openDeviceCostTimeMilliSecond?: number; startCaptureCostTimeMilliSecond?: number; txSampleRate?: number; rxSampleRate?: number; isAAudioLowLatency?: number; isStartNDKFailed?: number; startPlaybackCostTimeMilliSecond?: number; changeCount?: number; /** * indicates capture device's system volume, between -1 and 100, -1 means invalid */ captureSystemVolume?: number; /** * indicates playback device's system volume, between -1 and 100, -1 means invalid */ playbackSystemVolume?: number; started?: boolean; sysAudioSEStatus?: number; isVolumeControlAvailable?: boolean; rawStreamStatus?: number; status?: string; initCaptureFrameworkType?: "unknown" | "dshow" | "mf" | "mfPrefer"; cameraRetried?: boolean; captureCameraType?: | "unknown" | "builtIn" | "aggregate" | "virtual" | "pci" | "usb" | "fireWire" | "bluetooth" | "hdmi" | "displayPort" | "airPlay" | "avb" | "thunderbolt" | "lineLevel" | "external" | "continuityCaptureWired" | "continuityCaptureWireless" | "audioRemote" | "iphoneCamera" | "deskViewCamera" | "virtualCamera" | "builtInMinijack"; captureCameraFailNum?: number; videoCaptureEnumTime?: number; additionalProperties?: never; }; /** * information object for the peripheral */ speakerInfo?: { name: "camera" | "microphone" | "speaker"; information?: string; driver?: string; errorCode?: string; subErrorCode?: string; captureFrameSize?: number; captureFps?: number; captureFrameworkType?: number; captureRawType?: number; deviceCapabilitiesTime?: number; connectionType?: {}; bluetoothMode?: {}; openDeviceCostTimeMilliSecond?: number; startCaptureCostTimeMilliSecond?: number; txSampleRate?: number; rxSampleRate?: number; isAAudioLowLatency?: number; isStartNDKFailed?: number; startPlaybackCostTimeMilliSecond?: number; changeCount?: number; /** * indicates capture device's system volume, between -1 and 100, -1 means invalid */ captureSystemVolume?: number; /** * indicates playback device's system volume, between -1 and 100, -1 means invalid */ playbackSystemVolume?: number; started?: boolean; sysAudioSEStatus?: number; isVolumeControlAvailable?: boolean; rawStreamStatus?: number; status?: string; initCaptureFrameworkType?: "unknown" | "dshow" | "mf" | "mfPrefer"; cameraRetried?: boolean; captureCameraType?: | "unknown" | "builtIn" | "aggregate" | "virtual" | "pci" | "usb" | "fireWire" | "bluetooth" | "hdmi" | "displayPort" | "airPlay" | "avb" | "thunderbolt" | "lineLevel" | "external" | "continuityCaptureWired" | "continuityCaptureWireless" | "audioRemote" | "iphoneCamera" | "deskViewCamera" | "virtualCamera" | "builtInMinijack"; captureCameraFailNum?: number; videoCaptureEnumTime?: number; additionalProperties?: never; }; /** * This object defines the fields related to the CPU being used by the emitter of the event */ cpuInfo?: { description: string; numberOfCores: number; architecture: | "intel32" | "intel64" | "amd32" | "amd64" | "arm32" | "arm64" | "armv9" | "armv8" | "armv7" | "armv6" | "x86_64" | "x86_32" | "unknown"; staticPerformance?: string; clockSpeedGigaHertz?: number; additionalProperties?: never; }; /** * Thread level cpu performance insights */ cpuDataDetail?: { processesData?: {}[]; coresCpuData?: {}[]; coreVariance?: number; additionalProperties?: never; }; /** * This object defines the fields related to the GPU being used by the emitter of the event */ defaultGpuInfo?: { description: string; memoryMegaBytes: number; gpuVersion?: string; additionalProperties?: never; }; otherGpuInfo?: { description: string; memoryMegaBytes: number; gpuVersion?: string; additionalProperties?: never; }[]; /** * This object defines the fields related to the NPU being used by the emitter of the event */ npuInfo?: { description?: string; npuVersion?: string; memoryMegaBytes?: number; additionalProperties?: never; }; dpcRecord?: string[]; mediaLabels?: string[]; screenResolution?: number; screenWidth?: number; screenHeight?: number; appWindowSize?: number; appWindowHeight?: number; appWindowWidth?: number; meetingUserCount?: number; videoUserCount?: number; numScreens?: number; configuredBitrate?: number; configuredPixelRateMainVideo?: number; configuredPixelRateContentVideo?: number; /** * provisioning room type for CE devices */ roomType?: "Briefing" | "Classroom" | "Standard" | "PresenterAndAudience"; peopleCount?: number; /** * currently selected camera mode */ cameraMode?: | "Unknown" | "BestOverview" | "Closeup" | "Frames" | "GroupAndSpeaker" | "Desktop" | "Dynamic" | "Combined" | "Manual"; /** * type of crop/composition created by automatic framing on a video device */ cameraAppliedView?: { /** * name of the view */ viewName: "Overview" | "Closeup" | "Frames" | "OverlaidCloseup" | "Manual" | "Other"; /** * number of composed video panes (usually 1, but can be more in Frames view) */ numberOfVideoPanes: number; additionalProperties?: never; }; /** * This object tracks the evaluated bandwidth associated with Bandwidth Evaluator(MARI) */ evaluatedBandwidth?: { /** * The min bandwidth evaluated by the BW Evaluator (in bits per second) */ minBandwidth?: number; /** * The maximum bandwidth evaluated the BW Evaluator (in bits per second) */ maxBandwidth?: number; /** * The sum of bandwidth down adjustments (in bits per second) */ sumAdjustmentDown?: number; /** * The sum of bandwidth up adjustments (in bits per second) */ sumAdjustmentUp?: number; /** * Number of times bandwidth adjustment caused a change evaluated bandwidth */ countAdjustments?: number; /** * Number of times the Bandwidth Adjustment changed direction Up->Down/Down->Up */ countDirectionChange?: number; /** * Number of times the evaluated bandwidth was affected due to config change */ countConfigChange?: number; additionalProperties?: never; }; uiRenderMinimumFPS?: number; uiRenderMaximumFPS?: number; uiRenderAverageFPS?: number; /** * This object tracks TWCC report exchange(MARI) */ twccReports?: { /** * Number of RTP packets marked with TWSN */ packetsSentWithTwsn?: number; /** * Number of packets sent without TWSN */ packetsSentWithoutTwsn?: number; /** * Number of reports received */ reportsReceived?: number; /** * Number of reports lost */ reportsLost?: number; /** * Longest consecutive run of reports lost */ reportLossBurstLength?: number; /** * Number of packets not acknowledged due to loss of reports */ unacknowledgedPackets?: number; /** * Average bandwidth in kbps */ avgBandwidth?: number; /** * min bandwidth in interval (kbps) */ minBandwidth?: number; /** * max bandwidth in interval (kbps) */ maxBandwidth?: number; additionalProperties?: never; }; isCarbonAwareModeOn?: boolean; isCarbonAwareModeConfigured?: boolean; /** * Network infrastructure identification - uniquely identifies network elements (switches, WiFi APs, cell towers). */ networkInfrastructureInfo?: { /** * Friendly name of the network element (switch name, access point name, or cellular provider name). It can be empty example for wifi, the AP names can be hidden. */ elementName?: string; /** * ID is BSSID for WiFi- derived from AP's mac address, designed to be globally unique. ID is PLMN ID for Cellular- It is globally unique. ID is Chassis ID for Switch- derived from switch's mac address, designed to be globally unique. */ id: string; /** * LLDP Port ID or interface identifier on the switch or Service Set Identifier (WiFi network name) */ interfaceName?: string; additionalProperties?: never; }; additionalProperties?: never; }; audioTransmit: { /** * contains the transmit related fields common between all session types for each interval */ common: { /** * contains the fields common to both transmit and receive sessions for each interval */ common: { isMain: boolean; mariFecEnabled: boolean; mariRtxEnabled?: boolean; mariQosEnabled: boolean; mariLiteEnabled?: boolean; multistreamEnabled: boolean; isMediaBypassEdge?: boolean; isNewAudioPipeline?: boolean; direction: "sendrecv" | "sendonly" | "recvonly" | "inactive"; localPort?: number; peerReflexivePort?: number; remotePort?: number; maxConsecutiveStunAckInterval?: number; yellowMQITimes?: number; redMQITimes?: number; /** * "An indication if the relay point (Homer, MSE etc) was expecting to have media flowing and did so * Example for troubleshooting would be where the enterprise firewall is blocking * inbound rtp. In that case status=FLOW, client rx packets = 0" * */ hbhFlowStatus?: "FLOW" | "FLOW_PRE_ICE" | "FLOW_MEDIA_TIMEOUT" | "NO_FLOW_ERROR" | "NO_FLOW_EXPECTED"; additionalProperties?: never; }; fecPackets: number; fecBitrate: number; dscpValue?: number; rtxPackets?: number; rtxBitrate?: number; rtpPackets: number; rtpBitrate: number; rtcpPackets: number; rtcpBitrate: number; /** * RTCP Information for a given Interval */ txRtcpInfo?: { rtcpSrPackets: number; rtcpRrPackets: number; rtcpReportBlocks: number; rtcpSdesPackets: number; rtcpByePackets: number; rtcpAppPackets: number; rtcpRtpFbPacket: number; rtcpRtpFbNackPackets?: number; rtcpPsFbPackets: number; rtcpPsFbMariPackets: number; rtcpPsFbMariAdaptationPackets?: number; rtcpPsFbMariSyncPackets?: number; rtcpPsFbMultistreamPackets: number; rtcpPsFbMultistreamScrPackets?: number; rtcpPsFbMultistreamScrDuplicatePackets?: number; rtcpPsFbMultistreamScaAckingScrPackets?: number; rtcpPsFbMultistreamScaAutonomousPackets?: number; rtcpPsFbMultistreamScaAutonomousRetransmittedPackets?: number; rtcpPsFbMultistreamScaAckPackets?: number; rtcpPsFbFirPackets?: number; rtcpPsFbPliPackets?: number; rtcpXrPackets: number; additionalProperties?: never; }; stunPackets: number; stunBitrate: number; dtlsPackets: number; dtlsBitrate: number; transportType: "UDP" | "TCP" | "xTLS" | "TLS"; maxBitrate: number; availableBitrate: number; queueDelay: number; meanRoundTripTime?: number; maxRoundTripTime?: number; roundTripTime?: number; remoteReceiveRate?: number; maxRemoteLossRate?: number; remoteLossRate?: number; meanRemoteLossRate?: number; maxRemoteJitter?: number; remoteJitter?: number; meanRemoteJitter?: number; traversalMinDelayMs?: number; traversalMaxDelayMs?: number; traversalMeanDelayMs?: number; rtpInputFifoDelayMs?: number; rtpInputFifoMaxDelayMs?: number; rtpInputFifoMinDelayMs?: number; rtpInputFifoMeanDelayMs?: number; totalPackets?: number; totalBitrate?: number; /** * Tracks RTP/RTCP packet sizes */ mediaPacketSize?: { /** * Maximum RTP packet size (including media payload and RTP headers) */ maxRtpPacketSize?: number; /** * Average RTP packet size (including media payload and RTP headers) */ meanRtpPacketSize?: number; /** * Minimum RTP packet size (including media payload and RTP headers) */ minRtpPacketSize?: number; /** * Maximum RTCP packet size */ maxRtcpPacketSize?: number; additionalProperties?: never; }; cellularType?: | "cellular_2G" | "cellular_2.5G" | "cellular_3G" | "cellular_3.5G" | "cellular_4G" | "cellular_5G"; isVPN?: boolean; isVPNSplitTunneling?: boolean; additionalProperties?: never; }; streams: { /** * contains fields common to all transmit streams types */ common: { ssci: number; duplicateSsci?: number; rtpPackets: number; transmittedFrameRate?: number; requestedFrames?: number; transmittedBitrate: number; requestedBitrate: number; captureOffset?: number; codec: string; csi?: number[]; /** * This object tracks SSRC and CSRC changes for an RTP stream, session, etc */ sourceChanges?: { /** * The number of RTP SSRC changes seen. The first RTP packet seen should NOT be counted as a change. */ ssrcChanges: number; /** * The number of RTP CSRC changes seen. The first RTP packet seen should NOT be counted as a change. Changes from zero to non-zero CSRC should be counted as a change. */ csrcChanges: number; additionalProperties?: never; }; largeSceneChangeCount?: number; /** * This object tracks the the end to end delay(the delay between capture time of sender side and render time of receiver side) */ internalDelay?: { /** * The average delay (in milliseconds) from end to end */ meanDelay: number; /** * The maximum delay (in milliseconds) from end to end */ maxDelay: number; /** * The minimum delay (in milliseconds) from end to end */ minDelay: number; additionalProperties?: never; }; additionalProperties?: never; }; backgroundNoiseReductionMode?: | "AUDIO_BACKGROUND_NOISE_REDUCTION_NONE" | "AUDIO_BACKGROUND_NOISE_REDUCTION_HIGH_PERFORMANCE" | "AUDIO_BACKGROUND_NOISE_REDUCTION_LOW_POWER" | "AUDIO_BACKGROUND_NOISE_REDUCTION_AUTO_HIGH_PERFORMANCE" | "AUDIO_BACKGROUND_NOISE_REDUCTION_AUTO_LOW_POWER"; backgroundNoiseReductionTalkerMode?: | "AUDIO_BACKGROUND_NOISE_REDUCTION_TALKER_NONE" | "AUDIO_BACKGROUND_NOISE_REDUCTION_CLASSIC_MODE" | "AUDIO_BACKGROUND_NOISE_REDUCTION_SINGLE_TALKER_MODE" | "AUDIO_BACKGROUND_NOISE_REDUCTION_MULTI_TALKER_MODE" | "AUDIO_BACKGROUND_NOISE_REDUCTION_MUSIC_MODE"; audioTXSPCStatus?: "AUDIO_SPC_STATUS_DISABLED" | "AUDIO_SPC_STATUS_SUSPENDED" | "AUDIO_SPC_STATUS_ENABLED"; audioTXSPCLevel?: | "AUDIO_NONE" | "AUDIO_LOW" | "AUDIO_MEDIUM" | "AUDIO_NORMAL" | "AUDIO_HIGH" | "AUDIO_HIGHPLUS" | "AUDIO_TOP"; /** * audio encoder engine performance data */ audioEncoderEngineInfo?: { /** * The number of audio packets sent to the encoder buffer */ encoderBufferPacket?: number; /** * The number of dropped audio packets before sent to the encoder buffer */ encoderBufferDroppedPacket?: number; /** * The average processing time (microseconds) on background noise reduction (BNR) */ averageBNRProcessTime?: number; /** * The average processing time (microseconds) on audio encoder pipeline */ averageEncoderProcessTime?: number; /** * how many frames are encoded by Xcodec in one minute. */ xcodecTotalEncodedFrames?: number; /** * what is the condition that encoder switch into Xcodec and back to other codec, and xcodec duration larger than 30s */ xcodecLongCaseCondition?: number; /** * what is the condition that encoder switch into Xcodec and back to other codec, and xcodec duration shorter than 30s */ xcodecShortCaseCondition?: number; /** * Xcodec encoder duration, larger than 30s */ xcodecLongEncodeTime?: number; /** * Xcodec encoder duration, shorter than 30s */ xcodecShortEncodeTime?: number; /** * number of encoder switch to Xcodec within 1 minute */ switchToXcodecCount?: number; /** * For every minute, the status related to xcodec will be represented by the value of the corresponding bit. */ xcodecStatus?: number; /** * is audio encode thread use lock-free queue */ encoderLockFree?: boolean; /** * Peak of 1-second average audio encoder queue sizes during the reporting interval. */ encoderQueueSizePeakAvg?: number; /** * Maximum queue wait time (in microseconds) for audio frames in the encoder buffer. */ encoderQueueLatencyMaxUs?: number; /** * Peak of 1-second average queue latencies (in microseconds) for audio frames in the encoder buffer. */ encoderQueueLatencyPeakAvgUs?: number; additionalProperties?: never; }; /** * audio transmitted algorithm modules performance data(AEC,AGC,NR,MultiChannelPreprocess) */ audioAlgorithmModulesInfo?: { /** * one char every 1 minute, 0 indicate 0db, plus 1 indicate -0.5dB */ aecNearPower: number; /** * one char every 1 minute, 0 indicate 0db, plus 1 indicate -0.5dB */ aecFarPower: number; /** * one char every 1 minute, 0 indicate 0db, plus 1 indicate -0.5dB */ aecLinearOutPower?: number; /** * one char every 1 minute, 0 indicate 0db, plus 1 indicate -0.5dB */ aecOutPower?: number; /** * one char every 1 minute, 0 indicate 54dB, plus 1 indicate +0.5dB */ aecERLE?: number; /** * one unsigned short every 1 minute */ aecProcessTime?: number; /** * one char every 1 minute, 0 indicate 0dB, plus 1 indicate +0.5dB */ aecERL?: number; /** * one char every 1 minute, 0 indicate 54dB, plus 1 indicate +0.5dB */ linearAecERLE?: number; /** * one char every 1 minute, 0 indicate 0ms, plus 1 indicate 10ms */ estDelay?: number; /** * one char every 1 minute */ aecType?: number; /** * one unsigned short every 1 minute */ aecCostTime?: number; /** * one unsigned short every 1 minute */ multichannelChangedDelay?: number; /** * one unsigend char every 1 minute, 0 indicate 0db, plus 1 indicate -0.5dB */ multichannelDelaySumOutPower?: number; /** * one unsigend char every 1 minute, 0 indicate 0db, plus 1 indicate -0.5dB */ multichannelAverageOutPower?: number; /** * one unsigned char every 1 minute, 0 for 0dB, plus 1 for -0.5dB */ speechRMS?: number; /** * one unsigned char every 1 minute, 0 for 0dB, plus 1 for -0.5dB */ maxSpeechRMS?: number; /** * one unsigned char every 1 minute, 0 for 0dB, plus 1 for -0.5dB */ maxRMS?: number; /** * one unsigned char every 1 minute, 0 for 0dB, plus 1 for -0.5dB */ maxRMSBeforeEncode?: number; /** * one unsigned char every 1 minute, 0 for 0dB, plus 1 for -0.5dB */ speechRMSBeforeDAGC?: number; /** * one unsigned char every 1 minute, 0 for 0dB, plus 1 for -0.5dB */ speechRMSAfterBNR?: number; /** * one unsigned char every 1 minute, 0 for 0dB, plus 1 for -0.5dB */ speechRMSBeforeEncode?: number; /** * one unsigned char every 1 minute, 0 for 0dB, plus 1 for -0.5dB */ avrRMS?: number; /** * one integer value in dB every 1 minute, range is -10dB to 40dB */ appliedInitialGain?: number; /** * one unsigned char every 1 minute, 10 means capture zero data ratio is 10% */ captureZeroRatio?: number; /** * one unsigned char every 1 minute, 10 means volume drop times is 10 */ volumeDropTimes?: number; /** * one unsigned char every 1 minute, 0 for 0s, plus 4 for +1s */ speechLength?: number; /** * one unsigned char every 1 minute, 0 for 0s, plus 20 for +1s */ agcConvergenceTime?: number; /** * one unsigned char every 1 minute, VAD value to reflect speech quality */ speechQuality?: number; /** * one char every 1 minute. */ remoteIOStatus?: number; /** * one char every 1 minute */ multichannelPreprocessEnabled?: number; /** * one char every 1 minute */ bypassWindowsAPOAllowListEnabled?: number; /** * one char every 1 minute, 0 for 0dB, plus 1 for 0.5dB */ bnrSNR?: number; /** * one unsigned short every 1 minute */ bnrTRN?: number; /** * one short every 1 minute */ ftTotal?: number; /** * one short every 1 minute */ noiseTotal?: number; /** * one short every 1 minute */ echoTotal?: number; /** * one short every 1 minute */ ftLeakage?: number; /** * one short every 1 minute */ noiseLeakage?: number; /** * one short every 1 minute */ echoLeakage?: number; /** * one char every 1 minute, 0 indicate 0db, plus 1 indicate 0.0472dB. */ multichannelDelaySumAndDirectMixRMSRatio?: number; windowsAPOBypassed?: boolean; /** * one short every 1 minute */ aecStereoStatus?: number; /** * one short every 1 minute,0 indicate 90%,plus 1 indicate 0.1% */ vadRetentionOnMute?: number; /** * one unsigned short every 1 minute */ averageTxModuleCostTime?: number; captureAnalogAGCEnabled?: boolean; /** * one float every 1 minute */ bnrInEnergyBelow4K?: number; /** * one float every 1 minute */ bnrInEnergy4KTo8K?: number; /** * one short every 1 minute */ opusDredEncodeFramesPerMin?: number; /** * one short every 1 minute */ opusDredTxMaxCostTimePerMin?: number; /** * one short every 1 minute */ opusDredTxAvgCostTimePerMin?: number; /** * one short every 1 minute */ encoderTxMaxCostTimePerMin?: number; /** * one short every 1 minute */ encoderTxAvgCostTimePerMin?: number; /** * one int every 1 minute */ txEffectiveBandwidth?: number; /** * one int64 every 1 minute */ txBeforeOnCaptureDataJitterHistorgram?: number; /** * one int64 every 1 minute */ txAfterOnCaptureDataJitterHistorgram?: number; /** * one int64 every 1 minute */ txBeforeBufferAndEncodeJitterHistorgram?: number; /** * one int64 every 1 minute */ txAfterBufferAndEncodeJitterHistorgram?: number; /** * one short every 1 minute */ txBeforeBufferAndEncodeJitterP50Offset?: number; /** * one short every 1 minute */ txBeforeBufferAndEncodeJitterP95Offset?: number; /** * one short every 1 minute */ txAfterBufferAndEncodeJitterP50Offset?: number; /** * one short every 1 minute */ txAfterBufferAndEncodeJitterP95Offset?: number; /** * one float every 1 minute */ txbweExecuteTime?: number; /** * one int8 every 1 minute */ aecLookBackFrames?: number; additionalProperties?: never; }; /** * audio transmit pipeline modules' quality metric */ audioModuleQualityInfo?: {}; audioCaptureMethod?: "AUDIO_ANDROID_JAVA_METHOD" | "AUDIO_ANDROID_AAUDIO_METHOD"; additionalProperties?: never; }[]; /** * information about tracked audio levels */ levels?: { /** * The average audio input gain for a microphone or speaker, in decibels */ audioMeanGain?: number; /** * The minimum audio input gain for a microphone or speaker, in decibels */ audioMinGain?: number; /** * The maximum audio input gain for a microphone or speaker, in decibels */ audioMaxGain?: number; /** * The mean audio output volume for a microphone or speaker, in absolute volume [0-65535] */ audioMeanVolume?: number; /** * The min audio output volume for a microphone or speaker, in absolute volume [0-65535] */ audioMinVolume?: number; /** * The max audio output volume for a microphone or speaker, in absolute volume [0-65535] */ audioMaxVolume?: number; additionalProperties?: never; }; captureHardwareProvidedAudioPacketsPerSecond?: number; sharedAudioPacketsPerSecond?: number; /** * one int64 every 1 minute */ txAfterNetworkThreadJitterHistorgram?: number; /** * one short every 1 minute */ txAfterNetworkThreadJitterP50Offset?: number; /** * one short every 1 minute */ txAfterNetworkThreadJitterP95Offset?: number; mediaFoundationState?: number; /** * information about audio driver both on capture and playback side. */ audioCapturePlaybackDriverInfo?: { capture?: {}; playback?: {}; additionalProperties?: never; }; /** * The max jitter of time interval for audio system callback data and the sum of the audio data duration both on capture and playback side for all platforms. */ audioCapturePlaybackSystemCallback?: { capture?: {}; playback?: {}; additionalProperties?: never; }; /** * The audio processing cost time both on capture and playback side for all platforms. */ audioCapturePlaybackProcessingCostTime?: { capture?: {}; playback?: {}; additionalProperties?: never; }; /** * information about audio share device. */ audioShareDeviceInfo?: { openCostTimeMs?: number; reservedCost?: number; maxRms?: number; additionalProperties?: never; }; /** * The duration of audio system callback data lost both on capture and playback side for all platforms. */ audioCapturePlaybackCallbackLostDuration?: { capture?: {}; playback?: {}; additionalProperties?: never; }; additionalProperties?: never; }[]; videoTransmit: { /** * contains the transmit related fields common between all session types for each interval */ common: { /** * contains the fields common to both transmit and receive sessions for each interval */ common: { isMain: boolean; mariFecEnabled: boolean; mariRtxEnabled?: boolean; mariQosEnabled: boolean; mariLiteEnabled?: boolean; multistreamEnabled: boolean; isMediaBypassEdge?: boolean; isNewAudioPipeline?: boolean; direction: "sendrecv" | "sendonly" | "recvonly" | "inactive"; localPort?: number; peerReflexivePort?: number; remotePort?: number; maxConsecutiveStunAckInterval?: number; yellowMQITimes?: number; redMQITimes?: number; /** * "An indication if the relay point (Homer, MSE etc) was expecting to have media flowing and did so * Example for troubleshooting would be where the enterprise firewall is blocking * inbound rtp. In that case status=FLOW, client rx packets = 0" * */ hbhFlowStatus?: "FLOW" | "FLOW_PRE_ICE" | "FLOW_MEDIA_TIMEOUT" | "NO_FLOW_ERROR" | "NO_FLOW_EXPECTED"; additionalProperties?: never; }; fecPackets: number; fecBitrate: number; dscpValue?: number; rtxPackets?: number; rtxBitrate?: number; rtpPackets: number; rtpBitrate: number; rtcpPackets: number; rtcpBitrate: number; /** * RTCP Information for a given Interval */ txRtcpInfo?: { rtcpSrPackets: number; rtcpRrPackets: number; rtcpReportBlocks: number; rtcpSdesPackets: number; rtcpByePackets: number; rtcpAppPackets: number; rtcpRtpFbPacket: number; rtcpRtpFbNackPackets?: number; rtcpPsFbPackets: number; rtcpPsFbMariPackets: number; rtcpPsFbMariAdaptationPackets?: number; rtcpPsFbMariSyncPackets?: number; rtcpPsFbMultistreamPackets: number; rtcpPsFbMultistreamScrPackets?: number; rtcpPsFbMultistreamScrDuplicatePackets?: number; rtcpPsFbMultistreamScaAckingScrPackets?: number; rtcpPsFbMultistreamScaAutonomousPackets?: number; rtcpPsFbMultistreamScaAutonomousRetransmittedPackets?: number; rtcpPsFbMultistreamScaAckPackets?: number; rtcpPsFbFirPackets?: number; rtcpPsFbPliPackets?: number; rtcpXrPackets: number; additionalProperties?: never; }; stunPackets: number; stunBitrate: number; dtlsPackets: number; dtlsBitrate: number; transportType: "UDP" | "TCP" | "xTLS" | "TLS"; maxBitrate: number; availableBitrate: number; queueDelay: number; meanRoundTripTime?: number; maxRoundTripTime?: number; roundTripTime?: number; remoteReceiveRate?: number; maxRemoteLossRate?: number; remoteLossRate?: number; meanRemoteLossRate?: number; maxRemoteJitter?: number; remoteJitter?: number; meanRemoteJitter?: number; traversalMinDelayMs?: number; traversalMaxDelayMs?: number; traversalMeanDelayMs?: number; rtpInputFifoDelayMs?: number; rtpInputFifoMaxDelayMs?: number; rtpInputFifoMinDelayMs?: number; rtpInputFifoMeanDelayMs?: number; totalPackets?: number; totalBitrate?: number; /** * Tracks RTP/RTCP packet sizes */ mediaPacketSize?: { /** * Maximum RTP packet size (including media payload and RTP headers) */ maxRtpPacketSize?: number; /** * Average RTP packet size (including media payload and RTP headers) */ meanRtpPacketSize?: number; /** * Minimum RTP packet size (including media payload and RTP headers) */ minRtpPacketSize?: number; /** * Maximum RTCP packet size */ maxRtcpPacketSize?: number; additionalProperties?: never; }; cellularType?: | "cellular_2G" | "cellular_2.5G" | "cellular_3G" | "cellular_3.5G" | "cellular_4G" | "cellular_5G"; isVPN?: boolean; isVPNSplitTunneling?: boolean; additionalProperties?: never; }; streams: { /** * contains fields common to all transmit streams types */ common: { ssci: number; duplicateSsci?: number; rtpPackets: number; transmittedFrameRate?: number; requestedFrames?: number; transmittedBitrate: number; requestedBitrate: number; captureOffset?: number; codec: string; csi?: number[]; /** * This object tracks SSRC and CSRC changes for an RTP stream, session, etc */ sourceChanges?: { /** * The number of RTP SSRC changes seen. The first RTP packet seen should NOT be counted as a change. */ ssrcChanges: number; /** * The number of RTP CSRC changes seen. The first RTP packet seen should NOT be counted as a change. Changes from zero to non-zero CSRC should be counted as a change. */ csrcChanges: number; additionalProperties?: never; }; largeSceneChangeCount?: number; /** * This object tracks the the end to end delay(the delay between capture time of sender side and render time of receiver side) */ internalDelay?: { /** * The average delay (in milliseconds) from end to end */ meanDelay: number; /** * The maximum delay (in milliseconds) from end to end */ maxDelay: number; /** * The minimum delay (in milliseconds) from end to end */ minDelay: number; additionalProperties?: never; }; additionalProperties?: never; }; transmittedFrameSize: number; requestedFrameSize: number; transmittedHeight: number; transmittedWidth: number; transmittedKeyFrames: number; requestedKeyFrames: number; transmittedKeyFramesFeedback?: number; transmittedKeyFramesConfigurationChange?: number; transmittedKeyFramesSceneChange?: number; transmittedKeyFramesOtherLayer?: number; transmittedKeyFramesClient?: number; transmittedKeyFramesPeriodic?: number; transmittedKeyFramesLocalDrop?: number; transmittedKeyFramesStartup?: number; transmittedKeyFramesUnknown?: number; transmittedKeyFramesEncLayerIndexChange?: number; transmittedKeyFramesSwitchingPoint?: number; localConfigurationChanges: number; remoteConfigurationChanges: number; h264CodecProfile: "BP" | "CHP"; /** * This object tracks AV1 encoder performance metrics and configuration */ av1Metrics?: { /** * AV1 encoder speed setting (0-5, where 0 is slowest/highest quality, 5 is fastest/lowest quality). * When AV1 is not active, 0 is reported and disableReason is set; when AV1 is active, the actual speed is reported and disableReason is absent. * Speed 0 when AV1 is active is reserved (e.g. research) and not used in production. * */ encodeSpeed?: number; /** * SIMD instruction set used by the AV1 encoder (e.g., "C", "SSE", "SSE2", "SSE3", "SSSE3", "SSE4_1", "AVX", "AVX2", "AVX512"). Only present when AV1 is actively encoding. */ simdType?: string; /** * Reason why AV1 encoding is disabled, if applicable. Empty or absent when AV1 is actively encoding. Examples include "NotEnabled", "RecordingOn", "DPCDisableAV1", "SPCDisableAV1", "RemoteNotSubscribed", "FeatureToggleOff". */ disableReason?: string; additionalProperties?: never; }; /** * Windowed PSNR (Peak Signal-to-Noise Ratio) metrics for local encoded video quality monitoring. * Reported when windowed PSNR is enabled for the encoder (AV1 or OpenH264/ H.264); values are * averaged over the reporting interval. Only present when at least one PSNR sample was taken * in the interval. * */ videoQuality?: { /** * Y-plane (luma) PSNR in dB, average over the reporting interval. */ psnrY?: number; /** * U-plane PSNR in dB, average over the reporting interval. Reserved (e.g. 0) when only luma is measured. */ psnrU?: number; /** * V-plane PSNR in dB, average over the reporting interval. Reserved (e.g. 0) when only luma is measured. */ psnrV?: number; /** * Combined YUV PSNR in dB, average over the reporting interval. Reserved (e.g. 0) when only luma is measured. */ psnrYuv?: number; /** * Number of PSNR samples included in the interval average. */ psnrSampleCount?: number; additionalProperties?: never; }; isAvatar?: boolean; /** * video encode quality metrics */ encodeQuality?: { minRegionQp?: number; maxFrameQp?: number; avgFrameQp?: number; maxNoiseLevel?: number; maxStrobeLevel?: number; videoStrobePattern?: | "VIDEO_STROBE_PATTERN_NONE" | "VIDEO_STROBE_PATTERN_LOCAL" | "VIDEO_STROBE_PATTERN_GLOBAL" | "VIDEO_STROBE_PATTERN_BAND" | "VIDEO_STROBE_PATTERN_MIXED"; maxAntiStrobeProcessMillis?: number; additionalProperties?: never; }; /** * video transmit downgrade reasons */ downgradeReason?: { isCamera: boolean; isNetwork: boolean; isCpu: boolean; isRequested?: boolean; isUser?: boolean; isHardware?: boolean; additionalProperties?: never; }; isHardwareEncoded?: boolean; backgroundAugmentationType?: | "VIDEO_BACKGROUND_AUGMENT_NONE" | "VIDEO_BACKGROUND_AUGMENT_BLUR" | "VIDEO_BACKGROUND_AUGMENT_REPLACE_IMAGE" | "VIDEO_BACKGROUND_AUGMENT_REPLACE_VIDEO" | "VIDEO_BACKGROUND_AUGMENT_BLUR_INHOUSE" | "VIDEO_BACKGROUND_AUGMENT_REPLACE_IMAGE_INHOUSE" | "VIDEO_BACKGROUND_AUGMENT_REPLACE_VIDEO_INHOUSE"; backgroundAugmentationFrameworkType?: | "VIDEO_VBG_FRAMEWORK_NONE" | "VIDEO_VBG_FRAMEWORK_COREML" | "VIDEO_VBG_FRAMEWORK_METAL" | "VIDEO_VBG_FRAMEWORK_CBASED" | "VIDEO_VBG_FRAMEWORK_OPENVINO" | "VIDEO_VBG_FRAMEWORK_OPENVINO_CPU" | "VIDEO_VBG_FRAMEWORK_XNN_GPU" | "VIDEO_VBG_FRAMEWORK_XNN_CPU" | "VIDEO_VBG_FRAMEWORK_XNN_NPU" | "VIDEO_VBG_FRAMEWORK_COREML_LADON" | "VIDEO_VBG_FRAMEWORK_METAL_LADON" | "VIDEO_VBG_FRAMEWORK_CBASED_LADON" | "VIDEO_VBG_FRAMEWORK_OPENVINO_LADON"; touchupMode?: "DISABLED" | "WEAK" | "MEDIUM" | "STRONG"; touchupBlendFactor?: number; /** * transmit video pipeline performance metric */ encoderProcessInfo?: { meanEncoderProcessMillis: number; maxEncoderProcessMillis: number; meanVbgProcessMillis?: number; maxVbgProcessMillis?: number; additionalProperties?: never; }; /** * transmit video processing pipeline performance metrics */ videoProcessInfo?: { meanDenoiseMillis?: number; meanMiaMillis?: number; meanDownsampleMillis?: number; maxDenoiseMillis?: number; maxMiaMillis?: number; maxDownsampleMillis?: number; additionalProperties?: never; }; backgroundAugmentationModelVersion?: string; ladonModelGpuLoadTime?: number; wmlHostStartErrorType?: | "NONE" | "FILE_NOT_FOUND" | "ACCESS_DENIED" | "BAD_EXE_FORMAT" | "EXE_MACHINE_TYPE_MISMATCH" | "POLICY_BLOCKED" | "VERIFICATION_FAILED" | "HOST_PATH_EMPTY" | "IPC_OPEN_FAILED" | "OTHER"; isGestureDetectorOn?: boolean; isBrbDetectorOn?: boolean; isRelightingOn?: boolean; relightingNeededFrameCount?: number; relightingSkippedFrameCount?: number; relightingConfidenceScore?: number; meanRelitPostProcessMillis?: number; faceDetectMillis?: number; faceDetectCount?: number; faceDetectSuccessRate?: number; badFacePositionRate?: number; capturedFrameRateNormalShare?: number; capturedFrameRateHFPSShare?: number; transmittedFrameRateNormalShare?: number; transmittedFrameRateHFPSShare?: number; /** * the method use to capture the screen for screen sharing */ screenCaptureMode?: | "Unknown" | "Default" | "MAG" | "DUP" | "AVF" | "CGS" | "GDI" | "DIRECTX" | "WINDOW" | "SCK" | "WGC" | "X11" | "MTR" | "WLD"; screenCaptureModeFallbackCount?: number; screenCaptureRecord?: string[]; /** * the mode of Presenter Overlay feature Apple provides */ presenterOverlayMode?: "Disabled" | "Small" | "Large"; processShareContentDetectMillis?: number; shareContentDetectedToApplyDelayMax?: number; /** * content type of sharing session */ shareContentDetectedType?: "video" | "text"; /** * method used to detect the content type of sharing session */ shareContentDetectedMethod?: "ai" | "vp" | "preferred" | "others"; shareContentSwitchedToVideoCount?: number; shareContentSwitchedToTextCount?: number; shareContentVideoDetectionFluctuatesMaxCount?: number; shareContentTextDetectionFluctuatesMaxCount?: number; shareContentVideoDuration?: number; shareContentTextDuration?: number; sharedDisplayWidth?: number; sharedDisplayHeight?: number; maxCodedFrameSize?: number; maxCodedFrameSizeIsFromKeyFrame?: boolean; /** * Details associated with a share floor type */ floorType?: { name: "DEFAULT" | "EMBEDDED_APP" | "OTHER"; priority?: {}; additionalProperties?: never; }; /** * view type of a video stream */ announcedView?: "Default" | "Speaker" | "Stereoscopic"; /** * type of crop/composition created by automatic framing on a video device */ cameraAppliedView?: { /** * name of the view */ viewName: "Overview" | "Closeup" | "Frames" | "OverlaidCloseup" | "Manual" | "Other"; /** * number of composed video panes (usually 1, but can be more in Frames view) */ numberOfVideoPanes: number; additionalProperties?: never; }; contentSourceInputs?: { sourceType: {}; sourceIdentifier: string; correlationId?: string; lastIntervalNumber?: number; height: number; width: number; frameRate: number; additionalProperties?: never; }[]; videoSourceInputs?: { /** * Video source type for outgoing video sessions */ sourceType: | "HDMI" | "SDI" | "InternCamera" | "VGA" | "USBC" | "USBCamera" | "VideoOverEthernet" | "AirPlay" | "Miracast" | "DirectShare" | "JpgPresentation" | "JpgVideoMutePoster" | "JpgRemoteAccess" | "Other"; sourceIdentifier: string; correlationId?: string; lastIntervalNumber?: number; height: number; width: number; frameRate: number; additionalProperties?: never; }[]; camOutputFps?: number; camOutputIntervalMin?: number; camOutputIntervalMax?: number; camOutputSysIntervalMin?: number; camOutputSysIntervalMax?: number; adaptedFrames?: number; droppedFrames?: number; sentFps?: number; vbgOutputFps?: number; encCtrlTargetedFps?: number; qstarTargetedFps?: number; feedToEncodeFps?: number; qstarBiasedFpsCount?: number; qstarBiasedFps?: number; qstarBiasedResCount?: number; qstarBiasedRes?: number; txMinSentFps?: number; maxFrameTransmitDelay?: number; maxFrameTransmitDelayIsFromKeyframe?: boolean; isSmoothEncodeEnabled?: boolean; numRcSkippedFrames?: number; largestRcSkippedFrames?: number; meanRcTheoreticalLatency?: number; maxRcTheoreticalLatency?: number; additionalProperties?: never; }[]; viewAnnouncements?: ("Default" | "Speaker" | "Stereoscopic")[]; viewReconfigurations?: number; txSimulcastNum?: number; additionalProperties?: never; }[]; audioReceive: { /** * contains the receive related fields between all sessions types for each interval. */ common: { /** * contains the fields common to both transmit and receive sessions for each interval */ common: { isMain: boolean; mariFecEnabled: boolean; mariRtxEnabled?: boolean; mariQosEnabled: boolean; mariLiteEnabled?: boolean; multistreamEnabled: boolean; isMediaBypassEdge?: boolean; isNewAudioPipeline?: boolean; direction: "sendrecv" | "sendonly" | "recvonly" | "inactive"; localPort?: number; peerReflexivePort?: number; remotePort?: number; maxConsecutiveStunAckInterval?: number; yellowMQITimes?: number; redMQITimes?: number; /** * "An indication if the relay point (Homer, MSE etc) was expecting to have media flowing and did so * Example for troubleshooting would be where the enterprise firewall is blocking * inbound rtp. In that case status=FLOW, client rx packets = 0" * */ hbhFlowStatus?: "FLOW" | "FLOW_PRE_ICE" | "FLOW_MEDIA_TIMEOUT" | "NO_FLOW_ERROR" | "NO_FLOW_EXPECTED"; additionalProperties?: never; }; fecPackets: number; fecBitrate: number; dscpValue?: number; rtxPackets?: number; rtxBitrate?: number; meanRtxDelay?: number; maxRtxDelay?: number; rtpPackets: number; rtpBitrate: number; rtpHopByHopLost: number; mediaHopByHopLost: number; rtpRecovered: number; rtxRecovered?: number; rtcpPackets: number; rtcpBitrate: number; /** * RTCP Information for a given Interval */ rxRtcpInfo?: { rtcpSrPackets: number; rtcpRrPackets: number; rtcpReportBlocks: number; rtcpSdesPackets: number; rtcpByePackets: number; rtcpAppPackets: number; rtcpRtpFbPacket: number; rtcpRtpFbNackPackets?: number; rtcpPsFbPackets: number; rtcpPsFbMariPackets: number; rtcpPsFbMariAdaptationPackets?: number; rtcpPsFbMariSyncPackets?: number; rtcpPsFbMultistreamPackets: number; rtcpPsFbMultistreamScrPackets?: number; rtcpPsFbMultistreamScrDuplicatePackets?: number; rtcpPsFbMultistreamScaAckingScrPackets?: number; rtcpPsFbMultistreamScaAutonomousPackets?: number; rtcpPsFbMultistreamScaAutonomousRetransmittedPackets?: number; rtcpPsFbMultistreamScaAckPackets?: number; rtcpPsFbFirPackets?: number; rtcpPsFbPliPackets?: number; rtcpXrPackets: number; additionalProperties?: never; }; stunPackets: number; stunBitrate: number; dtlsPackets: number; dtlsBitrate: number; transportType: "UDP" | "TCP" | "xTLS" | "TLS"; maxBitrate: number; srtpUnprotectErrors: number; /** * SRTP/SRTCP unprotect error details */ srtpUnprotectErrorDetails?: { authFailures: number; cipherFailures: number; replayFailures: number; unknownFailures: number; additionalProperties?: never; }; srtcpUnprotectErrors?: number; /** * SRTP/SRTCP unprotect error details */ srtcpUnprotectErrorDetails?: { authFailures: number; cipherFailures: number; replayFailures: number; unknownFailures: number; additionalProperties?: never; }; totalPackets?: number; totalBitrate?: number; /** * Tracks RTP/RTCP packet sizes */ mediaPacketSize?: { /** * Maximum RTP packet size (including media payload and RTP headers) */ maxRtpPacketSize?: number; /** * Average RTP packet size (including media payload and RTP headers) */ meanRtpPacketSize?: number; /** * Minimum RTP packet size (including media payload and RTP headers) */ minRtpPacketSize?: number; /** * Maximum RTCP packet size */ maxRtcpPacketSize?: number; additionalProperties?: never; }; cellularType?: | "cellular_2G" | "cellular_2.5G" | "cellular_3G" | "cellular_3.5G" | "cellular_4G" | "cellular_5G"; isVPN?: boolean; isVPNSplitTunneling?: boolean; maxHbhJitter?: number; meanHbhJitter?: number; additionalProperties?: never; }; streams: { /** * contains fields common to all types of receive stream */ common: { ssci: number; rtpPackets: number; rtpEndToEndLost: number; rtpMaxEndToEndLoss?: number; rtpMinEndToEndLoss?: number; concealedFrames: number; maxConcealRunLength: number; activeSpeech?: number; activeSpeechConcealment?: number; maxConsecutiveActiveSpeechConcealment?: number; silenceFromGatewayNum?: number; inbandPacketLossRate?: number; cngPacketNum?: number; silenceSuppressionNum?: number; maxTimestampInterval?: number; maxUnderrunNum?: number; receivedFrameRate?: number; renderedFrameRate?: number; requestedFrameRate?: number; optimalFrameRate?: number; renderedHarmonicScore?: number; sentToRenderFrames?: number; renderedFrames?: number; renderedFrameSkips?: number; renderedFrameMaxContinuousSkip?: number; meanRtpJitter?: number; maxRtpJitter?: number; rtpJitter?: number; receivedBitrate: number; requestedBitrate: number; optimalBitrate: number; durationForSpeedChanged?: number; endToEndTransmitDelay?: number; csi: number[]; codec: string; language?: | "floor" | "si-af" | "si-sq" | "si-am" | "si-ar" | "si-hy" | "si-az" | "si-eu" | "si-be" | "si-bn" | "si-bs" | "si-bg" | "si-zh-HK" | "si-ca" | "si-ceb" | "si-co" | "si-hr" | "si-cs" | "si-da" | "si-nl" | "si-en" | "si-eo" | "si-et" | "si-fi" | "si-fr" | "si-fy" | "si-gl" | "si-ka" | "si-de" | "si-el" | "si-gu" | "si-zh-TW" | "si-ht" | "si-ha" | "si-haw" | "si-he" | "si-hi" | "si-hmn" | "si-hu" | "si-is" | "si-ig" | "si-id" | "si-ga" | "si-it" | "si-ja" | "si-jv" | "si-kn" | "si-kk" | "si-km" | "si-rw" | "si-ko" | "si-ku" | "si-ky" | "si-lo" | "si-la" | "si-lv" | "si-lt" | "si-lb" | "si-mk" | "si-mg" | "si-ms" | "si-ml" | "si-mt" | "si-zh" | "si-mi" | "si-mr" | "si-mn" | "si-my" | "si-ne" | "si-no" | "si-ny" | "si-or" | "si-ps" | "si-fa" | "si-pl" | "si-pt" | "si-pa" | "si-ro" | "si-ru" | "si-sm" | "si-gd" | "si-sr" | "si-st" | "si-sn" | "si-sd" | "si-si" | "si-sk" | "si-sl" | "si-so" | "si-es" | "si-su" | "si-sw" | "si-sv" | "si-tl" | "si-tg" | "si-ta" | "si-tt" | "si-te" | "si-th" | "si-tr" | "si-tk" | "si-uk" | "si-ur" | "si-ug" | "si-uz" | "si-vi" | "si-cy" | "si-xh" | "si-yi" | "si-yo" | "si-zu" | "si-Other"; /** * This object tracks SSRC and CSRC changes for an RTP stream, session, etc */ sourceChanges?: { /** * The number of RTP SSRC changes seen. The first RTP packet seen should NOT be counted as a change. */ ssrcChanges: number; /** * The number of RTP CSRC changes seen. The first RTP packet seen should NOT be counted as a change. Changes from zero to non-zero CSRC should be counted as a change. */ csrcChanges: number; additionalProperties?: never; }; /** * The object tracks the detail reasons by which concealment is caused. The unit of metrics depend on upper-level objects. Currently, packet or frame can be used as unit. */ concealmentReasonByPacket?: { /** * concealment caused by network loss */ byNetwork?: number; /** * concealment caused by buffer overflow. when total buffer length exceeds max delay threshold, buffer will overflow and data will be dropped. */ byOverflow?: number; /** * concealment caused by buffer is reset. */ byReset?: number; /** * concealment caused by late packet or frame. some packets or frames arrive late and the previous one has been played. */ byLate?: number; /** * concealment caused by poor performance. */ byPoorPerformance?: number; /** * only for audio. Number of concealment packets/frames sent to the audio decoder when frames are held back to increase re-order audio delay. */ byIncreasedDelay?: number; /** * only for video. concealment caused by AV sync */ byAVSync?: number; /** * only for video. Some video frames which have not been complete are forced to pop up because the subsequent frame has been complete. This cause video concealment. */ byPrevFramePopped?: number; /** * concealment caused by the other unknown reasons */ byOthers?: number; additionalProperties?: never; }; /** * The object tracks the detail reasons by which concealment is caused. The unit of metrics depend on upper-level objects. Currently, packet or frame can be used as unit. */ concealmentReasonByFrame?: { /** * concealment caused by network loss */ byNetwork?: number; /** * concealment caused by buffer overflow. when total buffer length exceeds max delay threshold, buffer will overflow and data will be dropped. */ byOverflow?: number; /** * concealment caused by buffer is reset. */ byReset?: number; /** * concealment caused by late packet or frame. some packets or frames arrive late and the previous one has been played. */ byLate?: number; /** * concealment caused by poor performance. */ byPoorPerformance?: number; /** * only for audio. Number of concealment packets/frames sent to the audio decoder when frames are held back to increase re-order audio delay. */ byIncreasedDelay?: number; /** * only for video. concealment caused by AV sync */ byAVSync?: number; /** * only for video. Some video frames which have not been complete are forced to pop up because the subsequent frame has been complete. This cause video concealment. */ byPrevFramePopped?: number; /** * concealment caused by the other unknown reasons */ byOthers?: number; additionalProperties?: never; }; /** * the number of consecutive concealment time which is larger than the threshold in one minute. Currently, 60 and 120 ms are used as the threshold. */ interruptCount?: { /** * interrupt count longer than 60 ms in one minute */ longerThan60?: number; /** * interrupt count longer than 120 ms in one minute */ longerThan120?: number; additionalProperties?: never; }; /** * This object tracks the delay associated with a jitter buffer */ jitterBufferDelay?: { /** * The average delay (in milliseconds) used by the jitter buffer */ meanDelay: number; /** * The maximum delay (in milliseconds) used by the jitter buffer */ maxDelay: number; /** * The minimum delay (in milliseconds) used by the jitter buffer */ minDelay: number; additionalProperties?: never; }; /** * This object tracks the the end to end delay(the delay between capture time of sender side and render time of receiver side) */ endToEndDelay?: { /** * The average delay (in milliseconds) from end to end */ meanDelay: number; /** * The maximum delay (in milliseconds) from end to end */ maxDelay: number; /** * The minimum delay (in milliseconds) from end to end */ minDelay: number; additionalProperties?: never; }; /** * This object tracks the the end to end delay(the delay between capture time of sender side and render time of receiver side) */ endToEndDelayKeyFrame?: { /** * The average delay (in milliseconds) from end to end */ meanDelay: number; /** * The maximum delay (in milliseconds) from end to end */ maxDelay: number; /** * The minimum delay (in milliseconds) from end to end */ minDelay: number; additionalProperties?: never; }; endToEndDelayByRtcp?: number; /** * The components of the E2E delay */ endToEndDelayComponents?: { /** * avg Time(MS) spent in sender processing */ senderTraversalDelay?: number; /** * Avg of RTT/2 between sender client and server */ senderTransmitDelay?: number; /** * Avg of total transmit time spent among all servers */ totalServerTransmitDelay?: number; /** * Avg of total processing time spent in all servers */ totalServerTraversalDelay?: number; /** * avg Time(MS) spent in receiver processing */ receiverTraversalDelay?: number; /** * Avg of RTT/2 between receiver client and server */ receiverTransmitDelay?: number; additionalProperties?: never; }; totalHops?: number; serverCrossDataCenterCnt?: number; linkNodeList?: { /** * The node type which shows the client and server type shown in the enum lists. */ nodeType?: | "WME_CLIENT_WINDOWS" | "WME_CLIENT_MAC" | "WME_CLIENT_IOS" | "WME_CLIENT_ANDROID" | "WME_CLIENT_LINUX" | "DEVICE_CLIENT" | "HOMER_VIDEO_MESH" | "HOMER_CLOUD" | "EDONUS_CLOUD" | "EDONUS_VIDEO_MESH" | "EDGE"; /** * The location info, for example 'CN' */ regionInfo?: string; /** * The processing time spent in client or server */ traversalDelay?: number; /** * RTT/2 between the current node with the last hop */ transmitDelay?: number; /** * The max processing time spent in client or server */ maxTraversalDelay?: number; /** * The max RTT/2 between the current node with the last hop */ maxTransmitDelay?: number; /** * Whether the current node is cross region with the last hop. false means "not cross" and true means "cross region". */ isCrossRegion?: boolean; additionalProperties?: never; }[]; /** * Aggregated end to end delay representing the mean, max, min delay group by csi */ endToEndDelayByCsi?: { csi?: number; /** * This object tracks the the end to end delay(the delay between capture time of sender side and render time of receiver side) */ delay?: { /** * The average delay (in milliseconds) from end to end */ meanDelay: number; /** * The maximum delay (in milliseconds) from end to end */ maxDelay: number; /** * The minimum delay (in milliseconds) from end to end */ minDelay: number; additionalProperties?: never; }; additionalProperties?: never; }[]; additionalProperties?: never; }; isRxCallBackgroundNoiseReductionModeOn?: boolean; isMeasureSNROn?: boolean; averageSNRValue?: number; /** * contains fields for QOEM MOS score */ audioqoem?: { version: string; /** * Average Estimated Mean Opinion Score by considering network’s jitter, loss etc. */ averageNetMOS: number; /** * Min Estimated Mean Opinion score by considering network’s jitter, loss etc. */ minNetMOS: number; /** * Average Estimated Mean Opinion Score jitter buffer’s status, such as drop packet, do PLC, do recover etc. */ averageJitterMOS: number; /** * Min Estimated Mean Opinion Score jitter buffer’s status, such as drop packet, do PLC, do recover etc. */ minJitterMOS: number; /** * Perceptual Evaluation of Speech Quality - Listening Quality Objective (PESQ-LQO) */ pesqLQO?: number; additionalProperties?: never; }; audioPlaybackMethod?: "AUDIO_ANDROID_JAVA_METHOD" | "AUDIO_ANDROID_AAUDIO_METHOD"; /** * audio received algorithm modules performance data(AGC,NR,MultiChannelPreprocess) */ audioAlgorithmModulesInfo?: { /** * one unsigned char every 1 minute, 0 for 0dB, plus 1 for -0.5dB */ speechRMS?: number; /** * one unsigned char every 1 minute, 0 for 0dB, plus 1 for -0.5dB */ maxSpeechRMS?: number; /** * one unsigned char every 1 minute, 0 for 0dB, plus 1 for -0.5dB */ maxRMS?: number; /** * one unsigned char every 1 minute, 0 for 0dB, plus 1 for -0.5dB */ avrRMS?: number; /** * one unsigned char every 1 minute, 0 for 0dB, plus 1 for -0.5dB */ maxRMSBeforeRxSE?: number; /** * one unsigned char every 1 minute, 0 for 0dB, plus 1 for -0.5dB */ maxRMSAfterRxSE?: number; /** * one unsigned char every 1 minute, 0 for 0dB, plus 1 for -0.5dB */ maxRMSBeforePDAGC?: number; /** * one unsigned char every 1 minute, 0 for 0s, plus 4 for +1s */ speechLength?: number; /** * one unsigned char every 1 minute, VAD value to reflect speech quality */ speechQuality?: number; /** * one unsigned short every 1 minute */ bnrTRN?: number; /** * one float every 1 minute, in milliseconds */ averageSEProcessTime?: number; /** * one int every 1 minute, in milliseconds */ maxSEProcessTime?: number; /** * one unsigned char every 1 minute, in seconds */ bnrLength?: number; /** * one unsigned char every 1 minute, in seconds */ bweLength?: number; /** * one unsigned char every 1 minute, in seconds */ mohLength?: number; /** * one unsigned char every 1 minute, in seconds */ beepLength?: number; /** * sum count in number */ sumSEOvertimeCount?: number; /** * sum count in number */ sumDisableSECountbyDPC?: number; /** * one float every 1 minute. */ wmosMedian?: number; /** * one float every 1 minute. */ wmosDispersion?: number; /** * one unsigned char every 1 minute, 0 for 0dB, plus 1 for -0.5dB */ speechRMSRaw?: number; /** * one unsigned short every 1 minute */ averageRxModuleCostTime?: number; /** * one short every 1 minute */ opusDredRxFrameCount?: number; /** * one short every 1 minute */ opusDredRxMaxCostTime?: number; /** * one short every 1 minute */ opusDredRxAvgCostTime?: number; /** * one short every 1 minute */ decoderRxMaxCostTimePerMin?: number; /** * one short every 1 minute */ decoderRxAvgCostTimePerMin?: number; additionalProperties?: never; }; /** * audio receive pipeline modules' quality metric */ audioModuleQualityInfo?: { /** * how many frames are decoded by Xcodec in one minute. */ xcodecTotalDecodedFrames?: number; /** * how many frames encoded with 6kbps (from primary packets) are decoded by Xcodec in one minute. */ xcodecDecoded6kFrames?: number; /** * how many frames encoded with 3kbps (from redundant packets) are decoded by Xcodec in one minute. */ xcodecDecoded3kFrames?: number; /** * how many frames encoded with 2kbps (from redundant packets) are decoded by Xcodec in one minute. */ xcodecDecoded2kFrames?: number; /** * how many frames encoded with 1kbps (from redundant packets) are decoded by Xcodec in one minute. */ xcodecDecoded1kFrames?: number; /** * how many frames are lost and concealed by Xcodec in one minute. */ xcodecDecodedPLCFrames?: number; additionalProperties?: never; }; /** * This object tracks the the audio video sync data, to see whether the video timestamp is matching with audio timestamp */ avSync?: { /** * Compared with audio, the maximum video delay time (in milliseconds) in last interval */ maxVideoLateInterval?: number; /** * Compared with audio, the maximum video early time (in milliseconds) in last interval */ maxVideoEarlyInterval?: number; /** * Compared with audio, the unsync video frames get played out / total frames */ decidePlayedUnsyncRatio?: number; /** * Compared with audio, the sync video frames get played out / total frames (with undetectable latency, in range (-100ms, 25ms)) */ decidePlayedSyncRatio?: number; /** * The max delay (in milliseconds) in last interval applied to audio for avsync */ maxAudioAdjustment?: number; /** * The max delay (in milliseconds) in last interval applied to video for avsync */ maxVideoAdjustment?: number; /** * The number of milliseconds in the last 60s (MQE interval) for which a received audio stream was matched to a video stream from the same source. */ totalMatched?: number; /** * The total number of milliseconds in the last 60s (MQE interval) where the received audio stream was matched to a video stream and the common clock was able to be determined (e.g. both streams had known values from recent RTCP SR). */ totalCanSync?: number; /** * The total number of milliseconds of audio that was added as an AV sync adjustment in the last 60s (e.g. if the audio playout was slowed down by inserting comfort noise or similar) */ totalAudioStretched?: number; /** * The total number of milliseconds of audio that was dropped as an AV sync adjustment in the last 60s, either not decoded at all or decoded but not rendered (e.g. if the audio playout was sped up by decoding multiple frames but only rendering a subset of those frames) */ totalAudioShrunk?: number; /** * The number of milliseconds of video that was added as an AV sync adjustment in the last 60s */ totalVideoStretched?: number; /** * The number of milliseconds of video that was dropped as an AV sync adjustment in the last 60s */ totalVideoShrunk?: number; additionalProperties?: never; }; additionalProperties?: never; }[]; /** * information about tracked audio levels */ levels?: { /** * The average audio input gain for a microphone or speaker, in decibels */ audioMeanGain?: number; /** * The minimum audio input gain for a microphone or speaker, in decibels */ audioMinGain?: number; /** * The maximum audio input gain for a microphone or speaker, in decibels */ audioMaxGain?: number; /** * The mean audio output volume for a microphone or speaker, in absolute volume [0-65535] */ audioMeanVolume?: number; /** * The min audio output volume for a microphone or speaker, in absolute volume [0-65535] */ audioMinVolume?: number; /** * The max audio output volume for a microphone or speaker, in absolute volume [0-65535] */ audioMaxVolume?: number; additionalProperties?: never; }; playbackHardwareRequiredAudioPacketsPerSecond?: number; additionalProperties?: never; }[]; videoReceive: { /** * contains the receive related fields between all sessions types for each interval. */ common: { /** * contains the fields common to both transmit and receive sessions for each interval */ common: { isMain: boolean; mariFecEnabled: boolean; mariRtxEnabled?: boolean; mariQosEnabled: boolean; mariLiteEnabled?: boolean; multistreamEnabled: boolean; isMediaBypassEdge?: boolean; isNewAudioPipeline?: boolean; direction: "sendrecv" | "sendonly" | "recvonly" | "inactive"; localPort?: number; peerReflexivePort?: number; remotePort?: number; maxConsecutiveStunAckInterval?: number; yellowMQITimes?: number; redMQITimes?: number; /** * "An indication if the relay point (Homer, MSE etc) was expecting to have media flowing and did so * Example for troubleshooting would be where the enterprise firewall is blocking * inbound rtp. In that case status=FLOW, client rx packets = 0" * */ hbhFlowStatus?: "FLOW" | "FLOW_PRE_ICE" | "FLOW_MEDIA_TIMEOUT" | "NO_FLOW_ERROR" | "NO_FLOW_EXPECTED"; additionalProperties?: never; }; fecPackets: number; fecBitrate: number; dscpValue?: number; rtxPackets?: number; rtxBitrate?: number; meanRtxDelay?: number; maxRtxDelay?: number; rtpPackets: number; rtpBitrate: number; rtpHopByHopLost: number; mediaHopByHopLost: number; rtpRecovered: number; rtxRecovered?: number; rtcpPackets: number; rtcpBitrate: number; /** * RTCP Information for a given Interval */ rxRtcpInfo?: { rtcpSrPackets: number; rtcpRrPackets: number; rtcpReportBlocks: number; rtcpSdesPackets: number; rtcpByePackets: number; rtcpAppPackets: number; rtcpRtpFbPacket: number; rtcpRtpFbNackPackets?: number; rtcpPsFbPackets: number; rtcpPsFbMariPackets: number; rtcpPsFbMariAdaptationPackets?: number; rtcpPsFbMariSyncPackets?: number; rtcpPsFbMultistreamPackets: number; rtcpPsFbMultistreamScrPackets?: number; rtcpPsFbMultistreamScrDuplicatePackets?: number; rtcpPsFbMultistreamScaAckingScrPackets?: number; rtcpPsFbMultistreamScaAutonomousPackets?: number; rtcpPsFbMultistreamScaAutonomousRetransmittedPackets?: number; rtcpPsFbMultistreamScaAckPackets?: number; rtcpPsFbFirPackets?: number; rtcpPsFbPliPackets?: number; rtcpXrPackets: number; additionalProperties?: never; }; stunPackets: number; stunBitrate: number; dtlsPackets: number; dtlsBitrate: number; transportType: "UDP" | "TCP" | "xTLS" | "TLS"; maxBitrate: number; srtpUnprotectErrors: number; /** * SRTP/SRTCP unprotect error details */ srtpUnprotectErrorDetails?: { authFailures: number; cipherFailures: number; replayFailures: number; unknownFailures: number; additionalProperties?: never; }; srtcpUnprotectErrors?: number; /** * SRTP/SRTCP unprotect error details */ srtcpUnprotectErrorDetails?: { authFailures: number; cipherFailures: number; replayFailures: number; unknownFailures: number; additionalProperties?: never; }; totalPackets?: number; totalBitrate?: number; /** * Tracks RTP/RTCP packet sizes */ mediaPacketSize?: { /** * Maximum RTP packet size (including media payload and RTP headers) */ maxRtpPacketSize?: number; /** * Average RTP packet size (including media payload and RTP headers) */ meanRtpPacketSize?: number; /** * Minimum RTP packet size (including media payload and RTP headers) */ minRtpPacketSize?: number; /** * Maximum RTCP packet size */ maxRtcpPacketSize?: number; additionalProperties?: never; }; cellularType?: | "cellular_2G" | "cellular_2.5G" | "cellular_3G" | "cellular_3.5G" | "cellular_4G" | "cellular_5G"; isVPN?: boolean; isVPNSplitTunneling?: boolean; maxHbhJitter?: number; meanHbhJitter?: number; additionalProperties?: never; }; configuredPixelRate?: number; streams: { /** * contains fields common to all types of receive stream */ common: { ssci: number; rtpPackets: number; rtpEndToEndLost: number; rtpMaxEndToEndLoss?: number; rtpMinEndToEndLoss?: number; concealedFrames: number; maxConcealRunLength: number; activeSpeech?: number; activeSpeechConcealment?: number; maxConsecutiveActiveSpeechConcealment?: number; silenceFromGatewayNum?: number; inbandPacketLossRate?: number; cngPacketNum?: number; silenceSuppressionNum?: number; maxTimestampInterval?: number; maxUnderrunNum?: number; receivedFrameRate?: number; renderedFrameRate?: number; requestedFrameRate?: number; optimalFrameRate?: number; renderedHarmonicScore?: number; sentToRenderFrames?: number; renderedFrames?: number; renderedFrameSkips?: number; renderedFrameMaxContinuousSkip?: number; meanRtpJitter?: number; maxRtpJitter?: number; rtpJitter?: number; receivedBitrate: number; requestedBitrate: number; optimalBitrate: number; durationForSpeedChanged?: number; endToEndTransmitDelay?: number; csi: number[]; codec: string; language?: | "floor" | "si-af" | "si-sq" | "si-am" | "si-ar" | "si-hy" | "si-az" | "si-eu" | "si-be" | "si-bn" | "si-bs" | "si-bg" | "si-zh-HK" | "si-ca" | "si-ceb" | "si-co" | "si-hr" | "si-cs" | "si-da" | "si-nl" | "si-en" | "si-eo" | "si-et" | "si-fi" | "si-fr" | "si-fy" | "si-gl" | "si-ka" | "si-de" | "si-el" | "si-gu" | "si-zh-TW" | "si-ht" | "si-ha" | "si-haw" | "si-he" | "si-hi" | "si-hmn" | "si-hu" | "si-is" | "si-ig" | "si-id" | "si-ga" | "si-it" | "si-ja" | "si-jv" | "si-kn" | "si-kk" | "si-km" | "si-rw" | "si-ko" | "si-ku" | "si-ky" | "si-lo" | "si-la" | "si-lv" | "si-lt" | "si-lb" | "si-mk" | "si-mg" | "si-ms" | "si-ml" | "si-mt" | "si-zh" | "si-mi" | "si-mr" | "si-mn" | "si-my" | "si-ne" | "si-no" | "si-ny" | "si-or" | "si-ps" | "si-fa" | "si-pl" | "si-pt" | "si-pa" | "si-ro" | "si-ru" | "si-sm" | "si-gd" | "si-sr" | "si-st" | "si-sn" | "si-sd" | "si-si" | "si-sk" | "si-sl" | "si-so" | "si-es" | "si-su" | "si-sw" | "si-sv" | "si-tl" | "si-tg" | "si-ta" | "si-tt" | "si-te" | "si-th" | "si-tr" | "si-tk" | "si-uk" | "si-ur" | "si-ug" | "si-uz" | "si-vi" | "si-cy" | "si-xh" | "si-yi" | "si-yo" | "si-zu" | "si-Other"; /** * This object tracks SSRC and CSRC changes for an RTP stream, session, etc */ sourceChanges?: { /** * The number of RTP SSRC changes seen. The first RTP packet seen should NOT be counted as a change. */ ssrcChanges: number; /** * The number of RTP CSRC changes seen. The first RTP packet seen should NOT be counted as a change. Changes from zero to non-zero CSRC should be counted as a change. */ csrcChanges: number; additionalProperties?: never; }; /** * The object tracks the detail reasons by which concealment is caused. The unit of metrics depend on upper-level objects. Currently, packet or frame can be used as unit. */ concealmentReasonByPacket?: { /** * concealment caused by network loss */ byNetwork?: number; /** * concealment caused by buffer overflow. when total buffer length exceeds max delay threshold, buffer will overflow and data will be dropped. */ byOverflow?: number; /** * concealment caused by buffer is reset. */ byReset?: number; /** * concealment caused by late packet or frame. some packets or frames arrive late and the previous one has been played. */ byLate?: number; /** * concealment caused by poor performance. */ byPoorPerformance?: number; /** * only for audio. Number of concealment packets/frames sent to the audio decoder when frames are held back to increase re-order audio delay. */ byIncreasedDelay?: number; /** * only for video. concealment caused by AV sync */ byAVSync?: number; /** * only for video. Some video frames which have not been complete are forced to pop up because the subsequent frame has been complete. This cause video concealment. */ byPrevFramePopped?: number; /** * concealment caused by the other unknown reasons */ byOthers?: number; additionalProperties?: never; }; /** * The object tracks the detail reasons by which concealment is caused. The unit of metrics depend on upper-level objects. Currently, packet or frame can be used as unit. */ concealmentReasonByFrame?: { /** * concealment caused by network loss */ byNetwork?: number; /** * concealment caused by buffer overflow. when total buffer length exceeds max delay threshold, buffer will overflow and data will be dropped. */ byOverflow?: number; /** * concealment caused by buffer is reset. */ byReset?: number; /** * concealment caused by late packet or frame. some packets or frames arrive late and the previous one has been played. */ byLate?: number; /** * concealment caused by poor performance. */ byPoorPerformance?: number; /** * only for audio. Number of concealment packets/frames sent to the audio decoder when frames are held back to increase re-order audio delay. */ byIncreasedDelay?: number; /** * only for video. concealment caused by AV sync */ byAVSync?: number; /** * only for video. Some video frames which have not been complete are forced to pop up because the subsequent frame has been complete. This cause video concealment. */ byPrevFramePopped?: number; /** * concealment caused by the other unknown reasons */ byOthers?: number; additionalProperties?: never; }; /** * the number of consecutive concealment time which is larger than the threshold in one minute. Currently, 60 and 120 ms are used as the threshold. */ interruptCount?: { /** * interrupt count longer than 60 ms in one minute */ longerThan60?: number; /** * interrupt count longer than 120 ms in one minute */ longerThan120?: number; additionalProperties?: never; }; /** * This object tracks the delay associated with a jitter buffer */ jitterBufferDelay?: { /** * The average delay (in milliseconds) used by the jitter buffer */ meanDelay: number; /** * The maximum delay (in milliseconds) used by the jitter buffer */ maxDelay: number; /** * The minimum delay (in milliseconds) used by the jitter buffer */ minDelay: number; additionalProperties?: never; }; /** * This object tracks the the end to end delay(the delay between capture time of sender side and render time of receiver side) */ endToEndDelay?: { /** * The average delay (in milliseconds) from end to end */ meanDelay: number; /** * The maximum delay (in milliseconds) from end to end */ maxDelay: number; /** * The minimum delay (in milliseconds) from end to end */ minDelay: number; additionalProperties?: never; }; /** * This object tracks the the end to end delay(the delay between capture time of sender side and render time of receiver side) */ endToEndDelayKeyFrame?: { /** * The average delay (in milliseconds) from end to end */ meanDelay: number; /** * The maximum delay (in milliseconds) from end to end */ maxDelay: number; /** * The minimum delay (in milliseconds) from end to end */ minDelay: number; additionalProperties?: never; }; endToEndDelayByRtcp?: number; /** * The components of the E2E delay */ endToEndDelayComponents?: { /** * avg Time(MS) spent in sender processing */ senderTraversalDelay?: number; /** * Avg of RTT/2 between sender client and server */ senderTransmitDelay?: number; /** * Avg of total transmit time spent among all servers */ totalServerTransmitDelay?: number; /** * Avg of total processing time spent in all servers */ totalServerTraversalDelay?: number; /** * avg Time(MS) spent in receiver processing */ receiverTraversalDelay?: number; /** * Avg of RTT/2 between receiver client and server */ receiverTransmitDelay?: number; additionalProperties?: never; }; totalHops?: number; serverCrossDataCenterCnt?: number; linkNodeList?: { /** * The node type which shows the client and server type shown in the enum lists. */ nodeType?: | "WME_CLIENT_WINDOWS" | "WME_CLIENT_MAC" | "WME_CLIENT_IOS" | "WME_CLIENT_ANDROID" | "WME_CLIENT_LINUX" | "DEVICE_CLIENT" | "HOMER_VIDEO_MESH" | "HOMER_CLOUD" | "EDONUS_CLOUD" | "EDONUS_VIDEO_MESH" | "EDGE"; /** * The location info, for example 'CN' */ regionInfo?: string; /** * The processing time spent in client or server */ traversalDelay?: number; /** * RTT/2 between the current node with the last hop */ transmitDelay?: number; /** * The max processing time spent in client or server */ maxTraversalDelay?: number; /** * The max RTT/2 between the current node with the last hop */ maxTransmitDelay?: number; /** * Whether the current node is cross region with the last hop. false means "not cross" and true means "cross region". */ isCrossRegion?: boolean; additionalProperties?: never; }[]; /** * Aggregated end to end delay representing the mean, max, min delay group by csi */ endToEndDelayByCsi?: { csi?: number; /** * This object tracks the the end to end delay(the delay between capture time of sender side and render time of receiver side) */ delay?: { /** * The average delay (in milliseconds) from end to end */ meanDelay: number; /** * The maximum delay (in milliseconds) from end to end */ maxDelay: number; /** * The minimum delay (in milliseconds) from end to end */ minDelay: number; additionalProperties?: never; }; additionalProperties?: never; }[]; additionalProperties?: never; }; receivedFrameSize: number; requestedFrameSize: number; optimalFrameSize: number; receivedHeight: number; receivedWidth: number; receivedKeyFrames: number; requestedKeyFrames: number; receivedKeyFramesSourceChange?: number; receivedKeyFramesConfigurationChange?: number; receivedKeyFramesForRequest?: number; receivedKeyFramesUnknown?: number; isActiveSpeaker?: boolean; h264CodecProfile: "BP" | "CHP"; isHardwareDecoded?: boolean; hardwareDecoderFallbackCount?: number; /** * receive video pipeline performance metric */ decoderProcessInfo?: { meanDecoderProcessMillis: number; maxDecoderProcessMillis: number; additionalProperties?: never; }; receivedBuffer?: number; receivedFrameRateNormalShare?: number; receivedFrameRateHFPSShare?: number; maxCodedFrameSize?: number; maxCodedFrameSizeIsFromKeyFrame?: boolean; renderWindowResolution?: number; scaledResolution?: number; upSampleType?: | "UpSample_None" | "UpSample_Render" | "UpSample_VP_2" | "UpSample_DNN_2" | "UpSample_DNN_4" | "UpSample_VP_1pt5"; processSRMillis?: number; superResFps?: number; remoteVideoAugmentationType?: | "VIDEO_BACKGROUND_AUGMENT_NONE" | "VIDEO_BACKGROUND_AUGMENT_BLUR" | "VIDEO_BACKGROUND_AUGMENT_REPLACE_IMAGE" | "VIDEO_BACKGROUND_AUGMENT_REPLACE_VIDEO" | "VIDEO_BACKGROUND_AUGMENT_BLUR_INHOUSE" | "VIDEO_BACKGROUND_AUGMENT_REPLACE_IMAGE_INHOUSE" | "VIDEO_BACKGROUND_AUGMENT_REPLACE_VIDEO_INHOUSE"; /** * this defines the major client types */ remoteClientType?: | "MEETING_CENTER" | "EVENT_CENTER" | "TRAINING_CENTER" | "TEAMS_CLIENT" | "TEAMS_DEVICE" | "TEAMS_SHARE" | "SIP" | "RECORDING" | "CLOUD_AWARE_SIP" | "TEAMS_WXC_CLIENT" | "WXC_CLIENT" | "WXC_DEVICE" | "WEBEX_JS_SDK" | "VOICEA_CLIENT" | "CISCO_SIP_GW" | "WEBEX_SDK" | "CPAAS_THIRD_PARTY_SDK" | "WXC_THIRD_PARTY" | "WXCC" | "TEAMS_PHONE" | "WEBEX_RELAY"; remoteOsType?: | "android" | "android-x64" | "android-arm64" | "chrome" | "ios" | "linux" | "mac" | "na" | "uwp-arm64" | "windows"; remoteDownSampleType?: | "DownSample_None" | "DownSample_Bilinear" | "DownSample_Lanczos" | "DownSample_Unknown" | "DownSample_Nvidia"; /** * this defines the sub types of clients */ remoteSubClientType?: | "AUTOMOTIVE_APP" | "BROWSER_EXTENSION" | "DESKTOP_APP" | "DESKTOP_APP_VDI" | "DEVICE_CURRENT" | "DEVICE_LEGACY_2020" | "HOLOGRAM_HEADSET_APP" | "HVDI_APP" | "MIXED" | "MOBILE_APP" | "MOBILE_NETWORK" | "PAGE" | "TEAMS_DEVICE" | "VDI_APP" | "WEB_APP" | "PHONE_NOVUM" | "PHONE_ESPRESSO" | "PHONE_BUMBLEBEE" | "SIP" | "SIP_PSTN"; remoteTranscoded?: boolean; /** * Details associated with a share floor type */ floorType?: { name: "DEFAULT" | "EMBEDDED_APP" | "OTHER"; priority?: {}; additionalProperties?: never; }; /** * view type of a video stream */ receivedView?: "Default" | "Speaker" | "Stereoscopic"; flickerDetectedCount?: number; flickerDetectionMeanExecutionTimeSinceLastReportMs?: number; advertisedRangeFull?: boolean; detectedRangeEverFull?: boolean; /** * Colour primaries (aka. colour space) used by a given video stream */ advertisedColourPrimaries?: | "ColourPrimaries_BT_709" | "ColourPrimaries_Unspecified" | "ColourPrimaries_BT_470_M" | "ColourPrimaries_BT_470_B_G" | "ColourPrimaries_BT_601" | "ColourPrimaries_SMPTE_240" | "ColourPrimaries_GenericFilm" | "ColourPrimaries_BT_2020" | "ColourPrimaries_XYZ" | "ColourPrimaries_SMPTE_431" | "ColourPrimaries_SMPTE_432" | "ColourPrimaries_EBU_3213"; maxFrameReceiveDelay?: number; maxFrameReceiveDelayIsFromKeyframe?: boolean; receivedMinFrameQp?: number; receivedMaxFrameQp?: number; receivedAvgFrameQp?: number; additionalProperties?: never; }[]; receivedViews?: ("Default" | "Speaker" | "Stereoscopic")[]; additionalProperties?: never; }[]; gamestateTransmit?: { /** * contains the transmit related fields common between all session types for each interval */ common: { /** * contains the fields common to both transmit and receive sessions for each interval */ common: { isMain: boolean; mariFecEnabled: boolean; mariRtxEnabled?: boolean; mariQosEnabled: boolean; mariLiteEnabled?: boolean; multistreamEnabled: boolean; isMediaBypassEdge?: boolean; isNewAudioPipeline?: boolean; direction: "sendrecv" | "sendonly" | "recvonly" | "inactive"; localPort?: number; peerReflexivePort?: number; remotePort?: number; maxConsecutiveStunAckInterval?: number; yellowMQITimes?: number; redMQITimes?: number; /** * "An indication if the relay point (Homer, MSE etc) was expecting to have media flowing and did so * Example for troubleshooting would be where the enterprise firewall is blocking * inbound rtp. In that case status=FLOW, client rx packets = 0" * */ hbhFlowStatus?: "FLOW" | "FLOW_PRE_ICE" | "FLOW_MEDIA_TIMEOUT" | "NO_FLOW_ERROR" | "NO_FLOW_EXPECTED"; additionalProperties?: never; }; fecPackets: number; fecBitrate: number; dscpValue?: number; rtxPackets?: number; rtxBitrate?: number; rtpPackets: number; rtpBitrate: number; rtcpPackets: number; rtcpBitrate: number; /** * RTCP Information for a given Interval */ txRtcpInfo?: { rtcpSrPackets: number; rtcpRrPackets: number; rtcpReportBlocks: number; rtcpSdesPackets: number; rtcpByePackets: number; rtcpAppPackets: number; rtcpRtpFbPacket: number; rtcpRtpFbNackPackets?: number; rtcpPsFbPackets: number; rtcpPsFbMariPackets: number; rtcpPsFbMariAdaptationPackets?: number; rtcpPsFbMariSyncPackets?: number; rtcpPsFbMultistreamPackets: number; rtcpPsFbMultistreamScrPackets?: number; rtcpPsFbMultistreamScrDuplicatePackets?: number; rtcpPsFbMultistreamScaAckingScrPackets?: number; rtcpPsFbMultistreamScaAutonomousPackets?: number; rtcpPsFbMultistreamScaAutonomousRetransmittedPackets?: number; rtcpPsFbMultistreamScaAckPackets?: number; rtcpPsFbFirPackets?: number; rtcpPsFbPliPackets?: number; rtcpXrPackets: number; additionalProperties?: never; }; stunPackets: number; stunBitrate: number; dtlsPackets: number; dtlsBitrate: number; transportType: "UDP" | "TCP" | "xTLS" | "TLS"; maxBitrate: number; availableBitrate: number; queueDelay: number; meanRoundTripTime?: number; maxRoundTripTime?: number; roundTripTime?: number; remoteReceiveRate?: number; maxRemoteLossRate?: number; remoteLossRate?: number; meanRemoteLossRate?: number; maxRemoteJitter?: number; remoteJitter?: number; meanRemoteJitter?: number; traversalMinDelayMs?: number; traversalMaxDelayMs?: number; traversalMeanDelayMs?: number; rtpInputFifoDelayMs?: number; rtpInputFifoMaxDelayMs?: number; rtpInputFifoMinDelayMs?: number; rtpInputFifoMeanDelayMs?: number; totalPackets?: number; totalBitrate?: number; /** * Tracks RTP/RTCP packet sizes */ mediaPacketSize?: { /** * Maximum RTP packet size (including media payload and RTP headers) */ maxRtpPacketSize?: number; /** * Average RTP packet size (including media payload and RTP headers) */ meanRtpPacketSize?: number; /** * Minimum RTP packet size (including media payload and RTP headers) */ minRtpPacketSize?: number; /** * Maximum RTCP packet size */ maxRtcpPacketSize?: number; additionalProperties?: never; }; cellularType?: | "cellular_2G" | "cellular_2.5G" | "cellular_3G" | "cellular_3.5G" | "cellular_4G" | "cellular_5G"; isVPN?: boolean; isVPNSplitTunneling?: boolean; additionalProperties?: never; }; streams: { /** * contains fields common to all transmit streams types */ common: { ssci: number; duplicateSsci?: number; rtpPackets: number; transmittedFrameRate?: number; requestedFrames?: number; transmittedBitrate: number; requestedBitrate: number; captureOffset?: number; codec: string; csi?: number[]; /** * This object tracks SSRC and CSRC changes for an RTP stream, session, etc */ sourceChanges?: { /** * The number of RTP SSRC changes seen. The first RTP packet seen should NOT be counted as a change. */ ssrcChanges: number; /** * The number of RTP CSRC changes seen. The first RTP packet seen should NOT be counted as a change. Changes from zero to non-zero CSRC should be counted as a change. */ csrcChanges: number; additionalProperties?: never; }; largeSceneChangeCount?: number; /** * This object tracks the the end to end delay(the delay between capture time of sender side and render time of receiver side) */ internalDelay?: { /** * The average delay (in milliseconds) from end to end */ meanDelay: number; /** * The maximum delay (in milliseconds) from end to end */ maxDelay: number; /** * The minimum delay (in milliseconds) from end to end */ minDelay: number; additionalProperties?: never; }; additionalProperties?: never; }; gamestateObjects?: { objectId: number; numberOfUpdates: number; tag: {}; isActive: boolean; additionalProperties?: never; }[]; additionalProperties?: never; }[]; additionalProperties?: never; }[]; gamestateReceive?: { /** * contains the receive related fields between all sessions types for each interval. */ common: { /** * contains the fields common to both transmit and receive sessions for each interval */ common: { isMain: boolean; mariFecEnabled: boolean; mariRtxEnabled?: boolean; mariQosEnabled: boolean; mariLiteEnabled?: boolean; multistreamEnabled: boolean; isMediaBypassEdge?: boolean; isNewAudioPipeline?: boolean; direction: "sendrecv" | "sendonly" | "recvonly" | "inactive"; localPort?: number; peerReflexivePort?: number; remotePort?: number; maxConsecutiveStunAckInterval?: number; yellowMQITimes?: number; redMQITimes?: number; /** * "An indication if the relay point (Homer, MSE etc) was expecting to have media flowing and did so * Example for troubleshooting would be where the enterprise firewall is blocking * inbound rtp. In that case status=FLOW, client rx packets = 0" * */ hbhFlowStatus?: "FLOW" | "FLOW_PRE_ICE" | "FLOW_MEDIA_TIMEOUT" | "NO_FLOW_ERROR" | "NO_FLOW_EXPECTED"; additionalProperties?: never; }; fecPackets: number; fecBitrate: number; dscpValue?: number; rtxPackets?: number; rtxBitrate?: number; meanRtxDelay?: number; maxRtxDelay?: number; rtpPackets: number; rtpBitrate: number; rtpHopByHopLost: number; mediaHopByHopLost: number; rtpRecovered: number; rtxRecovered?: number; rtcpPackets: number; rtcpBitrate: number; /** * RTCP Information for a given Interval */ rxRtcpInfo?: { rtcpSrPackets: number; rtcpRrPackets: number; rtcpReportBlocks: number; rtcpSdesPackets: number; rtcpByePackets: number; rtcpAppPackets: number; rtcpRtpFbPacket: number; rtcpRtpFbNackPackets?: number; rtcpPsFbPackets: number; rtcpPsFbMariPackets: number; rtcpPsFbMariAdaptationPackets?: number; rtcpPsFbMariSyncPackets?: number; rtcpPsFbMultistreamPackets: number; rtcpPsFbMultistreamScrPackets?: number; rtcpPsFbMultistreamScrDuplicatePackets?: number; rtcpPsFbMultistreamScaAckingScrPackets?: number; rtcpPsFbMultistreamScaAutonomousPackets?: number; rtcpPsFbMultistreamScaAutonomousRetransmittedPackets?: number; rtcpPsFbMultistreamScaAckPackets?: number; rtcpPsFbFirPackets?: number; rtcpPsFbPliPackets?: number; rtcpXrPackets: number; additionalProperties?: never; }; stunPackets: number; stunBitrate: number; dtlsPackets: number; dtlsBitrate: number; transportType: "UDP" | "TCP" | "xTLS" | "TLS"; maxBitrate: number; srtpUnprotectErrors: number; /** * SRTP/SRTCP unprotect error details */ srtpUnprotectErrorDetails?: { authFailures: number; cipherFailures: number; replayFailures: number; unknownFailures: number; additionalProperties?: never; }; srtcpUnprotectErrors?: number; /** * SRTP/SRTCP unprotect error details */ srtcpUnprotectErrorDetails?: { authFailures: number; cipherFailures: number; replayFailures: number; unknownFailures: number; additionalProperties?: never; }; totalPackets?: number; totalBitrate?: number; /** * Tracks RTP/RTCP packet sizes */ mediaPacketSize?: { /** * Maximum RTP packet size (including media payload and RTP headers) */ maxRtpPacketSize?: number; /** * Average RTP packet size (including media payload and RTP headers) */ meanRtpPacketSize?: number; /** * Minimum RTP packet size (including media payload and RTP headers) */ minRtpPacketSize?: number; /** * Maximum RTCP packet size */ maxRtcpPacketSize?: number; additionalProperties?: never; }; cellularType?: | "cellular_2G" | "cellular_2.5G" | "cellular_3G" | "cellular_3.5G" | "cellular_4G" | "cellular_5G"; isVPN?: boolean; isVPNSplitTunneling?: boolean; maxHbhJitter?: number; meanHbhJitter?: number; additionalProperties?: never; }; streams: { /** * contains fields common to all types of receive stream */ common: { ssci: number; rtpPackets: number; rtpEndToEndLost: number; rtpMaxEndToEndLoss?: number; rtpMinEndToEndLoss?: number; concealedFrames: number; maxConcealRunLength: number; activeSpeech?: number; activeSpeechConcealment?: number; maxConsecutiveActiveSpeechConcealment?: number; silenceFromGatewayNum?: number; inbandPacketLossRate?: number; cngPacketNum?: number; silenceSuppressionNum?: number; maxTimestampInterval?: number; maxUnderrunNum?: number; receivedFrameRate?: number; renderedFrameRate?: number; requestedFrameRate?: number; optimalFrameRate?: number; renderedHarmonicScore?: number; sentToRenderFrames?: number; renderedFrames?: number; renderedFrameSkips?: number; renderedFrameMaxContinuousSkip?: number; meanRtpJitter?: number; maxRtpJitter?: number; rtpJitter?: number; receivedBitrate: number; requestedBitrate: number; optimalBitrate: number; durationForSpeedChanged?: number; endToEndTransmitDelay?: number; csi: number[]; codec: string; language?: | "floor" | "si-af" | "si-sq" | "si-am" | "si-ar" | "si-hy" | "si-az" | "si-eu" | "si-be" | "si-bn" | "si-bs" | "si-bg" | "si-zh-HK" | "si-ca" | "si-ceb" | "si-co" | "si-hr" | "si-cs" | "si-da" | "si-nl" | "si-en" | "si-eo" | "si-et" | "si-fi" | "si-fr" | "si-fy" | "si-gl" | "si-ka" | "si-de" | "si-el" | "si-gu" | "si-zh-TW" | "si-ht" | "si-ha" | "si-haw" | "si-he" | "si-hi" | "si-hmn" | "si-hu" | "si-is" | "si-ig" | "si-id" | "si-ga" | "si-it" | "si-ja" | "si-jv" | "si-kn" | "si-kk" | "si-km" | "si-rw" | "si-ko" | "si-ku" | "si-ky" | "si-lo" | "si-la" | "si-lv" | "si-lt" | "si-lb" | "si-mk" | "si-mg" | "si-ms" | "si-ml" | "si-mt" | "si-zh" | "si-mi" | "si-mr" | "si-mn" | "si-my" | "si-ne" | "si-no" | "si-ny" | "si-or" | "si-ps" | "si-fa" | "si-pl" | "si-pt" | "si-pa" | "si-ro" | "si-ru" | "si-sm" | "si-gd" | "si-sr" | "si-st" | "si-sn" | "si-sd" | "si-si" | "si-sk" | "si-sl" | "si-so" | "si-es" | "si-su" | "si-sw" | "si-sv" | "si-tl" | "si-tg" | "si-ta" | "si-tt" | "si-te" | "si-th" | "si-tr" | "si-tk" | "si-uk" | "si-ur" | "si-ug" | "si-uz" | "si-vi" | "si-cy" | "si-xh" | "si-yi" | "si-yo" | "si-zu" | "si-Other"; /** * This object tracks SSRC and CSRC changes for an RTP stream, session, etc */ sourceChanges?: { /** * The number of RTP SSRC changes seen. The first RTP packet seen should NOT be counted as a change. */ ssrcChanges: number; /** * The number of RTP CSRC changes seen. The first RTP packet seen should NOT be counted as a change. Changes from zero to non-zero CSRC should be counted as a change. */ csrcChanges: number; additionalProperties?: never; }; /** * The object tracks the detail reasons by which concealment is caused. The unit of metrics depend on upper-level objects. Currently, packet or frame can be used as unit. */ concealmentReasonByPacket?: { /** * concealment caused by network loss */ byNetwork?: number; /** * concealment caused by buffer overflow. when total buffer length exceeds max delay threshold, buffer will overflow and data will be dropped. */ byOverflow?: number; /** * concealment caused by buffer is reset. */ byReset?: number; /** * concealment caused by late packet or frame. some packets or frames arrive late and the previous one has been played. */ byLate?: number; /** * concealment caused by poor performance. */ byPoorPerformance?: number; /** * only for audio. Number of concealment packets/frames sent to the audio decoder when frames are held back to increase re-order audio delay. */ byIncreasedDelay?: number; /** * only for video. concealment caused by AV sync */ byAVSync?: number; /** * only for video. Some video frames which have not been complete are forced to pop up because the subsequent frame has been complete. This cause video concealment. */ byPrevFramePopped?: number; /** * concealment caused by the other unknown reasons */ byOthers?: number; additionalProperties?: never; }; /** * The object tracks the detail reasons by which concealment is caused. The unit of metrics depend on upper-level objects. Currently, packet or frame can be used as unit. */ concealmentReasonByFrame?: { /** * concealment caused by network loss */ byNetwork?: number; /** * concealment caused by buffer overflow. when total buffer length exceeds max delay threshold, buffer will overflow and data will be dropped. */ byOverflow?: number; /** * concealment caused by buffer is reset. */ byReset?: number; /** * concealment caused by late packet or frame. some packets or frames arrive late and the previous one has been played. */ byLate?: number; /** * concealment caused by poor performance. */ byPoorPerformance?: number; /** * only for audio. Number of concealment packets/frames sent to the audio decoder when frames are held back to increase re-order audio delay. */ byIncreasedDelay?: number; /** * only for video. concealment caused by AV sync */ byAVSync?: number; /** * only for video. Some video frames which have not been complete are forced to pop up because the subsequent frame has been complete. This cause video concealment. */ byPrevFramePopped?: number; /** * concealment caused by the other unknown reasons */ byOthers?: number; additionalProperties?: never; }; /** * the number of consecutive concealment time which is larger than the threshold in one minute. Currently, 60 and 120 ms are used as the threshold. */ interruptCount?: { /** * interrupt count longer than 60 ms in one minute */ longerThan60?: number; /** * interrupt count longer than 120 ms in one minute */ longerThan120?: number; additionalProperties?: never; }; /** * This object tracks the delay associated with a jitter buffer */ jitterBufferDelay?: { /** * The average delay (in milliseconds) used by the jitter buffer */ meanDelay: number; /** * The maximum delay (in milliseconds) used by the jitter buffer */ maxDelay: number; /** * The minimum delay (in milliseconds) used by the jitter buffer */ minDelay: number; additionalProperties?: never; }; /** * This object tracks the the end to end delay(the delay between capture time of sender side and render time of receiver side) */ endToEndDelay?: { /** * The average delay (in milliseconds) from end to end */ meanDelay: number; /** * The maximum delay (in milliseconds) from end to end */ maxDelay: number; /** * The minimum delay (in milliseconds) from end to end */ minDelay: number; additionalProperties?: never; }; /** * This object tracks the the end to end delay(the delay between capture time of sender side and render time of receiver side) */ endToEndDelayKeyFrame?: { /** * The average delay (in milliseconds) from end to end */ meanDelay: number; /** * The maximum delay (in milliseconds) from end to end */ maxDelay: number; /** * The minimum delay (in milliseconds) from end to end */ minDelay: number; additionalProperties?: never; }; endToEndDelayByRtcp?: number; /** * The components of the E2E delay */ endToEndDelayComponents?: { /** * avg Time(MS) spent in sender processing */ senderTraversalDelay?: number; /** * Avg of RTT/2 between sender client and server */ senderTransmitDelay?: number; /** * Avg of total transmit time spent among all servers */ totalServerTransmitDelay?: number; /** * Avg of total processing time spent in all servers */ totalServerTraversalDelay?: number; /** * avg Time(MS) spent in receiver processing */ receiverTraversalDelay?: number; /** * Avg of RTT/2 between receiver client and server */ receiverTransmitDelay?: number; additionalProperties?: never; }; totalHops?: number; serverCrossDataCenterCnt?: number; linkNodeList?: { /** * The node type which shows the client and server type shown in the enum lists. */ nodeType?: | "WME_CLIENT_WINDOWS" | "WME_CLIENT_MAC" | "WME_CLIENT_IOS" | "WME_CLIENT_ANDROID" | "WME_CLIENT_LINUX" | "DEVICE_CLIENT" | "HOMER_VIDEO_MESH" | "HOMER_CLOUD" | "EDONUS_CLOUD" | "EDONUS_VIDEO_MESH" | "EDGE"; /** * The location info, for example 'CN' */ regionInfo?: string; /** * The processing time spent in client or server */ traversalDelay?: number; /** * RTT/2 between the current node with the last hop */ transmitDelay?: number; /** * The max processing time spent in client or server */ maxTraversalDelay?: number; /** * The max RTT/2 between the current node with the last hop */ maxTransmitDelay?: number; /** * Whether the current node is cross region with the last hop. false means "not cross" and true means "cross region". */ isCrossRegion?: boolean; additionalProperties?: never; }[]; /** * Aggregated end to end delay representing the mean, max, min delay group by csi */ endToEndDelayByCsi?: { csi?: number; /** * This object tracks the the end to end delay(the delay between capture time of sender side and render time of receiver side) */ delay?: { /** * The average delay (in milliseconds) from end to end */ meanDelay: number; /** * The maximum delay (in milliseconds) from end to end */ maxDelay: number; /** * The minimum delay (in milliseconds) from end to end */ minDelay: number; additionalProperties?: never; }; additionalProperties?: never; }[]; additionalProperties?: never; }; gamestateObjects?: { objectId: number; numberOfUpdates: number; tag: {}; isActive: boolean; additionalProperties?: never; }[]; additionalProperties?: never; }[]; additionalProperties?: never; }[]; mediaState?: { stateType: "start" | "middle"; duration: number; mediaType: "audio" | "video" | "share" | "share_audio" | "whiteboard" | "gamestate" | "all"; stateTriggeredTime?: string; shareInstanceId?: string; direction?: "RX" | "TX" | "BOTH"; errorType?: | "NO_ERROR" | "DECRYPT_ERROR" | "DEVICE_ERROR" | "LOAD_LIBRARY_ERROR" | "NO_FRAME_DECODE_ERROR" | "NO_FRAME_ENCODE_ERROR" | "NO_PACKET_RECV_ERROR" | "INITIAL_MEMORY_ERROR" | "MAC_VIRTUAL_AUDIO_DRV_ERROR" | "MEDIA_PROCESS_CRASH_ERROR" | "HEARTBEAT_LOST_WITH_MEDIA_PROCESS_ERROR" | "LOCUS_SESSION_CONNECT_ERROR" | "NO_PACKET_SEND_ERROR" | "NETWORK_LOST_ERROR" | "MEDIA_NOT_AVAILABLE" | "MEDIA_CONNECT_FAILURE" | "MEDIA_CONNECT_STATE" | "MEDIA_FLOW_STATE_CHANGED"; errorCode?: number; errorCodeExt1?: number; errorDescription?: string; mediaExtInfo?: string; mediaExtInfoV2?: {}; stateDescription?: {}; additionalProperties?: never; }[]; /** * Connection level metrics for the interval */ connection?: { /** * This object tracks TWCC report exchange(MARI) */ twccReports?: { /** * Number of RTP packets marked with TWSN */ packetsSentWithTwsn?: number; /** * Number of packets sent without TWSN */ packetsSentWithoutTwsn?: number; /** * Number of reports received */ reportsReceived?: number; /** * Number of reports lost */ reportsLost?: number; /** * Longest consecutive run of reports lost */ reportLossBurstLength?: number; /** * Number of packets not acknowledged due to loss of reports */ unacknowledgedPackets?: number; /** * Average bandwidth in kbps */ avgBandwidth?: number; /** * min bandwidth in interval (kbps) */ minBandwidth?: number; /** * max bandwidth in interval (kbps) */ maxBandwidth?: number; additionalProperties?: never; }; /** * This object tracks the evaluated bandwidth associated with Bandwidth Evaluator(MARI) */ evaluatedBandwidth?: { /** * The min bandwidth evaluated by the BW Evaluator (in bits per second) */ minBandwidth?: number; /** * The maximum bandwidth evaluated the BW Evaluator (in bits per second) */ maxBandwidth?: number; /** * The sum of bandwidth down adjustments (in bits per second) */ sumAdjustmentDown?: number; /** * The sum of bandwidth up adjustments (in bits per second) */ sumAdjustmentUp?: number; /** * Number of times bandwidth adjustment caused a change evaluated bandwidth */ countAdjustments?: number; /** * Number of times the Bandwidth Adjustment changed direction Up->Down/Down->Up */ countDirectionChange?: number; /** * Number of times the evaluated bandwidth was affected due to config change */ countConfigChange?: number; additionalProperties?: never; }; configuredBitrate?: number; additionalProperties?: never; }; threadPool?: { pool: string; samples: number; baselineWorkers: number; maxWorkers: number; peakWorkers: number; peakBusyWorkers: number; peakHungWorkers: number; peakPending: number; avgPending: number; cappedAtMaxTicks: number; processedTotal: number; overflowTotal: number; maxQueueWaitUs: number; additionalProperties?: never; }[]; additionalProperties?: never; }[]; pairedDevice?: { deviceId?: string; deviceJoinType?: string; devicePairingType?: string; deviceType?: string; deviceURL?: string; isPersonalDevice?: boolean; modelNumber?: string; productName?: string; tempSipUri?: string; additionalProperties?: never; }; userType?: "host" | "attendee" | "cohost" | "panelist"; additionalProperties?: never; }