@webex/internal-plugin-metrics 3.0.0-beta.17 → 3.0.0-beta.171

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 (67) hide show
  1. package/dist/call-diagnostic/call-diagnostic-metrics-batcher.js +132 -0
  2. package/dist/call-diagnostic/call-diagnostic-metrics-batcher.js.map +1 -0
  3. package/dist/call-diagnostic/call-diagnostic-metrics-latencies.js +339 -0
  4. package/dist/call-diagnostic/call-diagnostic-metrics-latencies.js.map +1 -0
  5. package/dist/call-diagnostic/call-diagnostic-metrics.js +511 -0
  6. package/dist/call-diagnostic/call-diagnostic-metrics.js.map +1 -0
  7. package/dist/call-diagnostic/call-diagnostic-metrics.util.js +106 -0
  8. package/dist/call-diagnostic/call-diagnostic-metrics.util.js.map +1 -0
  9. package/dist/call-diagnostic/config.js +461 -0
  10. package/dist/call-diagnostic/config.js.map +1 -0
  11. package/dist/call-diagnostic/generated-types-temp/ClientEvent.js +7 -0
  12. package/dist/call-diagnostic/generated-types-temp/ClientEvent.js.map +1 -0
  13. package/dist/call-diagnostic/generated-types-temp/Event.js +7 -0
  14. package/dist/call-diagnostic/generated-types-temp/Event.js.map +1 -0
  15. package/dist/call-diagnostic/generated-types-temp/MediaQualityEvent.js +7 -0
  16. package/dist/call-diagnostic/generated-types-temp/MediaQualityEvent.js.map +1 -0
  17. package/dist/config.js +20 -1
  18. package/dist/config.js.map +1 -1
  19. package/dist/index.js +25 -1
  20. package/dist/index.js.map +1 -1
  21. package/dist/metrics.js +30 -30
  22. package/dist/metrics.js.map +1 -1
  23. package/dist/metrics.types.js +7 -0
  24. package/dist/metrics.types.js.map +1 -0
  25. package/dist/new-metrics.js +171 -0
  26. package/dist/new-metrics.js.map +1 -0
  27. package/dist/types/batcher.d.ts +2 -0
  28. package/dist/types/call-diagnostic/call-diagnostic-metrics-batcher.d.ts +2 -0
  29. package/dist/types/call-diagnostic/call-diagnostic-metrics-latencies.d.ts +154 -0
  30. package/dist/types/call-diagnostic/call-diagnostic-metrics.d.ts +324 -0
  31. package/dist/types/call-diagnostic/call-diagnostic-metrics.util.d.ts +31 -0
  32. package/dist/types/call-diagnostic/config.d.ts +57 -0
  33. package/dist/types/call-diagnostic/generated-types-temp/ClientEvent.d.ts +1112 -0
  34. package/dist/types/call-diagnostic/generated-types-temp/Event.d.ts +4851 -0
  35. package/dist/types/call-diagnostic/generated-types-temp/MediaQualityEvent.d.ts +2121 -0
  36. package/dist/types/client-metrics-batcher.d.ts +2 -0
  37. package/dist/types/config.d.ts +35 -0
  38. package/dist/types/index.d.ts +11 -0
  39. package/dist/types/metrics.d.ts +3 -0
  40. package/dist/types/metrics.types.d.ts +87 -0
  41. package/dist/types/new-metrics.d.ts +83 -0
  42. package/package.json +12 -8
  43. package/src/call-diagnostic/call-diagnostic-metrics-batcher.ts +146 -0
  44. package/src/call-diagnostic/call-diagnostic-metrics-latencies.ts +308 -0
  45. package/src/call-diagnostic/call-diagnostic-metrics.ts +528 -0
  46. package/src/call-diagnostic/call-diagnostic-metrics.util.ts +102 -0
  47. package/src/call-diagnostic/config.ts +455 -0
  48. package/src/call-diagnostic/generated-types-temp/ClientEvent.ts +2357 -0
  49. package/src/call-diagnostic/generated-types-temp/Event.ts +7669 -0
  50. package/src/call-diagnostic/generated-types-temp/MediaQualityEvent.ts +2321 -0
  51. package/src/config.js +19 -0
  52. package/src/index.ts +39 -0
  53. package/src/metrics.js +25 -27
  54. package/src/metrics.types.ts +132 -0
  55. package/src/new-metrics.ts +167 -0
  56. package/test/unit/spec/call-diagnostic/call-diagnostic-metrics-batcher.ts +235 -0
  57. package/test/unit/spec/call-diagnostic/call-diagnostic-metrics-latencies.ts +199 -0
  58. package/test/unit/spec/call-diagnostic/call-diagnostic-metrics.ts +722 -0
  59. package/test/unit/spec/call-diagnostic/call-diagnostic-metrics.util.ts +76 -0
  60. package/test/unit/spec/metrics.js +65 -97
  61. package/test/unit/spec/new-metrics.ts +88 -0
  62. package/tsconfig.json +6 -0
  63. package/dist/call-diagnostic-events-batcher.js +0 -60
  64. package/dist/call-diagnostic-events-batcher.js.map +0 -1
  65. package/src/call-diagnostic-events-batcher.js +0 -62
  66. package/src/index.js +0 -17
  67. package/test/unit/spec/call-diagnostic-events-batcher.js +0 -195
@@ -0,0 +1,455 @@
1
+ /* eslint-disable import/prefer-default-export */
2
+ // Most client error codes are mapped based on
3
+ // https://sqbu-github.cisco.com/WebExSquared/event-dictionary/wiki/Error-codes-for-metric-events
4
+
5
+ import {ClientEventError} from '../metrics.types';
6
+
7
+ export const NEW_LOCUS_ERROR_CLIENT_CODE = 4008;
8
+ export const MEETING_INFO_LOOKUP_ERROR_CLIENT_CODE = 4100;
9
+ export const ICE_FAILURE_CLIENT_CODE = 2004;
10
+
11
+ const ERROR_DESCRIPTIONS = {
12
+ UNKNOWN_CALL_FAILURE: 'UnknownCallFailure',
13
+ LOCUS_RATE_LIMITED_INCOMING: 'LocusRateLimitedIncoming',
14
+ LOCUS_RATE_LIMITED_OUTGOING: 'LocusRateLimitedOutgoing',
15
+ LOCUS_UNAVAILABLE: 'LocusUnavailable',
16
+ LOCUS_CONFLICT: 'LocusConflict',
17
+ TIMEOUT: 'Timeout',
18
+ LOCUS_INVALID_SEQUENCE_HASH: 'LocusInvalidSequenceHash',
19
+ UPDATE_MEDIA_FAILED: 'UpdateMediaFailed',
20
+ FAILED_TO_CONNECT_MEDIA: 'FailedToConnectMedia',
21
+ MEDIA_ENGINE_LOST: 'MediaEngineLost',
22
+ MEDIA_CONNECTION_LOST: 'MediaConnectionLost',
23
+ ICE_FAILURE: 'IceFailure',
24
+ MEDIA_ENGINE_HANG: 'MediaEngineHang',
25
+ ICE_SERVER_REJECTED: 'IceServerRejected',
26
+ CALL_FULL: 'CallFull',
27
+ ROOM_TOO_LARGE: 'RoomTooLarge',
28
+ GUEST_ALREADY_ADDED: 'GuestAlreadyAdded',
29
+ LOCUS_USER_NOT_AUTHORISED: 'LocusUserNotAuthorised',
30
+ CLOUDBERRY_UNAVAILABLE: 'CloudberryUnavailable',
31
+ ROOM_TOO_LARGE_FREE_ACCOUNT: 'RoomTooLarge_FreeAccount',
32
+ MEETING_INACTIVE: 'MeetingInactive',
33
+ MEETING_LOCKED: 'MeetingLocked',
34
+ MEETING_TERMINATING: 'MeetingTerminating',
35
+ MODERATOR_PIN_OR_GUEST_REQUIRED: 'Moderator_Pin_Or_Guest_Required',
36
+ MODERATOR_PIN_OR_GUEST_PIN_REQUIRED: 'Moderator_Pin_Or_Guest_PIN_Required',
37
+ MODERATOR_REQUIRED: 'Moderator_Required',
38
+ USER_NOT_MEMBER_OF_ROOM: 'UserNotMemberOfRoom',
39
+ NEW_LOCUS_ERROR: 'NewLocusError',
40
+ NETWORK_UNAVAILABLE: 'NetworkUnavailable',
41
+ MEETING_UNAVAILABLE: 'MeetingUnavailable',
42
+ MEETING_ID_INVALID: 'MeetingIDInvalid',
43
+ MEETING_SITE_INVALID: 'MeetingSiteInvalid',
44
+ LOCUS_INVALID_JOINTIME: 'LocusInvalidJoinTime',
45
+ LOBBY_EXPIRED: 'LobbyExpired',
46
+ MEDIA_CONNECTION_LOST_PAIRED: 'MediaConnectionLostPaired',
47
+ PHONE_NUMBER_NOT_A_NUMBER: 'PhoneNumberNotANumber',
48
+ PHONE_NUMBER_TOO_LONG: 'PhoneNumberTooLong',
49
+ INVALID_DIALABLE_KEY: 'InvalidDialableKey',
50
+ ONE_ON_ONE_TO_SELF_NOT_ALLOWED: 'OneOnOneToSelfNotAllowed',
51
+ REMOVED_PARTICIPANT: 'RemovedParticipant',
52
+ MEETING_LINK_NOT_FOUND: 'MeetingLinkNotFound',
53
+ PHONE_NUMBER_TOO_SHORT_AFTER_IDD: 'PhoneNumberTooShortAfterIdd',
54
+ INVALID_INVITEE_ADDRESS: 'InvalidInviteeAddress',
55
+ PMR_USER_ACCOUNT_LOCKED_OUT: 'PMRUserAccountLockedOut',
56
+ GUEST_FORBIDDEN: 'GuestForbidden',
57
+ PMR_ACCOUNT_SUSPENDED: 'PMRAccountSuspended',
58
+ EMPTY_PHONE_NUMBER_OR_COUNTRY_CODE: 'EmptyPhoneNumberOrCountryCode',
59
+ CONVERSATION_NOT_FOUND: 'ConversationNotFound',
60
+ SIP_CALLEE_BUSY: 'SIPCalleeBusy',
61
+ SIP_CALLEE_NOT_FOUND: 'SIPCalleeNotFound',
62
+ START_RECORDING_FAILED: 'StartRecordingFailed',
63
+ RECORDING_IN_PROGRESS_FAILED: 'RecordingInProgressFailed',
64
+ MEETING_INFO_LOOKUP_ERROR: 'MeetingInfoLookupError',
65
+ CALL_FULL_ADD_GUEST: 'CallFullAddGuest',
66
+ };
67
+
68
+ export const SERVICE_ERROR_CODES_TO_CLIENT_ERROR_CODES_MAP = {
69
+ // ---- Webex API ----
70
+ // Site not support the URL's domain
71
+ 58400: 4100,
72
+ 99002: 4100,
73
+ // Cannot find the data
74
+ 99009: 4100,
75
+ // CMR Meeting Not Supported (meeting exists, but not CMR meeting)
76
+ 403040: 4100,
77
+ // Requires Moderator Pin or Guest Pin
78
+ 403041: 4005,
79
+ // Meeting is not allow to access since password or hostKey error
80
+ 403038: 4005,
81
+ // Meeting is not allow to access since require password or hostKey
82
+ 403036: 4005,
83
+ // Invalid panelist Pin
84
+ 403043: 4100,
85
+ // Device not registered in org
86
+ 403048: 4100,
87
+ // Not allowed to join external meetings
88
+ 403049: 4100,
89
+ 403100: 4100,
90
+ // Enforce sign in: need login before access when policy enforce sign in
91
+ 403101: 4100,
92
+ // Enforce sign in: sign in with your email address that is approved by your organization
93
+ 403102: 4100,
94
+ // Join internal Meeting: need login before access when policy enforce sign in
95
+ 403103: 4100,
96
+ // Join internal Meeting: The host's organization policy doesn't allow your account to join this meeting. Try switching to another account
97
+ 403104: 4100,
98
+ 404001: 4100,
99
+ // Site data not found
100
+ 404006: 4100,
101
+ // Too many requests access
102
+ 429005: 4100,
103
+
104
+ // ---- Locus ------
105
+ // FREE_USER_MAX_PARTICIPANTS_EXCEEDED
106
+ 2403001: 3007,
107
+ // PAID_USER_MAX_PARTICIPANTS_EXCEEDED
108
+ 2403002: 3002,
109
+ // SERVICE_MAX_PARTICIPANTS_EXCEEDED
110
+ 2403003: 3002,
111
+ // LOCUS_INACTIVE
112
+ 2403004: 4001,
113
+ // LOCUS_FREE_USER_MAX_PARTICIPANTS_JOINED_EXCEEDED
114
+ 2403018: 3001,
115
+ // LOCUS_PAID_USER_MAX_PARTICIPANTS_JOINED_EXCEEDED
116
+ 2403019: 3001,
117
+ // LOCUS_LOCKED
118
+ 2423003: 4002,
119
+ // LOCUS_TERMINATING
120
+ 2423004: 4003,
121
+ // LOCUS_REQUIRES_MODERATOR_PIN_OR_GUEST
122
+ 2423005: 4005,
123
+ // LOCUS_REQUIRES_MODERATOR_ROLE
124
+ 2423007: 4006,
125
+ // LOCUS_JOIN_RESTRICTED_USER_NOT_IN_ROOM
126
+ 2403010: 4007,
127
+ // LOCUS_MEETING_NOT_FOUND
128
+ 2403014: 4011,
129
+ // LOCUS_NOT_WEBEX_SITE
130
+ 2403015: 4012,
131
+ // LOCUS_INVALID_JOIN_TIME
132
+ 2423010: 4013,
133
+ // LOCUS_PHONE_NUMBER_NOT_A_NUMBER
134
+ 2400008: 4016,
135
+ // LOCUS_PHONE_NUMBER_TOO_LONG
136
+ 2400011: 4017,
137
+ // LOCUS_INVALID_DIALABLE_KEY
138
+ 2400012: 4018,
139
+ // LOCUS_ONE_ON_ONE_TO_SELF_NOT_ALLOWED
140
+ 2403007: 4019,
141
+ // LOCUS_REMOVED_PARTICIPANT
142
+ 2401002: 4020,
143
+ // LOCUS_MEETING_LINK_NOT_FOUND
144
+ 2404002: 4021,
145
+ // LOCUS_PHONE_NUMBER_TOO_SHORT_AFTER_IDD
146
+ 2400009: 4022,
147
+ // LOCUS_INVALID_INVITEE_ADDRESS
148
+ 2400025: 4023,
149
+ // LOCUS_PMR_USER_ACCOUNT_LOCKEDOUT
150
+ 2423009: 4024,
151
+ // LOCUS_RESOURCE_GUEST_FORBIDDEN
152
+ 2403022: 4025,
153
+ // LOCUS_PMR_SUSPENDED
154
+ 2423008: 4026,
155
+ // LOCUS_EMPTY_PHONE_NUMBER_OR_COUNTRY_CODE
156
+ 2400006: 4027,
157
+ // LOCUS_INVALID_SINCE_OR_SEQUENCE_HASH_IN_REQUEST
158
+ 2400014: 1006,
159
+ // LOCUS_CONVERSATION_NOT_FOUND
160
+ 2404001: 4028,
161
+ // LOCUS_RECORDING_CONTROL_NOT_SUPPORTED
162
+ 2403025: 4029,
163
+ // LOCUS_RECORDING_NOT_STARTED
164
+ 2405001: 4029,
165
+ // LOCUS_RECORDING_NOT_ENABLED
166
+ 2409005: 4029,
167
+ };
168
+
169
+ export const CLIENT_ERROR_CODE_TO_ERROR_PAYLOAD: Record<number, Partial<ClientEventError>> = {
170
+ 1000: {
171
+ errorDescription: ERROR_DESCRIPTIONS.UNKNOWN_CALL_FAILURE,
172
+ category: 'signaling',
173
+ fatal: true,
174
+ name: 'locus.response',
175
+ },
176
+ 1001: {
177
+ errorDescription: ERROR_DESCRIPTIONS.LOCUS_RATE_LIMITED_INCOMING,
178
+ category: 'signaling',
179
+ fatal: true,
180
+ name: 'locus.response',
181
+ },
182
+ 1002: {
183
+ errorDescription: ERROR_DESCRIPTIONS.LOCUS_RATE_LIMITED_OUTGOING,
184
+ category: 'signaling',
185
+ fatal: true,
186
+ name: 'locus.response',
187
+ },
188
+ 1003: {
189
+ errorDescription: ERROR_DESCRIPTIONS.LOCUS_UNAVAILABLE,
190
+ category: 'signaling',
191
+ fatal: true,
192
+ name: 'locus.response',
193
+ },
194
+ 1004: {
195
+ errorDescription: ERROR_DESCRIPTIONS.LOCUS_CONFLICT,
196
+ category: 'signaling',
197
+ fatal: true,
198
+ name: 'locus.response',
199
+ },
200
+ 1005: {
201
+ errorDescription: ERROR_DESCRIPTIONS.TIMEOUT,
202
+ category: 'signaling',
203
+ fatal: true,
204
+ name: 'locus.response',
205
+ },
206
+ 1006: {
207
+ errorDescription: ERROR_DESCRIPTIONS.LOCUS_INVALID_SEQUENCE_HASH,
208
+ category: 'signaling',
209
+ fatal: true,
210
+ },
211
+ 1007: {
212
+ errorDescription: ERROR_DESCRIPTIONS.UPDATE_MEDIA_FAILED,
213
+ category: 'signaling',
214
+ fatal: true,
215
+ },
216
+ 2001: {
217
+ errorDescription: ERROR_DESCRIPTIONS.FAILED_TO_CONNECT_MEDIA,
218
+ category: 'signaling',
219
+ fatal: true,
220
+ },
221
+ 2002: {
222
+ errorDescription: ERROR_DESCRIPTIONS.MEDIA_ENGINE_LOST,
223
+ category: 'signaling',
224
+ fatal: true,
225
+ },
226
+ 2003: {
227
+ errorDescription: ERROR_DESCRIPTIONS.MEDIA_CONNECTION_LOST,
228
+ category: 'signaling',
229
+ fatal: true,
230
+ },
231
+ 2004: {
232
+ errorDescription: ERROR_DESCRIPTIONS.ICE_FAILURE,
233
+ category: 'signaling',
234
+ fatal: true,
235
+ },
236
+ 2005: {
237
+ errorDescription: ERROR_DESCRIPTIONS.MEDIA_ENGINE_HANG,
238
+ category: 'signaling',
239
+ fatal: true,
240
+ },
241
+ 2006: {
242
+ errorDescription: ERROR_DESCRIPTIONS.ICE_SERVER_REJECTED,
243
+ category: 'signaling',
244
+ fatal: true,
245
+ },
246
+ 3001: {
247
+ errorDescription: ERROR_DESCRIPTIONS.CALL_FULL,
248
+ category: 'expected',
249
+ fatal: true,
250
+ },
251
+ 3002: {
252
+ errorDescription: ERROR_DESCRIPTIONS.ROOM_TOO_LARGE,
253
+ category: 'expected',
254
+ fatal: true,
255
+ },
256
+ 3004: {
257
+ errorDescription: ERROR_DESCRIPTIONS.GUEST_ALREADY_ADDED,
258
+ category: 'expected',
259
+ fatal: false,
260
+ },
261
+ 3005: {
262
+ errorDescription: ERROR_DESCRIPTIONS.LOCUS_USER_NOT_AUTHORISED,
263
+ category: 'expected',
264
+ fatal: true,
265
+ },
266
+ 3006: {
267
+ errorDescription: ERROR_DESCRIPTIONS.CLOUDBERRY_UNAVAILABLE,
268
+ category: 'expected',
269
+ fatal: true,
270
+ },
271
+ 3007: {
272
+ errorDescription: ERROR_DESCRIPTIONS.ROOM_TOO_LARGE_FREE_ACCOUNT,
273
+ category: 'expected',
274
+ fatal: true,
275
+ },
276
+ 4001: {
277
+ errorDescription: ERROR_DESCRIPTIONS.MEETING_INACTIVE,
278
+ category: 'expected',
279
+ fatal: true,
280
+ },
281
+ 4002: {
282
+ errorDescription: ERROR_DESCRIPTIONS.MEETING_LOCKED,
283
+ category: 'expected',
284
+ fatal: true,
285
+ name: 'locus.response',
286
+ },
287
+ 4003: {
288
+ errorDescription: ERROR_DESCRIPTIONS.MEETING_TERMINATING,
289
+ category: 'expected',
290
+ fatal: true,
291
+ name: 'locus.leave',
292
+ },
293
+ 4004: {
294
+ errorDescription: ERROR_DESCRIPTIONS.MODERATOR_PIN_OR_GUEST_REQUIRED,
295
+ category: 'expected',
296
+ fatal: false,
297
+ },
298
+ 4005: {
299
+ errorDescription: ERROR_DESCRIPTIONS.MODERATOR_PIN_OR_GUEST_PIN_REQUIRED,
300
+ category: 'expected',
301
+ fatal: false,
302
+ },
303
+ 4006: {
304
+ errorDescription: ERROR_DESCRIPTIONS.MODERATOR_REQUIRED,
305
+ category: 'expected',
306
+ fatal: false,
307
+ },
308
+ 4007: {
309
+ errorDescription: ERROR_DESCRIPTIONS.USER_NOT_MEMBER_OF_ROOM,
310
+ category: 'expected',
311
+ fatal: true,
312
+ },
313
+ 4008: {
314
+ errorDescription: ERROR_DESCRIPTIONS.NEW_LOCUS_ERROR,
315
+ category: 'signaling',
316
+ fatal: true,
317
+ },
318
+ 4009: {
319
+ errorDescription: ERROR_DESCRIPTIONS.NETWORK_UNAVAILABLE,
320
+ category: 'expected',
321
+ fatal: true,
322
+ },
323
+ 4010: {
324
+ errorDescription: ERROR_DESCRIPTIONS.MEETING_UNAVAILABLE,
325
+ category: 'expected',
326
+ fatal: true,
327
+ },
328
+ 4011: {
329
+ errorDescription: ERROR_DESCRIPTIONS.MEETING_ID_INVALID,
330
+ category: 'expected',
331
+ fatal: true,
332
+ },
333
+ 4012: {
334
+ errorDescription: ERROR_DESCRIPTIONS.MEETING_SITE_INVALID,
335
+ category: 'expected',
336
+ fatal: true,
337
+ },
338
+ 4013: {
339
+ errorDescription: ERROR_DESCRIPTIONS.LOCUS_INVALID_JOINTIME,
340
+ category: 'expected',
341
+ fatal: true,
342
+ },
343
+ 4014: {
344
+ errorDescription: ERROR_DESCRIPTIONS.LOBBY_EXPIRED,
345
+ category: 'expected',
346
+ fatal: true,
347
+ },
348
+ 4015: {
349
+ errorDescription: ERROR_DESCRIPTIONS.MEDIA_CONNECTION_LOST_PAIRED,
350
+ category: 'expected',
351
+ fatal: false,
352
+ },
353
+ 4016: {
354
+ errorDescription: ERROR_DESCRIPTIONS.PHONE_NUMBER_NOT_A_NUMBER,
355
+ category: 'expected',
356
+ fatal: true,
357
+ name: 'locus.response',
358
+ },
359
+ 4017: {
360
+ errorDescription: ERROR_DESCRIPTIONS.PHONE_NUMBER_TOO_LONG,
361
+ category: 'expected',
362
+ fatal: true,
363
+ name: 'locus.response',
364
+ },
365
+ 4018: {
366
+ errorDescription: ERROR_DESCRIPTIONS.INVALID_DIALABLE_KEY,
367
+ category: 'expected',
368
+ fatal: true,
369
+ name: 'locus.response',
370
+ },
371
+ 4019: {
372
+ errorDescription: ERROR_DESCRIPTIONS.ONE_ON_ONE_TO_SELF_NOT_ALLOWED,
373
+ category: 'expected',
374
+ fatal: true,
375
+ },
376
+ 4020: {
377
+ errorDescription: ERROR_DESCRIPTIONS.REMOVED_PARTICIPANT,
378
+ category: 'expected',
379
+ fatal: true,
380
+ },
381
+ 4021: {
382
+ errorDescription: ERROR_DESCRIPTIONS.MEETING_LINK_NOT_FOUND,
383
+ category: 'expected',
384
+ fatal: true,
385
+ },
386
+ 4022: {
387
+ errorDescription: ERROR_DESCRIPTIONS.PHONE_NUMBER_TOO_SHORT_AFTER_IDD,
388
+ category: 'expected',
389
+ fatal: true,
390
+ },
391
+ 4023: {
392
+ errorDescription: ERROR_DESCRIPTIONS.INVALID_INVITEE_ADDRESS,
393
+ category: 'expected',
394
+ fatal: true,
395
+ },
396
+ 4024: {
397
+ errorDescription: ERROR_DESCRIPTIONS.PMR_USER_ACCOUNT_LOCKED_OUT,
398
+ category: 'expected',
399
+ fatal: true,
400
+ },
401
+ 4025: {
402
+ errorDescription: ERROR_DESCRIPTIONS.GUEST_FORBIDDEN,
403
+ category: 'expected',
404
+ fatal: true,
405
+ },
406
+ 4026: {
407
+ errorDescription: ERROR_DESCRIPTIONS.PMR_ACCOUNT_SUSPENDED,
408
+ category: 'expected',
409
+ fatal: true,
410
+ },
411
+ 4027: {
412
+ errorDescription: ERROR_DESCRIPTIONS.EMPTY_PHONE_NUMBER_OR_COUNTRY_CODE,
413
+ category: 'expected',
414
+ fatal: true,
415
+ },
416
+ 4028: {
417
+ errorDescription: ERROR_DESCRIPTIONS.CONVERSATION_NOT_FOUND,
418
+ category: 'expected',
419
+ fatal: true,
420
+ },
421
+ 4029: {
422
+ errorDescription: ERROR_DESCRIPTIONS.START_RECORDING_FAILED,
423
+ category: 'expected',
424
+ fatal: true,
425
+ },
426
+ 4030: {
427
+ errorDescription: ERROR_DESCRIPTIONS.RECORDING_IN_PROGRESS_FAILED,
428
+ category: 'expected',
429
+ fatal: true,
430
+ },
431
+ 5000: {
432
+ errorDescription: ERROR_DESCRIPTIONS.SIP_CALLEE_BUSY,
433
+ category: 'expected',
434
+ fatal: true,
435
+ },
436
+ 5001: {
437
+ errorDescription: ERROR_DESCRIPTIONS.SIP_CALLEE_NOT_FOUND,
438
+ category: 'expected',
439
+ fatal: true,
440
+ },
441
+
442
+ // Webex App API Error Codes
443
+ 4100: {
444
+ errorDescription: ERROR_DESCRIPTIONS.MEETING_INFO_LOOKUP_ERROR,
445
+ category: 'signaling',
446
+ fatal: true,
447
+ },
448
+ 3003: {
449
+ errorDescription: ERROR_DESCRIPTIONS.CALL_FULL_ADD_GUEST,
450
+ category: 'expected',
451
+ fatal: false,
452
+ },
453
+ };
454
+
455
+ export const CALL_DIAGNOSTIC_EVENT_FAILED_TO_SEND = 'js_sdk_call_diagnostic_event_failed_to_send';