@webex/internal-plugin-metrics 3.0.0-beta.221 → 3.0.0-beta.223

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/dist/call-diagnostic/call-diagnostic-metrics-batcher.js +11 -3
  2. package/dist/call-diagnostic/call-diagnostic-metrics-batcher.js.map +1 -1
  3. package/dist/call-diagnostic/call-diagnostic-metrics.js +43 -5
  4. package/dist/call-diagnostic/call-diagnostic-metrics.js.map +1 -1
  5. package/dist/call-diagnostic/config.js +3 -1
  6. package/dist/call-diagnostic/config.js.map +1 -1
  7. package/dist/metrics.js +1 -1
  8. package/dist/metrics.types.js.map +1 -1
  9. package/dist/new-metrics.js +65 -0
  10. package/dist/new-metrics.js.map +1 -1
  11. package/dist/types/call-diagnostic/call-diagnostic-metrics.d.ts +32 -9
  12. package/dist/types/call-diagnostic/config.d.ts +1 -0
  13. package/dist/types/metrics.types.d.ts +2 -3
  14. package/dist/types/new-metrics.d.ts +14 -0
  15. package/package.json +9 -8
  16. package/src/call-diagnostic/call-diagnostic-metrics-batcher.ts +36 -8
  17. package/src/call-diagnostic/call-diagnostic-metrics.ts +79 -2
  18. package/src/call-diagnostic/config.ts +2 -0
  19. package/src/metrics.types.ts +6 -3
  20. package/src/new-metrics.ts +68 -0
  21. package/test/unit/spec/call-diagnostic/call-diagnostic-metrics.ts +96 -19
  22. package/test/unit/spec/new-metrics.ts +30 -0
  23. package/dist/call-diagnostic/generated-types-temp/ClientEvent.js +0 -7
  24. package/dist/call-diagnostic/generated-types-temp/ClientEvent.js.map +0 -1
  25. package/dist/call-diagnostic/generated-types-temp/Event.js +0 -7
  26. package/dist/call-diagnostic/generated-types-temp/Event.js.map +0 -1
  27. package/dist/call-diagnostic/generated-types-temp/MediaQualityEvent.js +0 -7
  28. package/dist/call-diagnostic/generated-types-temp/MediaQualityEvent.js.map +0 -1
  29. package/dist/types/call-diagnostic/generated-types-temp/ClientEvent.d.ts +0 -1112
  30. package/dist/types/call-diagnostic/generated-types-temp/Event.d.ts +0 -4851
  31. package/dist/types/call-diagnostic/generated-types-temp/MediaQualityEvent.d.ts +0 -2121
  32. package/src/call-diagnostic/generated-types-temp/ClientEvent.ts +0 -2395
  33. package/src/call-diagnostic/generated-types-temp/Event.ts +0 -7762
  34. package/src/call-diagnostic/generated-types-temp/MediaQualityEvent.ts +0 -2321
@@ -1,2121 +0,0 @@
1
- /**
2
- * This file was automatically generated by json-schema-to-typescript.
3
- * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
4
- * and run json-schema-to-typescript to regenerate this file.
5
- */
6
- /**
7
- * Media Quality Events from media services (e.g. Linus, Edonus, Clients)
8
- */
9
- export interface MediaQualityEvent {
10
- canProceed: boolean;
11
- state?: string;
12
- mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard" | "gamestate";
13
- csi?: number;
14
- /**
15
- * media capability for both transmit and receive
16
- */
17
- mediaCapabilities?: {
18
- /**
19
- * explicit indication of media capabilities. true=supported
20
- */
21
- tx: {
22
- audio: boolean;
23
- video: boolean;
24
- share: boolean;
25
- share_audio: boolean;
26
- whiteboard: boolean;
27
- gamestate?: boolean;
28
- };
29
- /**
30
- * explicit indication of media capabilities. true=supported
31
- */
32
- rx: {
33
- audio: boolean;
34
- video: boolean;
35
- share: boolean;
36
- share_audio: boolean;
37
- whiteboard: boolean;
38
- gamestate?: boolean;
39
- };
40
- };
41
- mediaLines?: {
42
- mediaType: "audio" | "video" | "share" | "share_audio" | "whiteboard" | "gamestate";
43
- remoteIP?: string;
44
- localIP?: string;
45
- localNetworkPrefix?: string;
46
- localPort?: number;
47
- remotePort?: number;
48
- protocol: "udp" | "tcp" | "xtls" | "unknown";
49
- direction: "sendrecv" | "sendonly" | "recvonly" | "inactive";
50
- clusterName?: string;
51
- status?: "succeeded" | "in-progress" | "failed";
52
- failureReason?: "network" | "transport" | "rejected" | "timeout" | "notstarted" | "succeeded";
53
- failureDescription?: string;
54
- errorCode?: number;
55
- mediaLineData?: {};
56
- iceMangled?: boolean;
57
- transactionId?: string;
58
- ufrag?: string;
59
- sentReqTime?: string;
60
- recvRespTime?: string;
61
- }[];
62
- /**
63
- * allows client to specify media preferences
64
- */
65
- clientMediaPreferences?: {
66
- preferTranscoding: boolean;
67
- };
68
- pstnAudioType?: "dial-in" | "dial-out";
69
- success?: boolean;
70
- isTranscoded?: boolean;
71
- isGatewayed?: boolean;
72
- isComposed?: boolean;
73
- /**
74
- * determine how the events are processed as well as how the reports are aggregated and sliced
75
- */
76
- registrationMode?: "SIP" | "Cloud" | "CloudAware";
77
- /**
78
- * protocols used to help determine how the events are processed as well as how the reports are aggregated and sliced
79
- */
80
- protocol?: "SIP" | "H323" | "Locus" | "WebRTC";
81
- /**
82
- * The underlying service provider of the call.
83
- */
84
- meetingPlatform?: "MsTeams" | "GoogleMeet" | "Zoom" | "Webex";
85
- labels?: string[];
86
- webexServiceType?: "MC" | "EC" | "SC" | "TC" | "AA" | "RA" | "NBR" | "WRF" | "HOL";
87
- /**
88
- * this defines the sub service type
89
- */
90
- webexSubServiceType?: "PMR" | "Event" | "Training" | "ScheduleMeeting" | "ScheduledMeeting" | "Webinar" | "others";
91
- ivrDialogType?: "MEDIA_ON_HOLD" | "ANNOUNCEMENT" | "TONE" | "COLLECT_PIN" | "PROMPT" | "MEDIA_SERVICE_AGENT" | "COLLECT";
92
- ivrDialogResult?: "SUCCESS" | "FAILURE" | "HOST_PIN_MATCH" | "GUEST_PIN_MATCH" | "PANELIST_PIN_MATCH" | "NO_MATCH" | "INVALID_PIN";
93
- callType?: "VIDEO_DIALIN" | "VIDEO_DIALOUT" | "CASCADE" | "HYBRID_CASCADE" | "PSTN_SIP" | "PSTN_DIALIN" | "PSTN_DIALOUT" | "PSTN_ONLY_DIALIN" | "PSTN_ONLY_DIALOUT" | "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";
94
- eventData?: {};
95
- 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";
96
- /**
97
- * this defines the major client types
98
- */
99
- 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";
100
- /**
101
- * this defines the sub types of clients
102
- */
103
- derivedSubClientType?: "DESKTOP_APP" | "DESKTOP_APP_VDI" | "DEVICE_CURRENT" | "DEVICE_LEGACY_2020" | "HVDI_APP" | "MOBILE_APP" | "VDI_APP" | "WEB_APP" | "MOBILE_NETWORK" | "HOLOGRAM_HEADSET_APP";
104
- serverRole?: "CONFERENCE" | "TRANSCODER" | "WHITEBOARD_INJECTOR" | "MS_TEAMS_CONFERENCE" | "RECORDING" | "GATEWAY" | "GATEWAY_CLIENT_SIDE" | "UNKNOWN" | "HOLOGRAM_RENDER";
105
- reconnect?: boolean;
106
- retryCount?: number;
107
- meetSimple?: boolean;
108
- /**
109
- * represents media quality status report such as no media or drop out
110
- */
111
- mediaStatus?: {
112
- mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard";
113
- mediaSuccess?: boolean;
114
- 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";
115
- isTransmitter?: boolean;
116
- audioJoinType?: "phone-call-in" | "phone-call-back" | "voip" | "device-call-back" | "never-join-audio" | "tried-but-never-join";
117
- /**
118
- * indicates transport type used
119
- */
120
- transportType?: "UDP" | "TCP" | "xTLS" | "TLS";
121
- additionalData?: {};
122
- };
123
- shareInstanceId?: string;
124
- hologramStreamId?: string;
125
- /**
126
- * represents all of the properities that could cause delay during media setup process.
127
- */
128
- audioSetupDelay?: {
129
- floorReqSentReceived?: number;
130
- floorRespSentReceived?: number;
131
- mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard";
132
- txReqFloorGranted?: number;
133
- txSessionCreateConfirm?: number;
134
- txApeEnrollConfirm?: number;
135
- txUIDelay?: number;
136
- txScreenCaptureDelay?: number;
137
- txScreenCaptureDelayReasonCode?: number;
138
- txShareStartOverallDelay?: number;
139
- rx1stPacket2RenderDelay?: number;
140
- rxGranted2RenderDelay?: number;
141
- rxFailFrameNumB4Success?: number;
142
- e2eFirstFrameDelay?: number;
143
- CBSessionRespToLocusFloorGrantDelay?: number;
144
- CBShareReceiveToServerShareTransmitDelay?: number;
145
- CBShareReceiveToTPGWFirstKeyFrameDelay?: number;
146
- TPGWFirstKeyFrameToServerShareTransmitDelay?: number;
147
- MCSSessionActivateToLocusFloorGrantDelay?: number;
148
- ServerShareInitiateToLocusFloorGrantDelay?: number;
149
- LocusFloorGrantToCBSessionStartDelay?: number;
150
- ServerShareReceiveToTPGWFirstKeyFrameDelay?: number;
151
- LocusFloorGrantToTPGWFloorGrantDelay?: number;
152
- LocusFloorGrantToReceiverNotificationDelay?: number;
153
- CBShareSessionRespDelay?: number;
154
- LocusShareFloorGrantRespDelay?: number;
155
- ServerShareFloorGrantRespDelay?: number;
156
- joinRespRxStart?: number;
157
- joinRespTxStart?: number;
158
- maxRemoteLossRate?: number;
159
- media2SignalDelay?: number;
160
- warholDownloadTime?: number;
161
- contentDownloadTime?: number;
162
- boardCreationTime?: number;
163
- totalBoardServiceRespDelay?: number;
164
- };
165
- /**
166
- * represents all of the properities that could cause delay during media setup process.
167
- */
168
- videoSetupDelay?: {
169
- floorReqSentReceived?: number;
170
- floorRespSentReceived?: number;
171
- mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard";
172
- txReqFloorGranted?: number;
173
- txSessionCreateConfirm?: number;
174
- txApeEnrollConfirm?: number;
175
- txUIDelay?: number;
176
- txScreenCaptureDelay?: number;
177
- txScreenCaptureDelayReasonCode?: number;
178
- txShareStartOverallDelay?: number;
179
- rx1stPacket2RenderDelay?: number;
180
- rxGranted2RenderDelay?: number;
181
- rxFailFrameNumB4Success?: number;
182
- e2eFirstFrameDelay?: number;
183
- CBSessionRespToLocusFloorGrantDelay?: number;
184
- CBShareReceiveToServerShareTransmitDelay?: number;
185
- CBShareReceiveToTPGWFirstKeyFrameDelay?: number;
186
- TPGWFirstKeyFrameToServerShareTransmitDelay?: number;
187
- MCSSessionActivateToLocusFloorGrantDelay?: number;
188
- ServerShareInitiateToLocusFloorGrantDelay?: number;
189
- LocusFloorGrantToCBSessionStartDelay?: number;
190
- ServerShareReceiveToTPGWFirstKeyFrameDelay?: number;
191
- LocusFloorGrantToTPGWFloorGrantDelay?: number;
192
- LocusFloorGrantToReceiverNotificationDelay?: number;
193
- CBShareSessionRespDelay?: number;
194
- LocusShareFloorGrantRespDelay?: number;
195
- ServerShareFloorGrantRespDelay?: number;
196
- joinRespRxStart?: number;
197
- joinRespTxStart?: number;
198
- maxRemoteLossRate?: number;
199
- media2SignalDelay?: number;
200
- warholDownloadTime?: number;
201
- contentDownloadTime?: number;
202
- boardCreationTime?: number;
203
- totalBoardServiceRespDelay?: number;
204
- };
205
- /**
206
- * represents all of the properities that could cause delay during media setup process.
207
- */
208
- shareSetupDelay?: {
209
- floorReqSentReceived?: number;
210
- floorRespSentReceived?: number;
211
- mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard";
212
- txReqFloorGranted?: number;
213
- txSessionCreateConfirm?: number;
214
- txApeEnrollConfirm?: number;
215
- txUIDelay?: number;
216
- txScreenCaptureDelay?: number;
217
- txScreenCaptureDelayReasonCode?: number;
218
- txShareStartOverallDelay?: number;
219
- rx1stPacket2RenderDelay?: number;
220
- rxGranted2RenderDelay?: number;
221
- rxFailFrameNumB4Success?: number;
222
- e2eFirstFrameDelay?: number;
223
- CBSessionRespToLocusFloorGrantDelay?: number;
224
- CBShareReceiveToServerShareTransmitDelay?: number;
225
- CBShareReceiveToTPGWFirstKeyFrameDelay?: number;
226
- TPGWFirstKeyFrameToServerShareTransmitDelay?: number;
227
- MCSSessionActivateToLocusFloorGrantDelay?: number;
228
- ServerShareInitiateToLocusFloorGrantDelay?: number;
229
- LocusFloorGrantToCBSessionStartDelay?: number;
230
- ServerShareReceiveToTPGWFirstKeyFrameDelay?: number;
231
- LocusFloorGrantToTPGWFloorGrantDelay?: number;
232
- LocusFloorGrantToReceiverNotificationDelay?: number;
233
- CBShareSessionRespDelay?: number;
234
- LocusShareFloorGrantRespDelay?: number;
235
- ServerShareFloorGrantRespDelay?: number;
236
- joinRespRxStart?: number;
237
- joinRespTxStart?: number;
238
- maxRemoteLossRate?: number;
239
- media2SignalDelay?: number;
240
- warholDownloadTime?: number;
241
- contentDownloadTime?: number;
242
- boardCreationTime?: number;
243
- totalBoardServiceRespDelay?: number;
244
- };
245
- /**
246
- * represents all of the properities that could cause delay during media setup process.
247
- */
248
- shareAudioSetupDelay?: {
249
- floorReqSentReceived?: number;
250
- floorRespSentReceived?: number;
251
- mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard";
252
- txReqFloorGranted?: number;
253
- txSessionCreateConfirm?: number;
254
- txApeEnrollConfirm?: number;
255
- txUIDelay?: number;
256
- txScreenCaptureDelay?: number;
257
- txScreenCaptureDelayReasonCode?: number;
258
- txShareStartOverallDelay?: number;
259
- rx1stPacket2RenderDelay?: number;
260
- rxGranted2RenderDelay?: number;
261
- rxFailFrameNumB4Success?: number;
262
- e2eFirstFrameDelay?: number;
263
- CBSessionRespToLocusFloorGrantDelay?: number;
264
- CBShareReceiveToServerShareTransmitDelay?: number;
265
- CBShareReceiveToTPGWFirstKeyFrameDelay?: number;
266
- TPGWFirstKeyFrameToServerShareTransmitDelay?: number;
267
- MCSSessionActivateToLocusFloorGrantDelay?: number;
268
- ServerShareInitiateToLocusFloorGrantDelay?: number;
269
- LocusFloorGrantToCBSessionStartDelay?: number;
270
- ServerShareReceiveToTPGWFirstKeyFrameDelay?: number;
271
- LocusFloorGrantToTPGWFloorGrantDelay?: number;
272
- LocusFloorGrantToReceiverNotificationDelay?: number;
273
- CBShareSessionRespDelay?: number;
274
- LocusShareFloorGrantRespDelay?: number;
275
- ServerShareFloorGrantRespDelay?: number;
276
- joinRespRxStart?: number;
277
- joinRespTxStart?: number;
278
- maxRemoteLossRate?: number;
279
- media2SignalDelay?: number;
280
- warholDownloadTime?: number;
281
- contentDownloadTime?: number;
282
- boardCreationTime?: number;
283
- totalBoardServiceRespDelay?: number;
284
- };
285
- /**
286
- * represents all of the properities that could cause delay during media setup process.
287
- */
288
- whiteboardSetupDelay?: {
289
- floorReqSentReceived?: number;
290
- floorRespSentReceived?: number;
291
- mediaType?: "audio" | "video" | "share" | "share_audio" | "whiteboard";
292
- txReqFloorGranted?: number;
293
- txSessionCreateConfirm?: number;
294
- txApeEnrollConfirm?: number;
295
- txUIDelay?: number;
296
- txScreenCaptureDelay?: number;
297
- txScreenCaptureDelayReasonCode?: number;
298
- txShareStartOverallDelay?: number;
299
- rx1stPacket2RenderDelay?: number;
300
- rxGranted2RenderDelay?: number;
301
- rxFailFrameNumB4Success?: number;
302
- e2eFirstFrameDelay?: number;
303
- CBSessionRespToLocusFloorGrantDelay?: number;
304
- CBShareReceiveToServerShareTransmitDelay?: number;
305
- CBShareReceiveToTPGWFirstKeyFrameDelay?: number;
306
- TPGWFirstKeyFrameToServerShareTransmitDelay?: number;
307
- MCSSessionActivateToLocusFloorGrantDelay?: number;
308
- ServerShareInitiateToLocusFloorGrantDelay?: number;
309
- LocusFloorGrantToCBSessionStartDelay?: number;
310
- ServerShareReceiveToTPGWFirstKeyFrameDelay?: number;
311
- LocusFloorGrantToTPGWFloorGrantDelay?: number;
312
- LocusFloorGrantToReceiverNotificationDelay?: number;
313
- CBShareSessionRespDelay?: number;
314
- LocusShareFloorGrantRespDelay?: number;
315
- ServerShareFloorGrantRespDelay?: number;
316
- joinRespRxStart?: number;
317
- joinRespTxStart?: number;
318
- maxRemoteLossRate?: number;
319
- media2SignalDelay?: number;
320
- warholDownloadTime?: number;
321
- contentDownloadTime?: number;
322
- boardCreationTime?: number;
323
- totalBoardServiceRespDelay?: number;
324
- };
325
- isFocus?: boolean;
326
- processingDelay?: number;
327
- 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";
328
- isShareBeingTakenOver?: boolean;
329
- floorBeneficiaryUpdated?: boolean;
330
- meetingJoinedTime?: string;
331
- meetingScheduledTime?: string;
332
- e2eeKeyEpoch?: number;
333
- e2eeDecompressRatio?: number;
334
- keyResponses?: {
335
- gotKeyTime?: number;
336
- useKeyTime?: number;
337
- cacheKeyTime?: number;
338
- }[];
339
- e2eeVersion?: "E2EEV1" | "E2EEV2" | "E2EEV3";
340
- isConvergedArchitectureEnabled?: boolean;
341
- callingServiceType?: "CUCM" | "WEBEXCALLING" | "BROADWORKS" | "LOCUS";
342
- inLobby?: boolean;
343
- isVIPMeeting?: boolean;
344
- webexAppEntrypoint?: string;
345
- firstParticipant?: boolean;
346
- isImmersiveShare?: boolean;
347
- /**
348
- * Request/Response Time for Internal Services
349
- */
350
- registeredTimestamps?: {
351
- locusCreateConfluenceRequestTime?: string;
352
- locusCreateConfluenceResponseTime?: string;
353
- locusCreateVenueRequestTime?: string;
354
- locusCreateVenueResponseTime?: string;
355
- };
356
- skipInterstitialWindow?: boolean;
357
- callDurationSecs?: number;
358
- /**
359
- * Details associated with a breakout move
360
- */
361
- breakout?: {
362
- moveType?: "between_breakout" | "to_breakout" | "to_main";
363
- trigger?: "assignment_changed" | "client_initiated" | "session_ended" | "session_started";
364
- startState?: "joined" | "lobby";
365
- endState?: "joined" | "lobby";
366
- };
367
- /**
368
- * Latency values associated with breakout session
369
- */
370
- breakoutLatency?: {
371
- boBreakoutMoveProcessed?: number;
372
- boBreakoutMoveResp?: number;
373
- boLocusBreakoutMoveResp?: number;
374
- locusBreakoutMoveResp?: number;
375
- orpheusConfluenceMoveReqResp?: number;
376
- };
377
- /**
378
- * two-way whiteboard related info
379
- */
380
- whiteboard?: {
381
- action?: "open" | "create";
382
- type?: "whiteboard" | "annotation";
383
- capability?: "one_way" | "two_way";
384
- granted?: "one_way" | "two_way";
385
- };
386
- /**
387
- * ROAP message details
388
- */
389
- roap?: {
390
- type?: "ANSWER" | "ERROR" | "OFFER" | "OFFER_REQUEST" | "OFFER_RESPONSE" | "OK" | "OKAY" | "TURN_DISCOVERY_REQUEST" | "TURN_DISCOVERY_RESPONSE";
391
- messageType?: "ANSWER" | "ERROR" | "OFFER" | "OFFER_REQUEST" | "OFFER_RESPONSE" | "OK" | "OKAY" | "TURN_DISCOVERY_REQUEST" | "TURN_DISCOVERY_RESPONSE";
392
- error?: string;
393
- duration?: number;
394
- seq?: number;
395
- };
396
- trigger?: "dummyTrigger1" | "dummyTrigger2" | "media-quality";
397
- name: "server.mediaquality.event" | "client.mediaquality.event";
398
- /**
399
- * Base type for the various identifiers used to connect the dots.
400
- * In general, these should be populated whenever possible. Subtypes may make a particular key required.
401
- *
402
- */
403
- identifiers: {
404
- attendeeId?: string;
405
- breakoutGroupId?: string;
406
- breakoutMoveId?: string;
407
- breakoutSessionId?: string;
408
- confluenceId?: string;
409
- /**
410
- * Set of identifiers dedicated to CPaaS clients
411
- * In general, these should be populated whenever possible. Subtypes may make a particular key required.
412
- *
413
- */
414
- cpaasIdentifiers?: {
415
- imiTenantId: string;
416
- devClientId: string;
417
- imiServiceId: string;
418
- imiAppId: string;
419
- sessionId: string;
420
- sessionInstanceId: string;
421
- };
422
- csdmDeviceUrl?: string;
423
- destinationBreakoutSessionId?: string;
424
- destinationLocusSessionId?: string;
425
- destinationLocusUrl?: string;
426
- destinationVenueId?: string;
427
- deviceId?: string;
428
- ivrCallId?: string;
429
- ivrDialogId?: string;
430
- ivrId?: string;
431
- locusId?: string;
432
- locusSessionId?: string;
433
- locusStartTime?: string;
434
- locusUrl?: string;
435
- mediaAgentAlias?: string;
436
- mediaAgentGroupId?: string;
437
- meetClusterName?: string;
438
- meetingLookupUrl?: string;
439
- meetingOrgId?: string;
440
- msteamsTenantGuid?: string;
441
- msteamsConferenceId?: string;
442
- oauth2ClientId?: string;
443
- orgId?: string;
444
- provisionalCorrelationId?: string;
445
- roomId?: string;
446
- sipCallId?: string;
447
- sipSessionId?: {
448
- local?: string;
449
- remote?: string;
450
- };
451
- sipUri?: string;
452
- subConfId?: string;
453
- tenantId?: string;
454
- trackingId?: string;
455
- userId?: string;
456
- venueId?: string;
457
- venueUrl?: string;
458
- whiteboardUrl?: string;
459
- webexConferenceId?: number;
460
- webexClusterName?: string;
461
- webexConferenceIdStr?: string;
462
- webexDataCenter?: string;
463
- webexGuestId?: number;
464
- webexMeetingId?: number;
465
- webexNodeId?: number;
466
- webexSiteId?: number;
467
- webexSiteName?: string;
468
- webexUserId?: number;
469
- webexWebDomain?: string;
470
- correlationId: string;
471
- };
472
- /**
473
- * 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.
474
- */
475
- sourceMetadata?: {
476
- mediaEngineSoftwareType: string;
477
- mediaEngineSoftwareVersion: string;
478
- applicationSoftwareType: string;
479
- applicationSoftwareVersion: string;
480
- hardwareType?: string;
481
- clientRegion?: string;
482
- serverRegion?: string;
483
- serverOrg?: string;
484
- serverGroup?: string;
485
- serverAlias?: string;
486
- serverDeployType?: "private" | "public";
487
- startTime: string;
488
- endTime?: string;
489
- csi?: number[];
490
- isCascade?: boolean;
491
- isHybridMedia?: boolean;
492
- videoMeshClusterName?: string;
493
- videoMeshServerName?: string;
494
- isTIP?: boolean;
495
- isMARI?: boolean;
496
- has264Checksum?: boolean;
497
- intervalPeriod?: number;
498
- cascadePeerRegion?: string;
499
- cascadePeerOrg?: string;
500
- cascadePeerGroup?: string;
501
- cascadePeerAlias?: string;
502
- cascadePeerServerType?: "CB" | "CMS" | "HESIOD" | "LINUS" | "MCC" | "MCS" | "MES" | "MJS" | "MRS" | "MYGDONUS" | "MZM" | "TERMINUS" | "TPGW" | "TA" | "HOMER" | "SUPERHOMER" | "U2C" | "WCA" | "MSE" | "UNKNOWN";
503
- cascadePeerDeployType?: "private" | "public";
504
- };
505
- /**
506
- * Details of a media edge server which is in the media path but does not generate MQE directly
507
- */
508
- edgeInfo?: {
509
- alias: string;
510
- publicIP: string;
511
- privateIP: string;
512
- version: string;
513
- labels?: string;
514
- };
515
- intervals: {
516
- intervalNumber: number;
517
- /**
518
- * The metadata associated with the emitter of the event. This data is separate from the source metadata and must be emitted with every event.
519
- */
520
- intervalMetadata: {
521
- peerReflexiveIP?: string;
522
- maskedPeerReflexiveIP?: string;
523
- remoteMediaIP?: string;
524
- maskedRemoteMediaIP?: string;
525
- staticPerformanceLevel?: number;
526
- processAverageCPU?: number;
527
- processMaximumCPU?: number;
528
- systemAverageCPU?: number;
529
- systemMaximumCPU?: number;
530
- systemAverageGPU?: number;
531
- systemMaximumGPU?: number;
532
- /**
533
- * this object defines the memory related fields that are tracked in media quality events and reports
534
- */
535
- memoryUsage?: {
536
- processAverageMemoryUsage: number;
537
- processMaximumMemoryUsage: number;
538
- systemAverageMemoryUsage: number;
539
- systemMaximumMemoryUsage: number;
540
- processMaximumMemoryBytes: number;
541
- mainProcessMaximumMemoryBytes: number;
542
- osBitWidth: number;
543
- cpuBitWidth: number;
544
- };
545
- peripherals?: {
546
- name: "camera" | "microphone" | "speaker";
547
- information: string;
548
- driver?: string;
549
- errorCode?: string;
550
- connectionType?: unknown;
551
- bluetoothMode?: unknown;
552
- }[];
553
- /**
554
- * information object for the peripheral
555
- */
556
- cameraInfo?: {
557
- name: "camera" | "microphone" | "speaker";
558
- information: string;
559
- driver?: string;
560
- errorCode?: string;
561
- connectionType?: unknown;
562
- bluetoothMode?: unknown;
563
- };
564
- /**
565
- * information object for the peripheral
566
- */
567
- microphoneInfo?: {
568
- name: "camera" | "microphone" | "speaker";
569
- information: string;
570
- driver?: string;
571
- errorCode?: string;
572
- connectionType?: unknown;
573
- bluetoothMode?: unknown;
574
- };
575
- /**
576
- * information object for the peripheral
577
- */
578
- speakerInfo?: {
579
- name: "camera" | "microphone" | "speaker";
580
- information: string;
581
- driver?: string;
582
- errorCode?: string;
583
- connectionType?: unknown;
584
- bluetoothMode?: unknown;
585
- };
586
- /**
587
- * This object defines the fields related to the CPU being used by the emitter of the event
588
- */
589
- cpuInfo?: {
590
- description: string;
591
- clockSpeedGigaHertz: number;
592
- numberOfCores: number;
593
- architecture: "intel32" | "intel64" | "amd32" | "amd64" | "arm32" | "arm64" | "unknown";
594
- staticPerformance?: string;
595
- };
596
- /**
597
- * Thread level cpu performance insights
598
- */
599
- cpuDataDetail?: {
600
- processesData?: unknown[];
601
- coresCpuData?: unknown[];
602
- coreVariance?: number;
603
- };
604
- /**
605
- * This object defines the fields related to the GPU being used by the emitter of the event
606
- */
607
- defaultGpuInfo?: {
608
- description: string;
609
- memoryMegaBytes: number;
610
- };
611
- otherGpuInfo?: {
612
- description: string;
613
- memoryMegaBytes: number;
614
- }[];
615
- dpcRecord?: string[];
616
- mediaLabels?: string[];
617
- screenResolution?: number;
618
- screenWidth?: number;
619
- screenHeight?: number;
620
- appWindowSize?: number;
621
- appWindowHeight?: number;
622
- appWindowWidth?: number;
623
- meetingUserCount?: number;
624
- videoUserCount?: number;
625
- numScreens?: number;
626
- configuredBitrate?: number;
627
- };
628
- audioTransmit: {
629
- /**
630
- * contains the transmit related fields common between all session types for each interval
631
- */
632
- common: {
633
- /**
634
- * contains the fields common to both transmit and receive sessions for each interval
635
- */
636
- common: {
637
- isMain: boolean;
638
- mariFecEnabled: boolean;
639
- mariRtxEnabled?: boolean;
640
- mariQosEnabled: boolean;
641
- mariLiteEnabled?: boolean;
642
- multistreamEnabled: boolean;
643
- isMediaBypassEdge?: boolean;
644
- direction: "sendrecv" | "sendonly" | "recvonly" | "inactive";
645
- localPort?: number;
646
- peerReflexivePort?: number;
647
- remotePort?: number;
648
- };
649
- fecPackets: number;
650
- fecBitrate: number;
651
- rtxPackets?: number;
652
- rtxBitrate?: number;
653
- rtpPackets: number;
654
- rtpBitrate: number;
655
- rtcpPackets: number;
656
- rtcpBitrate: number;
657
- /**
658
- * RTCP Information for a given Interval
659
- */
660
- txRtcpInfo?: {
661
- rtcpSrPackets: number;
662
- rtcpRrPackets: number;
663
- rtcpReportBlocks: number;
664
- rtcpSdesPackets: number;
665
- rtcpByePackets: number;
666
- rtcpAppPackets: number;
667
- rtcpRtpFbPacket: number;
668
- rtcpPsFbPackets: number;
669
- rtcpPsFbMariPackets: number;
670
- rtcpPsFbMultistreamPackets: number;
671
- rtcpXrPackets: number;
672
- };
673
- stunPackets: number;
674
- stunBitrate: number;
675
- dtlsPackets: number;
676
- dtlsBitrate: number;
677
- transportType: "UDP" | "TCP" | "xTLS" | "TLS";
678
- maxBitrate: number;
679
- availableBitrate: number;
680
- queueDelay: number;
681
- meanRoundTripTime?: number;
682
- maxRoundTripTime?: number;
683
- roundTripTime: number;
684
- remoteReceiveRate?: number;
685
- maxRemoteLossRate?: number;
686
- remoteLossRate?: number;
687
- meanRemoteLossRate?: number;
688
- maxRemoteJitter?: number;
689
- remoteJitter?: number;
690
- meanRemoteJitter?: number;
691
- traversalMinDelayMs?: number;
692
- traversalMaxDelayMs?: number;
693
- traversalMeanDelayMs?: number;
694
- rtpInputFifoDelayMs?: number;
695
- rtpInputFifoMaxDelayMs?: number;
696
- rtpInputFifoMinDelayMs?: number;
697
- rtpInputFifoMeanDelayMs?: number;
698
- };
699
- streams: {
700
- /**
701
- * contains fields common to all transmit streams types
702
- */
703
- common: {
704
- ssci: number;
705
- duplicateSsci?: number;
706
- rtpPackets: number;
707
- transmittedFrameRate: number;
708
- requestedFrames: number;
709
- transmittedBitrate: number;
710
- requestedBitrate: number;
711
- captureOffset?: number;
712
- codec: string;
713
- csi?: number[];
714
- /**
715
- * This object tracks SSRC and CSRC changes for an RTP stream, session, etc
716
- */
717
- sourceChanges?: {
718
- /**
719
- * The number of RTP SSRC changes seen. The first RTP packet seen should NOT be counted as a change.
720
- */
721
- ssrcChanges: number;
722
- /**
723
- * 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.
724
- */
725
- csrcChanges: number;
726
- };
727
- };
728
- 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";
729
- 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";
730
- audioTXSPCStatus?: "AUDIO_SPC_STATUS_DISABLED" | "AUDIO_SPC_STATUS_SUSPENDED" | "AUDIO_SPC_STATUS_ENABLED";
731
- audioTXSPCLevel?: "AUDIO_NONE" | "AUDIO_LOW" | "AUDIO_MEDIUM" | "AUDIO_NORMAL" | "AUDIO_HIGH" | "AUDIO_HIGHPLUS" | "AUDIO_TOP";
732
- /**
733
- * audio encoder engine performance data
734
- */
735
- audioEncoderEngineInfo?: {
736
- /**
737
- * The number of audio packets sent to the encoder buffer
738
- */
739
- encoderBufferPacket?: number;
740
- /**
741
- * The number of dropped audio packets before sent to the encoder buffer
742
- */
743
- encoderBufferDroppedPacket?: number;
744
- /**
745
- * The average processing time (microseconds) on background noise reduction (BNR)
746
- */
747
- averageBNRProcessTime?: number;
748
- /**
749
- * The average processing time (microseconds) on audio encoder pipeline
750
- */
751
- averageEncoderProcessTime?: number;
752
- };
753
- /**
754
- * audio transmitted algorithm modules performance data(AEC,AGC,NR,MultiChannelPreprocess)
755
- */
756
- audioAlgorithmModulesInfo?: {
757
- /**
758
- * one char every 1 minute, 0 indicate 0db, plus 1 indicate -0.5dB
759
- */
760
- aecNearPower: number;
761
- /**
762
- * one char every 1 minute, 0 indicate 0db, plus 1 indicate -0.5dB
763
- */
764
- aecFarPower: number;
765
- /**
766
- * one char every 1 minute, 0 indicate 0db, plus 1 indicate -0.5dB
767
- */
768
- aecLinearOutPower?: number;
769
- /**
770
- * one char every 1 minute, 0 indicate 0db, plus 1 indicate -0.5dB
771
- */
772
- aecOutPower?: number;
773
- /**
774
- * one char every 1 minute, 0 indicate 54dB, plus 1 indicate +0.5dB
775
- */
776
- aecERLE?: number;
777
- /**
778
- * one char every 1 minute, 0 indicate 0dB, plus 1 indicate +0.5dB
779
- */
780
- aecERL?: number;
781
- /**
782
- * one char every 1 minute, 0 indicate 54dB, plus 1 indicate +0.5dB
783
- */
784
- linearAecERLE?: number;
785
- /**
786
- * one char every 1 minute, 0 indicate 0ms, plus 1 indicate 10ms
787
- */
788
- estDelay?: number;
789
- /**
790
- * one char every 1 minute
791
- */
792
- aecType?: number;
793
- /**
794
- * one unsigned short every 1 minute
795
- */
796
- aecCostTime?: number;
797
- /**
798
- * one unsigned short every 1 minute
799
- */
800
- multichannelChangedDelay?: number;
801
- /**
802
- * one unsigend char every 1 minute, 0 indicate 0db, plus 1 indicate -0.5dB
803
- */
804
- multichannelDelaySumOutPower?: number;
805
- /**
806
- * one unsigend char every 1 minute, 0 indicate 0db, plus 1 indicate -0.5dB
807
- */
808
- multichannelAverageOutPower?: number;
809
- /**
810
- * one unsigned char every 1 minute, 0 for 0dB, plus 1 for -0.5dB
811
- */
812
- speechRMS?: number;
813
- /**
814
- * one unsigned char every 1 minute, 0 for 0s, plus 4 for +1s
815
- */
816
- speechLength?: number;
817
- /**
818
- * one unsigned char every 1 minute, VAD value to reflect speech quality
819
- */
820
- speechQuality?: number;
821
- /**
822
- * one char every 1 minute.
823
- */
824
- remoteIOStatus?: number;
825
- /**
826
- * one char every 1 minute
827
- */
828
- multichannelPreprocessEnabled?: number;
829
- /**
830
- * one char every 1 minute
831
- */
832
- bypassWindowsAPOAllowListEnabled?: number;
833
- /**
834
- * one char every 1 minute, 0 for 0dB, plus 1 for 0.5dB
835
- */
836
- bnrSNR?: number;
837
- /**
838
- * one unsigned short every 1 minute
839
- */
840
- bnrTRN?: number;
841
- /**
842
- * one short every 1 minute
843
- */
844
- ftLeakage?: number;
845
- /**
846
- * one short every 1 minute
847
- */
848
- noiseLeakage?: number;
849
- /**
850
- * one short every 1 minute
851
- */
852
- echoLeakage?: number;
853
- /**
854
- * one char every 1 minute, 0 indicate 0db, plus 1 indicate 0.0472dB.
855
- */
856
- multichannelDelaySumAndDirectMixRMSRatio?: number;
857
- windowsAPOBypassed?: boolean;
858
- };
859
- /**
860
- * audio transmit pipeline modules' quality metric
861
- */
862
- audioModuleQualityInfo?: {
863
- /**
864
- * one char every 2 seconds. 0 indicate 0dB, plus 1 indicate -0.5dB
865
- */
866
- aecNearPower?: number[];
867
- /**
868
- * one char every 2 seconds. 0 indicate 0dB, plus 1 indicate -0.5dB
869
- */
870
- aecLinearOutPower?: number[];
871
- /**
872
- * one char every 2 seconds. 0 indicate 0dB, plus 1 indicate -0.5dB
873
- */
874
- aecOutPower?: number[];
875
- /**
876
- * one char every 2 seconds. 0 indicate 0dB, plus 1 indicate -0.5dB
877
- */
878
- aecFarPower?: number[];
879
- /**
880
- * One char every 2 seconds.
881
- */
882
- aecStatus?: number[];
883
- /**
884
- * one char every 2 seconds.
885
- */
886
- bblOutPower?: number[];
887
- /**
888
- * one char every 2 seconds
889
- */
890
- volumeAndDelay?: number[];
891
- /**
892
- * one char every 2 seconds. 0 indicate 0dB, plus 1 indicate -0.5dB
893
- */
894
- agcOutPower?: number[];
895
- /**
896
- * one char every 2 seconds. 0 indicate 0dB, plus 1 indicate -0.5dB
897
- */
898
- agcAvgOutPower?: number[];
899
- /**
900
- * one char every 2 seconds. 0 indicate 0dB, plus 1 indicate -0.5dB
901
- */
902
- agcAvgInputPower?: number[];
903
- /**
904
- * one char every 1 minute.
905
- */
906
- agcType?: number;
907
- };
908
- audioCaptureMethod?: "AUDIO_ANDROID_JAVA_METHOD" | "AUDIO_ANDROID_AAUDIO_METHOD";
909
- }[];
910
- /**
911
- * information about tracked audio levels
912
- */
913
- levels?: {
914
- /**
915
- * The average audio input gain for a microphone or speaker, in decibels
916
- */
917
- audioMeanGain?: number;
918
- /**
919
- * The minimum audio input gain for a microphone or speaker, in decibels
920
- */
921
- audioMinGain?: number;
922
- /**
923
- * The maximum audio input gain for a microphone or speaker, in decibels
924
- */
925
- audioMaxGain?: number;
926
- /**
927
- * The mean audio output volume for a microphone or speaker, in absolute volume [0-65535]
928
- */
929
- audioMeanVolume?: number;
930
- /**
931
- * The min audio output volume for a microphone or speaker, in absolute volume [0-65535]
932
- */
933
- audioMinVolume?: number;
934
- /**
935
- * The max audio output volume for a microphone or speaker, in absolute volume [0-65535]
936
- */
937
- audioMaxVolume?: number;
938
- };
939
- captureHardwareProvidedAudioPacketsPerSecond?: number;
940
- sharedAudioPacketsPerSecond?: number;
941
- }[];
942
- videoTransmit: {
943
- /**
944
- * contains the transmit related fields common between all session types for each interval
945
- */
946
- common: {
947
- /**
948
- * contains the fields common to both transmit and receive sessions for each interval
949
- */
950
- common: {
951
- isMain: boolean;
952
- mariFecEnabled: boolean;
953
- mariRtxEnabled?: boolean;
954
- mariQosEnabled: boolean;
955
- mariLiteEnabled?: boolean;
956
- multistreamEnabled: boolean;
957
- isMediaBypassEdge?: boolean;
958
- direction: "sendrecv" | "sendonly" | "recvonly" | "inactive";
959
- localPort?: number;
960
- peerReflexivePort?: number;
961
- remotePort?: number;
962
- };
963
- fecPackets: number;
964
- fecBitrate: number;
965
- rtxPackets?: number;
966
- rtxBitrate?: number;
967
- rtpPackets: number;
968
- rtpBitrate: number;
969
- rtcpPackets: number;
970
- rtcpBitrate: number;
971
- /**
972
- * RTCP Information for a given Interval
973
- */
974
- txRtcpInfo?: {
975
- rtcpSrPackets: number;
976
- rtcpRrPackets: number;
977
- rtcpReportBlocks: number;
978
- rtcpSdesPackets: number;
979
- rtcpByePackets: number;
980
- rtcpAppPackets: number;
981
- rtcpRtpFbPacket: number;
982
- rtcpPsFbPackets: number;
983
- rtcpPsFbMariPackets: number;
984
- rtcpPsFbMultistreamPackets: number;
985
- rtcpXrPackets: number;
986
- };
987
- stunPackets: number;
988
- stunBitrate: number;
989
- dtlsPackets: number;
990
- dtlsBitrate: number;
991
- transportType: "UDP" | "TCP" | "xTLS" | "TLS";
992
- maxBitrate: number;
993
- availableBitrate: number;
994
- queueDelay: number;
995
- meanRoundTripTime?: number;
996
- maxRoundTripTime?: number;
997
- roundTripTime: number;
998
- remoteReceiveRate?: number;
999
- maxRemoteLossRate?: number;
1000
- remoteLossRate?: number;
1001
- meanRemoteLossRate?: number;
1002
- maxRemoteJitter?: number;
1003
- remoteJitter?: number;
1004
- meanRemoteJitter?: number;
1005
- traversalMinDelayMs?: number;
1006
- traversalMaxDelayMs?: number;
1007
- traversalMeanDelayMs?: number;
1008
- rtpInputFifoDelayMs?: number;
1009
- rtpInputFifoMaxDelayMs?: number;
1010
- rtpInputFifoMinDelayMs?: number;
1011
- rtpInputFifoMeanDelayMs?: number;
1012
- };
1013
- streams: {
1014
- /**
1015
- * contains fields common to all transmit streams types
1016
- */
1017
- common: {
1018
- ssci: number;
1019
- duplicateSsci?: number;
1020
- rtpPackets: number;
1021
- transmittedFrameRate: number;
1022
- requestedFrames: number;
1023
- transmittedBitrate: number;
1024
- requestedBitrate: number;
1025
- captureOffset?: number;
1026
- codec: string;
1027
- csi?: number[];
1028
- /**
1029
- * This object tracks SSRC and CSRC changes for an RTP stream, session, etc
1030
- */
1031
- sourceChanges?: {
1032
- /**
1033
- * The number of RTP SSRC changes seen. The first RTP packet seen should NOT be counted as a change.
1034
- */
1035
- ssrcChanges: number;
1036
- /**
1037
- * 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.
1038
- */
1039
- csrcChanges: number;
1040
- };
1041
- };
1042
- transmittedFrameSize: number;
1043
- requestedFrameSize: number;
1044
- transmittedHeight: number;
1045
- transmittedWidth: number;
1046
- transmittedKeyFrames: number;
1047
- requestedKeyFrames: number;
1048
- transmittedKeyFramesFeedback?: number;
1049
- transmittedKeyFramesConfigurationChange?: number;
1050
- transmittedKeyFramesSceneChange?: number;
1051
- transmittedKeyFramesOtherLayer?: number;
1052
- transmittedKeyFramesClient?: number;
1053
- transmittedKeyFramesPeriodic?: number;
1054
- transmittedKeyFramesLocalDrop?: number;
1055
- transmittedKeyFramesStartup?: number;
1056
- transmittedKeyFramesUnknown?: number;
1057
- transmittedKeyFramesEncLayerIndexChange?: number;
1058
- transmittedKeyFramesSwitchingPoint?: number;
1059
- localConfigurationChanges: number;
1060
- remoteConfigurationChanges: number;
1061
- h264CodecProfile: "BP" | "CHP";
1062
- isAvatar?: boolean;
1063
- /**
1064
- * video encode quality metrics
1065
- */
1066
- encodeQuality?: {
1067
- minRegionQp: number;
1068
- maxFrameQp: number;
1069
- maxNoiseLevel: number;
1070
- };
1071
- /**
1072
- * video transmit downgrade reasons
1073
- */
1074
- downgradeReason?: {
1075
- isCamera: boolean;
1076
- isNetwork: boolean;
1077
- isCpu: boolean;
1078
- isRequested?: boolean;
1079
- isUser?: boolean;
1080
- isHardware?: boolean;
1081
- };
1082
- isHardwareEncoded?: boolean;
1083
- 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";
1084
- backgroundAugmentationFrameworkType?: "VIDEO_VBG_FRAMEWORK_NONE" | "VIDEO_VBG_FRAMEWORK_COREML" | "VIDEO_VBG_FRAMEWORK_METAL" | "VIDEO_VBG_FRAMEWORK_CBASED" | "VIDEO_VBG_FRAMEWORK_OPENVINO" | "VIDEO_VBG_FRAMEWORK_COREML_LADON" | "VIDEO_VBG_FRAMEWORK_METAL_LADON" | "VIDEO_VBG_FRAMEWORK_CBASED_LADON" | "VIDEO_VBG_FRAMEWORK_OPENVINO_LADON";
1085
- /**
1086
- * transmit video pipeline performance metric
1087
- */
1088
- encoderProcessInfo?: {
1089
- meanEncoderProcessMillis: number;
1090
- maxEncoderProcessMillis: number;
1091
- meanVbgProcessMillis?: number;
1092
- maxVbgProcessMillis?: number;
1093
- };
1094
- backgroundAugmentationModelVersion?: string;
1095
- isGestureDetectorOn?: boolean;
1096
- capturedFrameRateNormalShare?: number;
1097
- capturedFrameRateHFPSShare?: number;
1098
- transmittedFrameRateNormalShare?: number;
1099
- transmittedFrameRateHFPSShare?: number;
1100
- /**
1101
- * the method use to capture the screen for screen sharing
1102
- */
1103
- screenCaptureMode?: "Unknown" | "Default" | "MAG" | "DUP" | "AVF" | "CGS" | "GDI" | "DIRECTX" | "WINDOW" | "SCK";
1104
- processShareContentDetectMillis?: number;
1105
- }[];
1106
- }[];
1107
- audioReceive: {
1108
- /**
1109
- * contains the receive related fields between all sessions types for each interval.
1110
- */
1111
- common: {
1112
- /**
1113
- * contains the fields common to both transmit and receive sessions for each interval
1114
- */
1115
- common: {
1116
- isMain: boolean;
1117
- mariFecEnabled: boolean;
1118
- mariRtxEnabled?: boolean;
1119
- mariQosEnabled: boolean;
1120
- mariLiteEnabled?: boolean;
1121
- multistreamEnabled: boolean;
1122
- isMediaBypassEdge?: boolean;
1123
- direction: "sendrecv" | "sendonly" | "recvonly" | "inactive";
1124
- localPort?: number;
1125
- peerReflexivePort?: number;
1126
- remotePort?: number;
1127
- };
1128
- fecPackets: number;
1129
- fecBitrate: number;
1130
- rtxPackets?: number;
1131
- rtxBitrate?: number;
1132
- meanRtxDelay?: number;
1133
- maxRtxDelay?: number;
1134
- rtpPackets: number;
1135
- rtpBitrate: number;
1136
- rtpHopByHopLost: number;
1137
- mediaHopByHopLost: number;
1138
- rtpRecovered: number;
1139
- rtxRecovered?: number;
1140
- rtcpPackets: number;
1141
- rtcpBitrate: number;
1142
- /**
1143
- * RTCP Information for a given Interval
1144
- */
1145
- rxRtcpInfo?: {
1146
- rtcpSrPackets: number;
1147
- rtcpRrPackets: number;
1148
- rtcpReportBlocks: number;
1149
- rtcpSdesPackets: number;
1150
- rtcpByePackets: number;
1151
- rtcpAppPackets: number;
1152
- rtcpRtpFbPacket: number;
1153
- rtcpPsFbPackets: number;
1154
- rtcpPsFbMariPackets: number;
1155
- rtcpPsFbMultistreamPackets: number;
1156
- rtcpXrPackets: number;
1157
- };
1158
- stunPackets: number;
1159
- stunBitrate: number;
1160
- dtlsPackets: number;
1161
- dtlsBitrate: number;
1162
- transportType: "UDP" | "TCP" | "xTLS" | "TLS";
1163
- maxBitrate: number;
1164
- srtpUnprotectErrors: number;
1165
- /**
1166
- * SRTP/SRTCP unprotect error details
1167
- */
1168
- srtpUnprotectErrorDetails?: {
1169
- authFailures: number;
1170
- cipherFailures: number;
1171
- replayFailures: number;
1172
- unknownFailures: number;
1173
- };
1174
- srtcpUnprotectErrors: number;
1175
- /**
1176
- * SRTP/SRTCP unprotect error details
1177
- */
1178
- srtcpUnprotectErrorDetails?: {
1179
- authFailures: number;
1180
- cipherFailures: number;
1181
- replayFailures: number;
1182
- unknownFailures: number;
1183
- };
1184
- };
1185
- streams: {
1186
- /**
1187
- * contains fields common to all types of receive stream
1188
- */
1189
- common: {
1190
- ssci: number;
1191
- rtpPackets: number;
1192
- rtpEndToEndLost: number;
1193
- concealedFrames: number;
1194
- maxConcealRunLength: number;
1195
- receivedFrameRate: number;
1196
- renderedFrameRate: number;
1197
- requestedFrameRate: number;
1198
- optimalFrameRate: number;
1199
- meanRtpJitter?: number;
1200
- maxRtpJitter?: number;
1201
- rtpJitter?: number;
1202
- receivedBitrate: number;
1203
- requestedBitrate: number;
1204
- optimalBitrate: number;
1205
- durationForSpeedChanged?: number;
1206
- endToEndTransmitDelay?: number;
1207
- csi: number[];
1208
- codec: string;
1209
- /**
1210
- * This object tracks SSRC and CSRC changes for an RTP stream, session, etc
1211
- */
1212
- sourceChanges?: {
1213
- /**
1214
- * The number of RTP SSRC changes seen. The first RTP packet seen should NOT be counted as a change.
1215
- */
1216
- ssrcChanges: number;
1217
- /**
1218
- * 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.
1219
- */
1220
- csrcChanges: number;
1221
- };
1222
- /**
1223
- * 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.
1224
- */
1225
- concealmentReasonByPacket?: {
1226
- /**
1227
- * concealment caused by network loss
1228
- */
1229
- byNetwork?: number;
1230
- /**
1231
- * concealment caused by buffer overflow. when total buffer length exceeds max delay threshold, buffer will overflow and data will be dropped.
1232
- */
1233
- byOverflow?: number;
1234
- /**
1235
- * concealment caused by buffer is reset.
1236
- */
1237
- byReset?: number;
1238
- /**
1239
- * concealment caused by late packet or frame. some packets or frames arrive late and the previous one has been played.
1240
- */
1241
- byLate?: number;
1242
- /**
1243
- * concealment caused by poor performance.
1244
- */
1245
- byPoorPerformance?: number;
1246
- /**
1247
- * only for audio. Number of concealment packets/frames sent to the audio decoder when frames are held back to increase re-order audio delay.
1248
- */
1249
- byIncreasedDelay?: number;
1250
- /**
1251
- * only for video. concealment caused by AV sync
1252
- */
1253
- byAVSync?: number;
1254
- /**
1255
- * 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.
1256
- */
1257
- byPrevFramePopped?: number;
1258
- /**
1259
- * concealment caused by the other unknown reasons
1260
- */
1261
- byOthers?: number;
1262
- };
1263
- /**
1264
- * 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.
1265
- */
1266
- concealmentReasonByFrame?: {
1267
- /**
1268
- * concealment caused by network loss
1269
- */
1270
- byNetwork?: number;
1271
- /**
1272
- * concealment caused by buffer overflow. when total buffer length exceeds max delay threshold, buffer will overflow and data will be dropped.
1273
- */
1274
- byOverflow?: number;
1275
- /**
1276
- * concealment caused by buffer is reset.
1277
- */
1278
- byReset?: number;
1279
- /**
1280
- * concealment caused by late packet or frame. some packets or frames arrive late and the previous one has been played.
1281
- */
1282
- byLate?: number;
1283
- /**
1284
- * concealment caused by poor performance.
1285
- */
1286
- byPoorPerformance?: number;
1287
- /**
1288
- * only for audio. Number of concealment packets/frames sent to the audio decoder when frames are held back to increase re-order audio delay.
1289
- */
1290
- byIncreasedDelay?: number;
1291
- /**
1292
- * only for video. concealment caused by AV sync
1293
- */
1294
- byAVSync?: number;
1295
- /**
1296
- * 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.
1297
- */
1298
- byPrevFramePopped?: number;
1299
- /**
1300
- * concealment caused by the other unknown reasons
1301
- */
1302
- byOthers?: number;
1303
- };
1304
- /**
1305
- * 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.
1306
- */
1307
- interruptCount?: {
1308
- /**
1309
- * interrupt count longer than 60 ms in one minute
1310
- */
1311
- longerThan60?: number;
1312
- /**
1313
- * interrupt count longer than 120 ms in one minute
1314
- */
1315
- longerThan120?: number;
1316
- };
1317
- /**
1318
- * This object tracks the delay associated with a jitter buffer
1319
- */
1320
- jitterBufferDelay?: {
1321
- /**
1322
- * The average delay (in milliseconds) used by the jitter buffer
1323
- */
1324
- meanDelay: number;
1325
- /**
1326
- * The maximum delay (in milliseconds) used by the jitter buffer
1327
- */
1328
- maxDelay: number;
1329
- /**
1330
- * The minimum delay (in milliseconds) used by the jitter buffer
1331
- */
1332
- minDelay: number;
1333
- };
1334
- /**
1335
- * This object tracks the the end to end delay(the delay between capture time of sender side and render time of receiver side)
1336
- */
1337
- endToEndDelay?: {
1338
- /**
1339
- * The average delay (in milliseconds) from end to end
1340
- */
1341
- meanDelay: number;
1342
- /**
1343
- * The maximum delay (in milliseconds) from end to end
1344
- */
1345
- maxDelay: number;
1346
- /**
1347
- * The minimum delay (in milliseconds) from end to end
1348
- */
1349
- minDelay: number;
1350
- };
1351
- /**
1352
- * Aggregated end to end delay representing the mean, max, min delay group by csi
1353
- */
1354
- endToEndDelayByCsi?: {
1355
- csi?: number;
1356
- delay?: unknown;
1357
- }[];
1358
- };
1359
- isRxCallBackgroundNoiseReductionModeOn?: boolean;
1360
- isMeasureSNROn?: boolean;
1361
- averageSNRValue?: number;
1362
- /**
1363
- * contains fields for QOEM MOS score
1364
- */
1365
- audioqoem?: {
1366
- version: string;
1367
- /**
1368
- * Average Estimated Mean Opinion Score by considering network’s jitter, loss etc.
1369
- */
1370
- averageNetMOS: number;
1371
- /**
1372
- * Min Estimated Mean Opinion score by considering network’s jitter, loss etc.
1373
- */
1374
- minNetMOS: number;
1375
- /**
1376
- * Average Estimated Mean Opinion Score jitter buffer’s status, such as drop packet, do PLC, do recover etc.
1377
- */
1378
- averageJitterMOS: number;
1379
- /**
1380
- * Min Estimated Mean Opinion Score jitter buffer’s status, such as drop packet, do PLC, do recover etc.
1381
- */
1382
- minJitterMOS: number;
1383
- /**
1384
- * Perceptual Evaluation of Speech Quality - Listening Quality Objective (PESQ-LQO)
1385
- */
1386
- pesqLQO?: number;
1387
- };
1388
- audioPlaybackMethod?: "AUDIO_ANDROID_JAVA_METHOD" | "AUDIO_ANDROID_AAUDIO_METHOD";
1389
- /**
1390
- * audio received algorithm modules performance data(AGC,NR,MultiChannelPreprocess)
1391
- */
1392
- audioAlgorithmModulesInfo?: {
1393
- /**
1394
- * one unsigned char every 1 minute, 0 for 0dB, plus 1 for -0.5dB
1395
- */
1396
- speechRMS?: number;
1397
- /**
1398
- * one unsigned char every 1 minute, 0 for 0s, plus 4 for +1s
1399
- */
1400
- speechLength?: number;
1401
- /**
1402
- * one unsigned char every 1 minute, VAD value to reflect speech quality
1403
- */
1404
- speechQuality?: number;
1405
- /**
1406
- * one unsigned short every 1 minute
1407
- */
1408
- bnrTRN?: number;
1409
- };
1410
- /**
1411
- * audio receive pipeline modules' quality metric
1412
- */
1413
- audioModuleQualityInfo?: {
1414
- /**
1415
- * one char every 2 seconds. 0 indicate 0dB, plus 1 indicate -0.5dB
1416
- */
1417
- agcOutPower?: number[];
1418
- /**
1419
- * one char every 2 seconds. 0 indicate 0dB, plus 1 indicate -0.5dB
1420
- */
1421
- agcAvgOutPower?: number[];
1422
- };
1423
- /**
1424
- * This object tracks the the audio video sync data, to see whether the video timestamp is matching with audio timestamp
1425
- */
1426
- avSync?: {
1427
- /**
1428
- * Compared with audio, the maximum video delay time (in milliseconds) in last interval
1429
- */
1430
- maxVideoLateInterval?: number;
1431
- /**
1432
- * Compared with audio, the maximum video early time (in milliseconds) in last interval
1433
- */
1434
- maxVideoEarlyInterval?: number;
1435
- /**
1436
- * Compared with audio, the unsync video frames get played out / total frames
1437
- */
1438
- decidePlayedUnsyncRatio?: number;
1439
- };
1440
- }[];
1441
- /**
1442
- * information about tracked audio levels
1443
- */
1444
- levels?: {
1445
- /**
1446
- * The average audio input gain for a microphone or speaker, in decibels
1447
- */
1448
- audioMeanGain?: number;
1449
- /**
1450
- * The minimum audio input gain for a microphone or speaker, in decibels
1451
- */
1452
- audioMinGain?: number;
1453
- /**
1454
- * The maximum audio input gain for a microphone or speaker, in decibels
1455
- */
1456
- audioMaxGain?: number;
1457
- /**
1458
- * The mean audio output volume for a microphone or speaker, in absolute volume [0-65535]
1459
- */
1460
- audioMeanVolume?: number;
1461
- /**
1462
- * The min audio output volume for a microphone or speaker, in absolute volume [0-65535]
1463
- */
1464
- audioMinVolume?: number;
1465
- /**
1466
- * The max audio output volume for a microphone or speaker, in absolute volume [0-65535]
1467
- */
1468
- audioMaxVolume?: number;
1469
- };
1470
- playbackHardwareRequiredAudioPacketsPerSecond?: number;
1471
- }[];
1472
- videoReceive: {
1473
- /**
1474
- * contains the receive related fields between all sessions types for each interval.
1475
- */
1476
- common: {
1477
- /**
1478
- * contains the fields common to both transmit and receive sessions for each interval
1479
- */
1480
- common: {
1481
- isMain: boolean;
1482
- mariFecEnabled: boolean;
1483
- mariRtxEnabled?: boolean;
1484
- mariQosEnabled: boolean;
1485
- mariLiteEnabled?: boolean;
1486
- multistreamEnabled: boolean;
1487
- isMediaBypassEdge?: boolean;
1488
- direction: "sendrecv" | "sendonly" | "recvonly" | "inactive";
1489
- localPort?: number;
1490
- peerReflexivePort?: number;
1491
- remotePort?: number;
1492
- };
1493
- fecPackets: number;
1494
- fecBitrate: number;
1495
- rtxPackets?: number;
1496
- rtxBitrate?: number;
1497
- meanRtxDelay?: number;
1498
- maxRtxDelay?: number;
1499
- rtpPackets: number;
1500
- rtpBitrate: number;
1501
- rtpHopByHopLost: number;
1502
- mediaHopByHopLost: number;
1503
- rtpRecovered: number;
1504
- rtxRecovered?: number;
1505
- rtcpPackets: number;
1506
- rtcpBitrate: number;
1507
- /**
1508
- * RTCP Information for a given Interval
1509
- */
1510
- rxRtcpInfo?: {
1511
- rtcpSrPackets: number;
1512
- rtcpRrPackets: number;
1513
- rtcpReportBlocks: number;
1514
- rtcpSdesPackets: number;
1515
- rtcpByePackets: number;
1516
- rtcpAppPackets: number;
1517
- rtcpRtpFbPacket: number;
1518
- rtcpPsFbPackets: number;
1519
- rtcpPsFbMariPackets: number;
1520
- rtcpPsFbMultistreamPackets: number;
1521
- rtcpXrPackets: number;
1522
- };
1523
- stunPackets: number;
1524
- stunBitrate: number;
1525
- dtlsPackets: number;
1526
- dtlsBitrate: number;
1527
- transportType: "UDP" | "TCP" | "xTLS" | "TLS";
1528
- maxBitrate: number;
1529
- srtpUnprotectErrors: number;
1530
- /**
1531
- * SRTP/SRTCP unprotect error details
1532
- */
1533
- srtpUnprotectErrorDetails?: {
1534
- authFailures: number;
1535
- cipherFailures: number;
1536
- replayFailures: number;
1537
- unknownFailures: number;
1538
- };
1539
- srtcpUnprotectErrors: number;
1540
- /**
1541
- * SRTP/SRTCP unprotect error details
1542
- */
1543
- srtcpUnprotectErrorDetails?: {
1544
- authFailures: number;
1545
- cipherFailures: number;
1546
- replayFailures: number;
1547
- unknownFailures: number;
1548
- };
1549
- };
1550
- streams: {
1551
- /**
1552
- * contains fields common to all types of receive stream
1553
- */
1554
- common: {
1555
- ssci: number;
1556
- rtpPackets: number;
1557
- rtpEndToEndLost: number;
1558
- concealedFrames: number;
1559
- maxConcealRunLength: number;
1560
- receivedFrameRate: number;
1561
- renderedFrameRate: number;
1562
- requestedFrameRate: number;
1563
- optimalFrameRate: number;
1564
- meanRtpJitter?: number;
1565
- maxRtpJitter?: number;
1566
- rtpJitter?: number;
1567
- receivedBitrate: number;
1568
- requestedBitrate: number;
1569
- optimalBitrate: number;
1570
- durationForSpeedChanged?: number;
1571
- endToEndTransmitDelay?: number;
1572
- csi: number[];
1573
- codec: string;
1574
- /**
1575
- * This object tracks SSRC and CSRC changes for an RTP stream, session, etc
1576
- */
1577
- sourceChanges?: {
1578
- /**
1579
- * The number of RTP SSRC changes seen. The first RTP packet seen should NOT be counted as a change.
1580
- */
1581
- ssrcChanges: number;
1582
- /**
1583
- * 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.
1584
- */
1585
- csrcChanges: number;
1586
- };
1587
- /**
1588
- * 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.
1589
- */
1590
- concealmentReasonByPacket?: {
1591
- /**
1592
- * concealment caused by network loss
1593
- */
1594
- byNetwork?: number;
1595
- /**
1596
- * concealment caused by buffer overflow. when total buffer length exceeds max delay threshold, buffer will overflow and data will be dropped.
1597
- */
1598
- byOverflow?: number;
1599
- /**
1600
- * concealment caused by buffer is reset.
1601
- */
1602
- byReset?: number;
1603
- /**
1604
- * concealment caused by late packet or frame. some packets or frames arrive late and the previous one has been played.
1605
- */
1606
- byLate?: number;
1607
- /**
1608
- * concealment caused by poor performance.
1609
- */
1610
- byPoorPerformance?: number;
1611
- /**
1612
- * only for audio. Number of concealment packets/frames sent to the audio decoder when frames are held back to increase re-order audio delay.
1613
- */
1614
- byIncreasedDelay?: number;
1615
- /**
1616
- * only for video. concealment caused by AV sync
1617
- */
1618
- byAVSync?: number;
1619
- /**
1620
- * 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.
1621
- */
1622
- byPrevFramePopped?: number;
1623
- /**
1624
- * concealment caused by the other unknown reasons
1625
- */
1626
- byOthers?: number;
1627
- };
1628
- /**
1629
- * 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.
1630
- */
1631
- concealmentReasonByFrame?: {
1632
- /**
1633
- * concealment caused by network loss
1634
- */
1635
- byNetwork?: number;
1636
- /**
1637
- * concealment caused by buffer overflow. when total buffer length exceeds max delay threshold, buffer will overflow and data will be dropped.
1638
- */
1639
- byOverflow?: number;
1640
- /**
1641
- * concealment caused by buffer is reset.
1642
- */
1643
- byReset?: number;
1644
- /**
1645
- * concealment caused by late packet or frame. some packets or frames arrive late and the previous one has been played.
1646
- */
1647
- byLate?: number;
1648
- /**
1649
- * concealment caused by poor performance.
1650
- */
1651
- byPoorPerformance?: number;
1652
- /**
1653
- * only for audio. Number of concealment packets/frames sent to the audio decoder when frames are held back to increase re-order audio delay.
1654
- */
1655
- byIncreasedDelay?: number;
1656
- /**
1657
- * only for video. concealment caused by AV sync
1658
- */
1659
- byAVSync?: number;
1660
- /**
1661
- * 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.
1662
- */
1663
- byPrevFramePopped?: number;
1664
- /**
1665
- * concealment caused by the other unknown reasons
1666
- */
1667
- byOthers?: number;
1668
- };
1669
- /**
1670
- * 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.
1671
- */
1672
- interruptCount?: {
1673
- /**
1674
- * interrupt count longer than 60 ms in one minute
1675
- */
1676
- longerThan60?: number;
1677
- /**
1678
- * interrupt count longer than 120 ms in one minute
1679
- */
1680
- longerThan120?: number;
1681
- };
1682
- /**
1683
- * This object tracks the delay associated with a jitter buffer
1684
- */
1685
- jitterBufferDelay?: {
1686
- /**
1687
- * The average delay (in milliseconds) used by the jitter buffer
1688
- */
1689
- meanDelay: number;
1690
- /**
1691
- * The maximum delay (in milliseconds) used by the jitter buffer
1692
- */
1693
- maxDelay: number;
1694
- /**
1695
- * The minimum delay (in milliseconds) used by the jitter buffer
1696
- */
1697
- minDelay: number;
1698
- };
1699
- /**
1700
- * This object tracks the the end to end delay(the delay between capture time of sender side and render time of receiver side)
1701
- */
1702
- endToEndDelay?: {
1703
- /**
1704
- * The average delay (in milliseconds) from end to end
1705
- */
1706
- meanDelay: number;
1707
- /**
1708
- * The maximum delay (in milliseconds) from end to end
1709
- */
1710
- maxDelay: number;
1711
- /**
1712
- * The minimum delay (in milliseconds) from end to end
1713
- */
1714
- minDelay: number;
1715
- };
1716
- /**
1717
- * Aggregated end to end delay representing the mean, max, min delay group by csi
1718
- */
1719
- endToEndDelayByCsi?: {
1720
- csi?: number;
1721
- delay?: unknown;
1722
- }[];
1723
- };
1724
- receivedFrameSize: number;
1725
- requestedFrameSize: number;
1726
- optimalFrameSize: number;
1727
- receivedHeight: number;
1728
- receivedWidth: number;
1729
- receivedKeyFrames: number;
1730
- requestedKeyFrames: number;
1731
- receivedKeyFramesSourceChange?: number;
1732
- receivedKeyFramesConfigurationChange?: number;
1733
- receivedKeyFramesForRequest?: number;
1734
- receivedKeyFramesUnknown?: number;
1735
- isActiveSpeaker?: boolean;
1736
- h264CodecProfile: "BP" | "CHP";
1737
- isHardwareDecoded?: boolean;
1738
- /**
1739
- * receive video pipeline performance metric
1740
- */
1741
- decoderProcessInfo?: {
1742
- meanDecoderProcessMillis: number;
1743
- maxDecoderProcessMillis: number;
1744
- };
1745
- receivedBuffer?: number;
1746
- receivedFrameRateNormalShare?: number;
1747
- receivedFrameRateHFPSShare?: number;
1748
- renderWindowResolution?: number;
1749
- scaledResolution?: number;
1750
- }[];
1751
- }[];
1752
- gamestateTransmit?: {
1753
- /**
1754
- * contains the transmit related fields common between all session types for each interval
1755
- */
1756
- common: {
1757
- /**
1758
- * contains the fields common to both transmit and receive sessions for each interval
1759
- */
1760
- common: {
1761
- isMain: boolean;
1762
- mariFecEnabled: boolean;
1763
- mariRtxEnabled?: boolean;
1764
- mariQosEnabled: boolean;
1765
- mariLiteEnabled?: boolean;
1766
- multistreamEnabled: boolean;
1767
- isMediaBypassEdge?: boolean;
1768
- direction: "sendrecv" | "sendonly" | "recvonly" | "inactive";
1769
- localPort?: number;
1770
- peerReflexivePort?: number;
1771
- remotePort?: number;
1772
- };
1773
- fecPackets: number;
1774
- fecBitrate: number;
1775
- rtxPackets?: number;
1776
- rtxBitrate?: number;
1777
- rtpPackets: number;
1778
- rtpBitrate: number;
1779
- rtcpPackets: number;
1780
- rtcpBitrate: number;
1781
- /**
1782
- * RTCP Information for a given Interval
1783
- */
1784
- txRtcpInfo?: {
1785
- rtcpSrPackets: number;
1786
- rtcpRrPackets: number;
1787
- rtcpReportBlocks: number;
1788
- rtcpSdesPackets: number;
1789
- rtcpByePackets: number;
1790
- rtcpAppPackets: number;
1791
- rtcpRtpFbPacket: number;
1792
- rtcpPsFbPackets: number;
1793
- rtcpPsFbMariPackets: number;
1794
- rtcpPsFbMultistreamPackets: number;
1795
- rtcpXrPackets: number;
1796
- };
1797
- stunPackets: number;
1798
- stunBitrate: number;
1799
- dtlsPackets: number;
1800
- dtlsBitrate: number;
1801
- transportType: "UDP" | "TCP" | "xTLS" | "TLS";
1802
- maxBitrate: number;
1803
- availableBitrate: number;
1804
- queueDelay: number;
1805
- meanRoundTripTime?: number;
1806
- maxRoundTripTime?: number;
1807
- roundTripTime: number;
1808
- remoteReceiveRate?: number;
1809
- maxRemoteLossRate?: number;
1810
- remoteLossRate?: number;
1811
- meanRemoteLossRate?: number;
1812
- maxRemoteJitter?: number;
1813
- remoteJitter?: number;
1814
- meanRemoteJitter?: number;
1815
- traversalMinDelayMs?: number;
1816
- traversalMaxDelayMs?: number;
1817
- traversalMeanDelayMs?: number;
1818
- rtpInputFifoDelayMs?: number;
1819
- rtpInputFifoMaxDelayMs?: number;
1820
- rtpInputFifoMinDelayMs?: number;
1821
- rtpInputFifoMeanDelayMs?: number;
1822
- };
1823
- streams: {
1824
- /**
1825
- * contains fields common to all transmit streams types
1826
- */
1827
- common: {
1828
- ssci: number;
1829
- duplicateSsci?: number;
1830
- rtpPackets: number;
1831
- transmittedFrameRate: number;
1832
- requestedFrames: number;
1833
- transmittedBitrate: number;
1834
- requestedBitrate: number;
1835
- captureOffset?: number;
1836
- codec: string;
1837
- csi?: number[];
1838
- /**
1839
- * This object tracks SSRC and CSRC changes for an RTP stream, session, etc
1840
- */
1841
- sourceChanges?: {
1842
- /**
1843
- * The number of RTP SSRC changes seen. The first RTP packet seen should NOT be counted as a change.
1844
- */
1845
- ssrcChanges: number;
1846
- /**
1847
- * 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.
1848
- */
1849
- csrcChanges: number;
1850
- };
1851
- };
1852
- gamestateObjects?: {
1853
- objectId: number;
1854
- numberOfUpdates: number;
1855
- tag: unknown;
1856
- isActive: boolean;
1857
- }[];
1858
- }[];
1859
- }[];
1860
- gamestateReceive?: {
1861
- /**
1862
- * contains the receive related fields between all sessions types for each interval.
1863
- */
1864
- common: {
1865
- /**
1866
- * contains the fields common to both transmit and receive sessions for each interval
1867
- */
1868
- common: {
1869
- isMain: boolean;
1870
- mariFecEnabled: boolean;
1871
- mariRtxEnabled?: boolean;
1872
- mariQosEnabled: boolean;
1873
- mariLiteEnabled?: boolean;
1874
- multistreamEnabled: boolean;
1875
- isMediaBypassEdge?: boolean;
1876
- direction: "sendrecv" | "sendonly" | "recvonly" | "inactive";
1877
- localPort?: number;
1878
- peerReflexivePort?: number;
1879
- remotePort?: number;
1880
- };
1881
- fecPackets: number;
1882
- fecBitrate: number;
1883
- rtxPackets?: number;
1884
- rtxBitrate?: number;
1885
- meanRtxDelay?: number;
1886
- maxRtxDelay?: number;
1887
- rtpPackets: number;
1888
- rtpBitrate: number;
1889
- rtpHopByHopLost: number;
1890
- mediaHopByHopLost: number;
1891
- rtpRecovered: number;
1892
- rtxRecovered?: number;
1893
- rtcpPackets: number;
1894
- rtcpBitrate: number;
1895
- /**
1896
- * RTCP Information for a given Interval
1897
- */
1898
- rxRtcpInfo?: {
1899
- rtcpSrPackets: number;
1900
- rtcpRrPackets: number;
1901
- rtcpReportBlocks: number;
1902
- rtcpSdesPackets: number;
1903
- rtcpByePackets: number;
1904
- rtcpAppPackets: number;
1905
- rtcpRtpFbPacket: number;
1906
- rtcpPsFbPackets: number;
1907
- rtcpPsFbMariPackets: number;
1908
- rtcpPsFbMultistreamPackets: number;
1909
- rtcpXrPackets: number;
1910
- };
1911
- stunPackets: number;
1912
- stunBitrate: number;
1913
- dtlsPackets: number;
1914
- dtlsBitrate: number;
1915
- transportType: "UDP" | "TCP" | "xTLS" | "TLS";
1916
- maxBitrate: number;
1917
- srtpUnprotectErrors: number;
1918
- /**
1919
- * SRTP/SRTCP unprotect error details
1920
- */
1921
- srtpUnprotectErrorDetails?: {
1922
- authFailures: number;
1923
- cipherFailures: number;
1924
- replayFailures: number;
1925
- unknownFailures: number;
1926
- };
1927
- srtcpUnprotectErrors: number;
1928
- /**
1929
- * SRTP/SRTCP unprotect error details
1930
- */
1931
- srtcpUnprotectErrorDetails?: {
1932
- authFailures: number;
1933
- cipherFailures: number;
1934
- replayFailures: number;
1935
- unknownFailures: number;
1936
- };
1937
- };
1938
- streams: {
1939
- /**
1940
- * contains fields common to all types of receive stream
1941
- */
1942
- common: {
1943
- ssci: number;
1944
- rtpPackets: number;
1945
- rtpEndToEndLost: number;
1946
- concealedFrames: number;
1947
- maxConcealRunLength: number;
1948
- receivedFrameRate: number;
1949
- renderedFrameRate: number;
1950
- requestedFrameRate: number;
1951
- optimalFrameRate: number;
1952
- meanRtpJitter?: number;
1953
- maxRtpJitter?: number;
1954
- rtpJitter?: number;
1955
- receivedBitrate: number;
1956
- requestedBitrate: number;
1957
- optimalBitrate: number;
1958
- durationForSpeedChanged?: number;
1959
- endToEndTransmitDelay?: number;
1960
- csi: number[];
1961
- codec: string;
1962
- /**
1963
- * This object tracks SSRC and CSRC changes for an RTP stream, session, etc
1964
- */
1965
- sourceChanges?: {
1966
- /**
1967
- * The number of RTP SSRC changes seen. The first RTP packet seen should NOT be counted as a change.
1968
- */
1969
- ssrcChanges: number;
1970
- /**
1971
- * 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.
1972
- */
1973
- csrcChanges: number;
1974
- };
1975
- /**
1976
- * 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.
1977
- */
1978
- concealmentReasonByPacket?: {
1979
- /**
1980
- * concealment caused by network loss
1981
- */
1982
- byNetwork?: number;
1983
- /**
1984
- * concealment caused by buffer overflow. when total buffer length exceeds max delay threshold, buffer will overflow and data will be dropped.
1985
- */
1986
- byOverflow?: number;
1987
- /**
1988
- * concealment caused by buffer is reset.
1989
- */
1990
- byReset?: number;
1991
- /**
1992
- * concealment caused by late packet or frame. some packets or frames arrive late and the previous one has been played.
1993
- */
1994
- byLate?: number;
1995
- /**
1996
- * concealment caused by poor performance.
1997
- */
1998
- byPoorPerformance?: number;
1999
- /**
2000
- * only for audio. Number of concealment packets/frames sent to the audio decoder when frames are held back to increase re-order audio delay.
2001
- */
2002
- byIncreasedDelay?: number;
2003
- /**
2004
- * only for video. concealment caused by AV sync
2005
- */
2006
- byAVSync?: number;
2007
- /**
2008
- * 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.
2009
- */
2010
- byPrevFramePopped?: number;
2011
- /**
2012
- * concealment caused by the other unknown reasons
2013
- */
2014
- byOthers?: number;
2015
- };
2016
- /**
2017
- * 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.
2018
- */
2019
- concealmentReasonByFrame?: {
2020
- /**
2021
- * concealment caused by network loss
2022
- */
2023
- byNetwork?: number;
2024
- /**
2025
- * concealment caused by buffer overflow. when total buffer length exceeds max delay threshold, buffer will overflow and data will be dropped.
2026
- */
2027
- byOverflow?: number;
2028
- /**
2029
- * concealment caused by buffer is reset.
2030
- */
2031
- byReset?: number;
2032
- /**
2033
- * concealment caused by late packet or frame. some packets or frames arrive late and the previous one has been played.
2034
- */
2035
- byLate?: number;
2036
- /**
2037
- * concealment caused by poor performance.
2038
- */
2039
- byPoorPerformance?: number;
2040
- /**
2041
- * only for audio. Number of concealment packets/frames sent to the audio decoder when frames are held back to increase re-order audio delay.
2042
- */
2043
- byIncreasedDelay?: number;
2044
- /**
2045
- * only for video. concealment caused by AV sync
2046
- */
2047
- byAVSync?: number;
2048
- /**
2049
- * 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.
2050
- */
2051
- byPrevFramePopped?: number;
2052
- /**
2053
- * concealment caused by the other unknown reasons
2054
- */
2055
- byOthers?: number;
2056
- };
2057
- /**
2058
- * 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.
2059
- */
2060
- interruptCount?: {
2061
- /**
2062
- * interrupt count longer than 60 ms in one minute
2063
- */
2064
- longerThan60?: number;
2065
- /**
2066
- * interrupt count longer than 120 ms in one minute
2067
- */
2068
- longerThan120?: number;
2069
- };
2070
- /**
2071
- * This object tracks the delay associated with a jitter buffer
2072
- */
2073
- jitterBufferDelay?: {
2074
- /**
2075
- * The average delay (in milliseconds) used by the jitter buffer
2076
- */
2077
- meanDelay: number;
2078
- /**
2079
- * The maximum delay (in milliseconds) used by the jitter buffer
2080
- */
2081
- maxDelay: number;
2082
- /**
2083
- * The minimum delay (in milliseconds) used by the jitter buffer
2084
- */
2085
- minDelay: number;
2086
- };
2087
- /**
2088
- * This object tracks the the end to end delay(the delay between capture time of sender side and render time of receiver side)
2089
- */
2090
- endToEndDelay?: {
2091
- /**
2092
- * The average delay (in milliseconds) from end to end
2093
- */
2094
- meanDelay: number;
2095
- /**
2096
- * The maximum delay (in milliseconds) from end to end
2097
- */
2098
- maxDelay: number;
2099
- /**
2100
- * The minimum delay (in milliseconds) from end to end
2101
- */
2102
- minDelay: number;
2103
- };
2104
- /**
2105
- * Aggregated end to end delay representing the mean, max, min delay group by csi
2106
- */
2107
- endToEndDelayByCsi?: {
2108
- csi?: number;
2109
- delay?: unknown;
2110
- }[];
2111
- };
2112
- gamestateObjects?: {
2113
- objectId: number;
2114
- numberOfUpdates: number;
2115
- tag: unknown;
2116
- isActive: boolean;
2117
- }[];
2118
- }[];
2119
- }[];
2120
- }[];
2121
- }