@webex/plugin-meetings 1.153.1 → 1.154.0

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 (43) hide show
  1. package/dist/common/errors/webex-errors.js +27 -3
  2. package/dist/common/errors/webex-errors.js.map +1 -1
  3. package/dist/constants.js +20 -13
  4. package/dist/constants.js.map +1 -1
  5. package/dist/meeting/index.js +54 -41
  6. package/dist/meeting/index.js.map +1 -1
  7. package/dist/meeting/request.js +24 -20
  8. package/dist/meeting/request.js.map +1 -1
  9. package/dist/meeting/state.js +8 -15
  10. package/dist/meeting/state.js.map +1 -1
  11. package/dist/meeting/util.js +2 -1
  12. package/dist/meeting/util.js.map +1 -1
  13. package/dist/meetings/index.js +8 -1
  14. package/dist/meetings/index.js.map +1 -1
  15. package/dist/metrics/config.js +3 -1
  16. package/dist/metrics/config.js.map +1 -1
  17. package/dist/metrics/index.js +23 -9
  18. package/dist/metrics/index.js.map +1 -1
  19. package/dist/peer-connection-manager/index.js +63 -56
  20. package/dist/peer-connection-manager/index.js.map +1 -1
  21. package/dist/reconnection-manager/index.js +1 -1
  22. package/dist/reconnection-manager/index.js.map +1 -1
  23. package/dist/roap/handler.js +4 -4
  24. package/dist/roap/handler.js.map +1 -1
  25. package/package.json +5 -5
  26. package/src/common/errors/webex-errors.js +21 -2
  27. package/src/constants.js +16 -11
  28. package/src/meeting/index.js +85 -68
  29. package/src/meeting/request.js +10 -5
  30. package/src/meeting/state.js +8 -17
  31. package/src/meeting/util.js +2 -1
  32. package/src/meetings/index.js +14 -3
  33. package/src/metrics/config.js +1 -0
  34. package/src/metrics/index.js +23 -9
  35. package/src/peer-connection-manager/index.js +61 -60
  36. package/src/reconnection-manager/index.js +3 -3
  37. package/src/roap/handler.js +5 -5
  38. package/test/unit/spec/meeting/index.js +39 -7
  39. package/test/unit/spec/meeting/request.js +53 -1
  40. package/test/unit/spec/meeting/utils.js +41 -0
  41. package/test/unit/spec/meetings/index.js +3 -1
  42. package/test/unit/spec/metrics/index.js +6 -6
  43. package/test/unit/spec/peerconnection-manager/index.js +69 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["config.js"],"names":["errorDescription","UNKNOWN_CALL_FAILURE","LOCUS_RATE_LIMITED_INCOMING","LOCUS_RATE_LIMITED_OUTGOING","LOCUS_UNAVAILABLE","LOCUS_CONFLICT","TIMEOUT","LOCUS_INVALID_SEQUENCE_HASH","UPDATE_MEDIA_FAILED","FAILED_TO_CONNECT_MEDIA","MEDIA_ENGINE_LOST","MEDIA_CONNECTION_LOST","ICE_FAILURE","MEDIA_ENGINE_HANG","ICE_SERVER_REJECTED","CALL_FULL","ROOM_TOO_LARGE","GUEST_ALREADY_ADDED","LOCUS_USER_NOT_AUTHORISED","CLOUDBERRY_UNAVAILABLE","ROOM_TOO_LARGE_FREE_ACCOUNT","MEETING_INACTIVE","MEETING_LOCKED","MEETING_TERMINATING","MODERATOR_PIN_OR_GUEST_REQUIRED","MODERATOR_PIN_OR_GUEST_PIN_REQUIRED","MODERATOR_REQUIRED","USER_NOT_MEMBER_OF_ROOM","NEW_LOCUS_ERROR","NET_WORK_UNAVAILABLE","MEETING_UNAVAILABLE","MEETING_ID_INVALID","MEETING_SITE_INVALID","LOCUS_INVALID_JOINTIME","LOBBY_EXPIRED","MEDIA_CONNECTION_LOST_PAIRED","PHONE_NUMBER_NOT_A_NUMBER","PHONE_NUMBER_TOO_LONG","INVALID_DIALABLE_KEY","ONE_ON_ONE_TO_SELF_NOT_ALLOWED","REMOVED_PARTICIPANT","MEETING_LINK_NOT_FOUND","PHONE_NUMBER_TOO_SHORT_AFTER_IDD","INVALID_INVITEE_ADDRESS","PMR_USER_ACCOUNT_LOCKED_OUT","GUEST_FORBIDDEN","PMR_ACCOUNT_SUSPENDED","EMPTY_PHONE_NUMBER_OR_COUNTRY_CODE","CONVERSATION_NOT_FOUND","SIP_CALLEE_BUSY","SIP_CALLEE_NOT_FOUND","START_RECORDING_FAILED","RECORDING_IN_PROGRESS_FAILED","errorCategory","SIGNALING","MEDIA","OTHER","EXPECTED","errorFailureType","CALL_INITIATION_FAILURE","MEDIA_CONNECTION_FAILURE","EXPECTED_FAILURE","ACCESS_RIGHTS","eventType","MEDIA_QUALITY","CALL_INITIATED","MERCURY_CONNECTION_LOST","MERCURY_CONNECTION_RESTORED","MOVE_MEDIA","LOCAL_SDP_GENERATED","REMOTE_SDP_RECEIVED","LOCUS_JOIN_REQUEST","LOCUS_JOIN_RESPONSE","ALERT_DISPLAYED","ICE_START","ICE_END","ICE_DISCONNECT","RECEIVING_MEDIA_START","RECEIVING_MEDIA_STOP","SENDING_MEDIA_START","SENDING_MEDIA_STOP","MEDIA_RENDER_START","MEDIA_RENDER_STOP","MEDIA_CAPABILITIES","MEDIA_RECONNECTING","MEDIA_RECOVERED","CALL_ABORTED","PIN_PROMPT","PIN_COLLECTED","LOBBY_ENTERED","LOBBY_EXITED","SHARE_INITIATED","SHARE_STOPPED","LOCAL_SHARE_FLOOR_GRANTED","SHARE_LAYOUT_DISPLAYED","WHITEBOARD_SHARE_INITIATED","WHITEBOARD_SHARE_STOPPED","WHITEBOARD_SHARE_FLOOR_GRANTED","MUTED","UNMUTED","LEAVE","REMOTE_ENDED","REMOTE_STARTED","MEDIA_REQUEST","MEDIA_RESPONSE","PSTN_AUDIO_ATTEMPT_START","PSTN_AUDIO_ATTEMPT_FINISH","PSTN_AUDIO_ATTEMPT_SKIP","error","name","MEDIA_ENGINE","ICE_FAILED","LOCUS_RESPONSE","LOCUS_LEAVE","notFatalErrorList","errors","trigger","USER_INTERACTION","MERCURY_EVENT","LOCI_UPDATE","MEDIA_ENGINE_EVENT","pstnAudioType","DIAL_IN","DIAL_OUT","displayLocation","TOAST","ROOM_LIST","CALL_PANE","CALL_VIEW","mediaType","AUDIO","VIDEO","SHARE","WHITEBOARD","reconnection","RECOVERED_BY_NEW","RECOVERED_BY_RETRY","errorCodes","USER_CREATE_FAILED","USER_ALREADY_PARTICIPANT","CONVO_ALREADY_EXISTS","ALREADY_ANNOUNCEMENT_SPACE","NOT_ANNOUNCEMENT_SPACE","USER_NOT_MODERATOR_IN_ANNOUNCEMENT_SPACE","TEMP_ID_ALREADY_EXISTS","PARENT_ACTIVITY_ID_NOT_FOUND_OR_INVALID","statusCodes","NETWORK_OR_CORS","BAD_REQUEST","FORBIDDEN","NOT_FOUND","CONFLICT","errorObjects","category","media","expected","mediaEngine","UNKNOWN","OS_NAME","WINDOWS","MAC","IOS","ANDROID","CHROME","LINUX","OTHERS","CLIENT_NAME"],"mappings":"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","sourcesContent":["\n\nconst errorDescription = {\n UNKNOWN_CALL_FAILURE: 'UnknownCallFailure',\n LOCUS_RATE_LIMITED_INCOMING: 'LocusRateLimitedIncoming',\n LOCUS_RATE_LIMITED_OUTGOING: 'LocusRateLimitedOutgoing',\n LOCUS_UNAVAILABLE: 'LocusUnavailable',\n LOCUS_CONFLICT: 'LocusConflict',\n TIMEOUT: 'Timeout',\n LOCUS_INVALID_SEQUENCE_HASH: 'LocusInvalidSequenceHash',\n UPDATE_MEDIA_FAILED: 'UpdateMediaFailed',\n FAILED_TO_CONNECT_MEDIA: 'FailedToConnectMedia',\n MEDIA_ENGINE_LOST: 'MediaEngineLost',\n MEDIA_CONNECTION_LOST: 'MediaConnectionLost',\n ICE_FAILURE: 'IceFailure',\n MEDIA_ENGINE_HANG: 'MediaEngineHang',\n ICE_SERVER_REJECTED: 'IceServerRejected',\n CALL_FULL: 'CallFull',\n ROOM_TOO_LARGE: 'RoomTooLarge',\n GUEST_ALREADY_ADDED: 'GuestAlreadyAdded',\n LOCUS_USER_NOT_AUTHORISED: 'LocusUserNotAuthorised',\n CLOUDBERRY_UNAVAILABLE: 'CloudberryUnavailable',\n ROOM_TOO_LARGE_FREE_ACCOUNT: 'RoomTooLarge_FreeAccount',\n MEETING_INACTIVE: 'MeetingInactive',\n MEETING_LOCKED: 'MeetingLocked',\n MEETING_TERMINATING: 'MeetingTerminating',\n MODERATOR_PIN_OR_GUEST_REQUIRED: 'Moderator_Pin_Or_Guest_Required',\n MODERATOR_PIN_OR_GUEST_PIN_REQUIRED: 'Moderator_Pin_Or_Guest_PIN_Required',\n MODERATOR_REQUIRED: 'Moderator_Required',\n USER_NOT_MEMBER_OF_ROOM: 'UserNotMemberOfRoom',\n NEW_LOCUS_ERROR: 'NewLocusError',\n NET_WORK_UNAVAILABLE: 'NetworkUnavailable',\n MEETING_UNAVAILABLE: 'MeetingUnavailable',\n MEETING_ID_INVALID: 'MeetingIDInvalid',\n MEETING_SITE_INVALID: 'MeetingSiteInvalid',\n LOCUS_INVALID_JOINTIME: 'LocusInvalidJoinTime',\n LOBBY_EXPIRED: 'LobbyExpired',\n MEDIA_CONNECTION_LOST_PAIRED: 'MediaConnectionLostPaired',\n PHONE_NUMBER_NOT_A_NUMBER: 'PhoneNumberNotANumber',\n PHONE_NUMBER_TOO_LONG: 'PhoneNumberTooLong',\n INVALID_DIALABLE_KEY: 'InvalidDialableKey',\n ONE_ON_ONE_TO_SELF_NOT_ALLOWED: 'OneOnOneToSelfNotAllowed',\n REMOVED_PARTICIPANT: 'RemovedParticipant',\n MEETING_LINK_NOT_FOUND: 'MeetingLinkNotFound',\n PHONE_NUMBER_TOO_SHORT_AFTER_IDD: 'PhoneNumberTooShortAfterIdd',\n INVALID_INVITEE_ADDRESS: 'InvalidInviteeAddress',\n PMR_USER_ACCOUNT_LOCKED_OUT: 'PMRUserAccountLockedOut',\n GUEST_FORBIDDEN: 'GuestForbidden',\n PMR_ACCOUNT_SUSPENDED: 'PMRAccountSuspended',\n EMPTY_PHONE_NUMBER_OR_COUNTRY_CODE: 'EmptyPhoneNumberOrCountryCode',\n CONVERSATION_NOT_FOUND: 'ConversationNotFound',\n SIP_CALLEE_BUSY: 'SIPCalleeBusy',\n SIP_CALLEE_NOT_FOUND: 'SIPCalleeNotFound',\n START_RECORDING_FAILED: 'StartRecordingFailed',\n RECORDING_IN_PROGRESS_FAILED: 'RecordingInProgressFailed'\n};\n\nconst errorCategory = {\n SIGNALING: 'signaling',\n MEDIA: 'media',\n OTHER: 'other',\n EXPECTED: 'expected'\n};\n\nconst errorFailureType = {\n CALL_INITIATION_FAILURE: 'CallInitiationFailure',\n MEDIA_CONNECTION_FAILURE: 'MediaConnectionFailure',\n EXPECTED_FAILURE: 'ExpectedFailure',\n ACCESS_RIGHTS: 'AccessRights'\n};\n\nexport const eventType = {\n // media quality events every 60 seconds\n MEDIA_QUALITY: 'client.mediaquality.event',\n CALL_INITIATED: 'client.call.initiated',\n MERCURY_CONNECTION_LOST: 'client.mercury.connection.lost',\n MERCURY_CONNECTION_RESTORED: 'client.mercury.connection.restored',\n MOVE_MEDIA: 'client.call.move-media',\n LOCAL_SDP_GENERATED: 'client.media-engine.local-sdp-generated',\n REMOTE_SDP_RECEIVED: 'client.media-engine.remote-sdp-received',\n LOCUS_JOIN_REQUEST: 'client.locus.join.request',\n LOCUS_JOIN_RESPONSE: 'client.locus.join.response',\n ALERT_DISPLAYED: 'client.alert.displayed',\n // when ICE negotiation starts\n ICE_START: 'client.ice.start',\n ICE_END: 'client.ice.end',\n ICE_DISCONNECT: 'client.ice.disconnect',\n // Fired when the media engine reports receiving a new media stream. Media events MUST have the mediaType property.\n RECEIVING_MEDIA_START: 'client.media.rx.start',\n // Fired when the media engine reports the end of receiving a media stream.\n // Media events MUST have the mediaType property.\n RECEIVING_MEDIA_STOP: 'client.media.rx.stop',\n // Fired when the media engine reports sending a new media stream. Media events MUST have the mediaType property.\n SENDING_MEDIA_START: 'client.media.tx.start',\n // Fired when the media engine reports it stopped sending a media stream.\n // Media events MUST have the mediaType property.\n SENDING_MEDIA_STOP: 'client.media.tx.stop',\n MEDIA_RENDER_START: 'client.media.render.start',\n MEDIA_RENDER_STOP: 'client.media.render.stop',\n // static media event when outside of the normal scenario\n // call-analyzer assumes that a client is capable of receiving audio, video, and share\n // fired on change, or at beginning of a call\n // every media type is required, so must be indicated with boolean\n MEDIA_CAPABILITIES: 'client.media.capabilities',\n // Sent when the client notices that a media session has been lost\n MEDIA_RECONNECTING: 'client.media.reconnecting',\n // Sent when the client recovers a media session that was lost\n MEDIA_RECOVERED: 'client.media.recovered',\n CALL_ABORTED: 'client.call.aborted',\n // Fired when the \"please enter your PIN\" or similar prompt is displayed\n // to the user, to authenticate them into the meeting\n PIN_PROMPT: 'client.pin.prompt',\n // Fired when PIN entry has been completed\n PIN_COLLECTED: 'client.pin.collected',\n // Fired when the client displays the native lobby\n LOBBY_ENTERED: 'client.lobby.entered',\n // Fired when the client leaves the native lobby\n LOBBY_EXITED: 'client.lobby.exited',\n // Fired when the user of the client starts a share (e.g. click 'Share' button).\n // This should be sent from all clients that support sending a share.\n SHARE_INITIATED: 'client.share.initiated',\n // Fired when the user stops sharing (usually when they click the 'Stop' button for share)\n SHARE_STOPPED: 'client.share.stopped',\n // When the client receives a successful response from locus indicating that it has the floor for content sharing.\n LOCAL_SHARE_FLOOR_GRANTED: 'client.share.floor-granted.local',\n // Fired when the client changes its local UI/layout to a content sharing view,\n // because it is expecting to display share media.\n SHARE_LAYOUT_DISPLAYED: 'client.share.layout.displayed',\n // Fired when the user of the client starts a whiteboard share (e.g. click 'Share Live' button).\n WHITEBOARD_SHARE_INITIATED: 'client.whiteboard.share.initiated',\n // Fired when the meeting floor is released for whiteboard share\n WHITEBOARD_SHARE_STOPPED: 'client.whiteboard.share.stopped',\n // When the client receives a successful response from locus indicating that it has the floor for whiteboard sharing.\n WHITEBOARD_SHARE_FLOOR_GRANTED: 'client.whiteboard.share.floor-granted',\n MUTED: 'client.muted',\n UNMUTED: 'client.unmuted',\n LEAVE: 'client.call.leave',\n REMOTE_ENDED: 'client.call.remote-ended',\n REMOTE_STARTED: 'client.call.remote-started',\n MEDIA_REQUEST: 'client.locus.media.request',\n MEDIA_RESPONSE: 'client.locus.media.response',\n PSTN_AUDIO_ATTEMPT_START: 'client.pstnaudio.attempt.start',\n PSTN_AUDIO_ATTEMPT_FINISH: 'client.pstnaudio.attempt.finish',\n PSTN_AUDIO_ATTEMPT_SKIP: 'client.pstnaudio.attempt.skip'\n};\n\nexport const error = {\n name: {\n MEDIA_ENGINE: 'media-engine',\n ICE_FAILED: 'ice.failed',\n LOCUS_RESPONSE: 'locus.response',\n LOCUS_LEAVE: 'locus.leave'\n },\n\n notFatalErrorList: [3003, 3004, 4004, 4005, 4006, 4015],\n errors: {\n // https://sqbu-github.cisco.com/WebExSquared/event-dictionary/wiki/Error-codes-for-metric-events\n // [errorDescription, errorFailureType, errorCategory]\n 1000: [errorDescription.UNKNOWN_CALL_FAILURE, errorFailureType.CALL_INITIATION_FAILURE, errorCategory.SIGNALING],\n 1001: [errorDescription.LOCUS_RATE_LIMITED_INCOMING,\n errorFailureType.CALL_INITIATION_FAILURE,\n errorCategory.SIGNALING\n ],\n 1002: [errorDescription.LOCUS_RATE_LIMITED_OUTGOING,\n errorFailureType.CALL_INITIATION_FAILURE,\n errorCategory.SIGNALING\n ],\n 1003: [errorDescription.LOCUS_UNAVAILABLE, errorFailureType.CALL_INITIATION_FAILURE, errorCategory.SIGNALING],\n 1004: [errorDescription.LOCUS_CONFLICT, errorFailureType.CALL_INITIATION_FAILURE, errorCategory.SIGNALING],\n 1005: [errorDescription.TIMEOUT, errorFailureType.CALL_INITIATION_FAILURE, errorCategory.SIGNALING],\n 1006: [errorDescription.LOCUS_INVALID_SEQUENCE_HASH,\n errorFailureType.CALL_INITIATION_FAILURE,\n errorCategory.SIGNALING\n ],\n 1007: [errorDescription.UPDATE_MEDIA_FAILED, errorFailureType.CALL_INITIATION_FAILURE, errorCategory.SIGNALING],\n 2001: [errorDescription.FAILED_TO_CONNECT_MEDIA,\n errorFailureType.MEDIA_CONNECTION_FAILURE,\n errorCategory.SIGNALING\n ],\n 2002: [errorDescription.MEDIA_ENGINE_LOST, errorFailureType.MEDIA_CONNECTION_FAILURE, errorCategory.SIGNALING],\n 2003: [errorDescription.MEDIA_CONNECTION_LOST,\n errorFailureType.MEDIA_CONNECTION_FAILURE,\n errorCategory.SIGNALING\n ],\n 2004: [errorDescription.ICE_FAILURE, errorFailureType.MEDIA_CONNECTION_FAILURE, errorCategory.SIGNALING],\n 2005: [errorDescription.MEDIA_ENGINE_HANG, errorFailureType.MEDIA_CONNECTION_FAILURE, errorCategory.SIGNALING],\n 2006: [errorDescription.ICE_SERVER_REJECTED, errorFailureType.MEDIA_CONNECTION_FAILURE, errorCategory.SIGNALING],\n 3001: [errorDescription.CALL_FULL, errorFailureType.EXPECTED_FAILURE, errorCategory.EXPECTED],\n 3002: [errorDescription.ROOM_TOO_LARGE, errorFailureType.EXPECTED_FAILURE, errorCategory.EXPECTED],\n 3004: [errorDescription.GUEST_ALREADY_ADDED, errorFailureType.EXPECTED_FAILURE, errorCategory.EXPECTED],\n 3005: [errorDescription.LOCUS_USER_NOT_AUTHORISED, errorFailureType.EXPECTED_FAILURE, errorCategory.EXPECTED],\n 3006: [errorDescription.CLOUDBERRY_UNAVAILABLE, errorFailureType.EXPECTED_FAILURE, errorCategory.EXPECTED],\n 3007: [errorDescription.ROOM_TOO_LARGE_FREE_ACCOUNT, errorFailureType.EXPECTED_FAILURE, errorCategory.EXPECTED],\n 4001: [errorDescription.MEETING_INACTIVE, errorFailureType.CALL_INITIATION_FAILURE, errorCategory.EXPECTED],\n 4002: [errorDescription.MEETING_LOCKED, errorFailureType.CALL_INITIATION_FAILURE, errorCategory.EXPECTED],\n 4003: [errorDescription.MEETING_TERMINATING, errorFailureType.CALL_INITIATION_FAILURE, errorCategory.EXPECTED],\n 4004: [errorDescription.MODERATOR_PIN_OR_GUEST_REQUIRED, errorFailureType.ACCESS_RIGHTS, errorCategory.EXPECTED],\n 4005: [errorDescription.MODERATOR_PIN_OR_GUEST_PIN_REQUIRED,\n errorFailureType.ACCESS_RIGHTS,\n errorCategory.EXPECTED\n ],\n 4006: [errorDescription.MODERATOR_REQUIRED, errorFailureType.ACCESS_RIGHTS, errorCategory.EXPECTED],\n 4007: [errorDescription.USER_NOT_MEMBER_OF_ROOM, errorFailureType.ACCESS_RIGHTS, errorCategory.EXPECTED],\n 4008: [errorDescription.NEW_LOCUS_ERROR, errorFailureType.CALL_INITIATION_FAILURE, errorCategory.EXPECTED],\n 4009: [errorDescription.NET_WORK_UNAVAILABLE, errorFailureType.CALL_INITIATION_FAILURE, errorCategory.EXPECTED],\n 4010: [errorDescription.MEETING_UNAVAILABLE, errorFailureType.CALL_INITIATION_FAILURE, errorCategory.EXPECTED],\n 4011: [errorDescription.MEETING_ID_INVALID, errorFailureType.EXPECTED_FAILURE, errorCategory.EXPECTED],\n 4012: [errorDescription.MEETING_SITE_INVALID, errorFailureType.EXPECTED_FAILURE, errorCategory.EXPECTED],\n 4013: [errorDescription.LOCUS_INVALID_JOINTIME, errorFailureType.EXPECTED_FAILURE, errorCategory.EXPECTED],\n 4014: [errorDescription.LOBBY_EXPIRED, errorFailureType.EXPECTED_FAILURE, errorCategory.EXPECTED],\n 4015: [errorDescription.MEDIA_CONNECTION_LOST_PAIRED,\n errorFailureType.MEDIA_CONNECTION_FAILURE,\n errorCategory.EXPECTED\n ],\n 4016: [errorDescription.PHONE_NUMBER_NOT_A_NUMBER, errorFailureType.EXPECTED_FAILURE, errorCategory.EXPECTED],\n 4017: [errorDescription.PHONE_NUMBER_TOO_LONG, errorFailureType.EXPECTED_FAILURE, errorCategory.EXPECTED],\n 4018: [errorDescription.INVALID_DIALABLE_KEY, errorFailureType.EXPECTED_FAILURE, errorCategory.EXPECTED],\n 4019: [errorDescription.ONE_ON_ONE_TO_SELF_NOT_ALLOWED,\n errorFailureType.EXPECTED_FAILURE,\n errorCategory.EXPECTED\n ],\n 4020: [errorDescription.REMOVED_PARTICIPANT, errorFailureType.EXPECTED_FAILURE, errorCategory.EXPECTED],\n 4021: [errorDescription.MEETING_LINK_NOT_FOUND, errorFailureType.EXPECTED_FAILURE, errorCategory.EXPECTED],\n 4022: [errorDescription.PHONE_NUMBER_TOO_SHORT_AFTER_IDD,\n errorFailureType.EXPECTED_FAILURE,\n errorCategory.EXPECTED\n ],\n 4023: [errorDescription.INVALID_INVITEE_ADDRESS, errorFailureType.EXPECTED_FAILURE, errorCategory.EXPECTED],\n 4024: [errorDescription.PMR_USER_ACCOUNT_LOCKED_OUT, errorFailureType.EXPECTED_FAILURE, errorCategory.EXPECTED],\n 4025: [errorDescription.GUEST_FORBIDDEN, errorFailureType.EXPECTED_FAILURE, errorCategory.EXPECTED],\n 4026: [errorDescription.PMR_ACCOUNT_SUSPENDED, errorFailureType.EXPECTED_FAILURE, errorCategory.EXPECTED],\n 4027: [errorDescription.EMPTY_PHONE_NUMBER_OR_COUNTRY_CODE,\n errorFailureType.EXPECTED_FAILURE,\n errorCategory.EXPECTED\n ],\n 4028: [errorDescription.CONVERSATION_NOT_FOUND, errorFailureType.EXPECTED_FAILURE, errorCategory.EXPECTED],\n 4029: [errorDescription.START_RECORDING_FAILED, errorFailureType.EXPECTED_FAILURE, errorCategory.EXPECTED],\n 4030: [errorDescription.RECORDING_IN_PROGRESS_FAILED, errorFailureType.EXPECTED_FAILURE, errorCategory.EXPECTED],\n 5000: [errorDescription.SIP_CALLEE_BUSY, errorFailureType.EXPECTED_FAILURE, errorCategory.EXPECTED],\n 5001: [errorDescription.SIP_CALLEE_NOT_FOUND, errorFailureType.EXPECTED_FAILURE, errorCategory.EXPECTED]\n }\n};\n\nexport const trigger = {\n USER_INTERACTION: 'user-interaction',\n MERCURY_EVENT: 'mercury-event',\n LOCI_UPDATE: 'loci-update',\n MEDIA_ENGINE_EVENT: 'media-engine-event',\n TIMEOUT: 'timeout',\n SIGNALING: 'signaling',\n OTHER: 'other'\n};\n\nexport const pstnAudioType = {\n DIAL_IN: 'dial-in',\n DIAL_OUT: 'dial-out'\n};\n\nexport const displayLocation = {\n TOAST: 'toast',\n ROOM_LIST: 'room-list',\n CALL_PANE: 'call-pane',\n CALL_VIEW: 'call-view',\n OTHER: 'other'\n};\n\nexport const mediaType = {\n AUDIO: 'audio',\n VIDEO: 'video',\n SHARE: 'share',\n WHITEBOARD: 'whiteboard'\n};\n\nexport const reconnection = {\n RECOVERED_BY_NEW: 'new', // always set to new due to /media request, no retries with ice restart\n RECOVERED_BY_RETRY: 'retry'\n};\n\n\nexport const errorCodes = {\n // ordered by error code values\n USER_CREATE_FAILED: 1400006,\n USER_ALREADY_PARTICIPANT: 1403001,\n CONVO_ALREADY_EXISTS: 1403010,\n ALREADY_ANNOUNCEMENT_SPACE: 1403014,\n NOT_ANNOUNCEMENT_SPACE: 1403015,\n USER_NOT_MODERATOR_IN_ANNOUNCEMENT_SPACE: 1403016,\n TEMP_ID_ALREADY_EXISTS: 1409001,\n PARENT_ACTIVITY_ID_NOT_FOUND_OR_INVALID: 14000015\n};\nexport const statusCodes = {\n // ordered by status codes\n NETWORK_OR_CORS: 0,\n BAD_REQUEST: 400,\n FORBIDDEN: 403,\n NOT_FOUND: 404,\n CONFLICT: 409\n};\n\nexport const errorObjects = {\n category: {\n media: 'media',\n expected: 'expected'\n },\n name: {\n mediaEngine: 'media-engine'\n }\n};\n\nexport const UNKNOWN = 'unknown';\n\nexport const OS_NAME = {\n WINDOWS: 'windows',\n MAC: 'mac',\n IOS: 'ios',\n ANDROID: 'android',\n CHROME: 'chrome',\n LINUX: 'linux',\n OTHERS: 'other'\n};\n\nexport const CLIENT_NAME = 'webex-js-sdk';\n"]}
1
+ {"version":3,"sources":["config.js"],"names":["errorDescription","UNKNOWN_CALL_FAILURE","LOCUS_RATE_LIMITED_INCOMING","LOCUS_RATE_LIMITED_OUTGOING","LOCUS_UNAVAILABLE","LOCUS_CONFLICT","TIMEOUT","LOCUS_INVALID_SEQUENCE_HASH","UPDATE_MEDIA_FAILED","FAILED_TO_CONNECT_MEDIA","MEDIA_ENGINE_LOST","MEDIA_CONNECTION_LOST","ICE_FAILURE","MEDIA_ENGINE_HANG","ICE_SERVER_REJECTED","CALL_FULL","ROOM_TOO_LARGE","GUEST_ALREADY_ADDED","LOCUS_USER_NOT_AUTHORISED","CLOUDBERRY_UNAVAILABLE","ROOM_TOO_LARGE_FREE_ACCOUNT","MEETING_INACTIVE","MEETING_LOCKED","MEETING_TERMINATING","MODERATOR_PIN_OR_GUEST_REQUIRED","MODERATOR_PIN_OR_GUEST_PIN_REQUIRED","MODERATOR_REQUIRED","USER_NOT_MEMBER_OF_ROOM","NEW_LOCUS_ERROR","NET_WORK_UNAVAILABLE","MEETING_UNAVAILABLE","MEETING_ID_INVALID","MEETING_SITE_INVALID","LOCUS_INVALID_JOINTIME","LOBBY_EXPIRED","MEDIA_CONNECTION_LOST_PAIRED","PHONE_NUMBER_NOT_A_NUMBER","PHONE_NUMBER_TOO_LONG","INVALID_DIALABLE_KEY","ONE_ON_ONE_TO_SELF_NOT_ALLOWED","REMOVED_PARTICIPANT","MEETING_LINK_NOT_FOUND","PHONE_NUMBER_TOO_SHORT_AFTER_IDD","INVALID_INVITEE_ADDRESS","PMR_USER_ACCOUNT_LOCKED_OUT","GUEST_FORBIDDEN","PMR_ACCOUNT_SUSPENDED","EMPTY_PHONE_NUMBER_OR_COUNTRY_CODE","CONVERSATION_NOT_FOUND","SIP_CALLEE_BUSY","SIP_CALLEE_NOT_FOUND","START_RECORDING_FAILED","RECORDING_IN_PROGRESS_FAILED","errorCategory","SIGNALING","MEDIA","OTHER","EXPECTED","errorFailureType","CALL_INITIATION_FAILURE","MEDIA_CONNECTION_FAILURE","EXPECTED_FAILURE","ACCESS_RIGHTS","eventType","MEDIA_QUALITY","CALL_INITIATED","MERCURY_CONNECTION_LOST","MERCURY_CONNECTION_RESTORED","MOVE_MEDIA","LOCAL_SDP_GENERATED","REMOTE_SDP_RECEIVED","LOCUS_JOIN_REQUEST","LOCUS_JOIN_RESPONSE","ALERT_DISPLAYED","ICE_START","ICE_END","ICE_DISCONNECT","RECEIVING_MEDIA_START","RECEIVING_MEDIA_STOP","SENDING_MEDIA_START","SENDING_MEDIA_STOP","MEDIA_RENDER_START","MEDIA_RENDER_STOP","MEDIA_CAPABILITIES","MEDIA_RECONNECTING","MEDIA_RECOVERED","CALL_ABORTED","PIN_PROMPT","PIN_COLLECTED","LOBBY_ENTERED","LOBBY_EXITED","SHARE_INITIATED","SHARE_STOPPED","LOCAL_SHARE_FLOOR_GRANTED","SHARE_LAYOUT_DISPLAYED","WHITEBOARD_SHARE_INITIATED","WHITEBOARD_SHARE_STOPPED","WHITEBOARD_SHARE_FLOOR_GRANTED","MUTED","UNMUTED","LEAVE","REMOTE_ENDED","REMOTE_STARTED","MEDIA_REQUEST","MEDIA_RESPONSE","PSTN_AUDIO_ATTEMPT_START","PSTN_AUDIO_ATTEMPT_FINISH","PSTN_AUDIO_ATTEMPT_SKIP","error","name","MEDIA_ENGINE","ICE_FAILED","LOCUS_RESPONSE","LOCUS_LEAVE","notFatalErrorList","errors","trigger","USER_INTERACTION","MERCURY_EVENT","LOCI_UPDATE","MEDIA_ENGINE_EVENT","pstnAudioType","DIAL_IN","DIAL_OUT","displayLocation","TOAST","ROOM_LIST","CALL_PANE","CALL_VIEW","mediaType","AUDIO","VIDEO","SHARE","WHITEBOARD","reconnection","RECOVERED_BY_NEW","RECOVERED_BY_RETRY","errorCodes","USER_CREATE_FAILED","USER_ALREADY_PARTICIPANT","CONVO_ALREADY_EXISTS","ALREADY_ANNOUNCEMENT_SPACE","NOT_ANNOUNCEMENT_SPACE","USER_NOT_MODERATOR_IN_ANNOUNCEMENT_SPACE","TEMP_ID_ALREADY_EXISTS","PARENT_ACTIVITY_ID_NOT_FOUND_OR_INVALID","statusCodes","NETWORK_OR_CORS","BAD_REQUEST","FORBIDDEN","NOT_FOUND","CONFLICT","errorObjects","category","media","expected","mediaEngine","UNKNOWN","OS_NAME","WINDOWS","MAC","IOS","ANDROID","CHROME","LINUX","OTHERS","CLIENT_NAME","PLATFORM"],"mappings":";;;;;;;;;AAEA,IAAMA,gBAAgB,GAAG;AACvBC,EAAAA,oBAAoB,EAAE,oBADC;AAEvBC,EAAAA,2BAA2B,EAAE,0BAFN;AAGvBC,EAAAA,2BAA2B,EAAE,0BAHN;AAIvBC,EAAAA,iBAAiB,EAAE,kBAJI;AAKvBC,EAAAA,cAAc,EAAE,eALO;AAMvBC,EAAAA,OAAO,EAAE,SANc;AAOvBC,EAAAA,2BAA2B,EAAE,0BAPN;AAQvBC,EAAAA,mBAAmB,EAAE,mBARE;AASvBC,EAAAA,uBAAuB,EAAE,sBATF;AAUvBC,EAAAA,iBAAiB,EAAE,iBAVI;AAWvBC,EAAAA,qBAAqB,EAAE,qBAXA;AAYvBC,EAAAA,WAAW,EAAE,YAZU;AAavBC,EAAAA,iBAAiB,EAAE,iBAbI;AAcvBC,EAAAA,mBAAmB,EAAE,mBAdE;AAevBC,EAAAA,SAAS,EAAE,UAfY;AAgBvBC,EAAAA,cAAc,EAAE,cAhBO;AAiBvBC,EAAAA,mBAAmB,EAAE,mBAjBE;AAkBvBC,EAAAA,yBAAyB,EAAE,wBAlBJ;AAmBvBC,EAAAA,sBAAsB,EAAE,uBAnBD;AAoBvBC,EAAAA,2BAA2B,EAAE,0BApBN;AAqBvBC,EAAAA,gBAAgB,EAAE,iBArBK;AAsBvBC,EAAAA,cAAc,EAAE,eAtBO;AAuBvBC,EAAAA,mBAAmB,EAAE,oBAvBE;AAwBvBC,EAAAA,+BAA+B,EAAE,iCAxBV;AAyBvBC,EAAAA,mCAAmC,EAAE,qCAzBd;AA0BvBC,EAAAA,kBAAkB,EAAE,oBA1BG;AA2BvBC,EAAAA,uBAAuB,EAAE,qBA3BF;AA4BvBC,EAAAA,eAAe,EAAE,eA5BM;AA6BvBC,EAAAA,oBAAoB,EAAE,oBA7BC;AA8BvBC,EAAAA,mBAAmB,EAAE,oBA9BE;AA+BvBC,EAAAA,kBAAkB,EAAE,kBA/BG;AAgCvBC,EAAAA,oBAAoB,EAAE,oBAhCC;AAiCvBC,EAAAA,sBAAsB,EAAE,sBAjCD;AAkCvBC,EAAAA,aAAa,EAAE,cAlCQ;AAmCvBC,EAAAA,4BAA4B,EAAE,2BAnCP;AAoCvBC,EAAAA,yBAAyB,EAAE,uBApCJ;AAqCvBC,EAAAA,qBAAqB,EAAE,oBArCA;AAsCvBC,EAAAA,oBAAoB,EAAE,oBAtCC;AAuCvBC,EAAAA,8BAA8B,EAAE,0BAvCT;AAwCvBC,EAAAA,mBAAmB,EAAE,oBAxCE;AAyCvBC,EAAAA,sBAAsB,EAAE,qBAzCD;AA0CvBC,EAAAA,gCAAgC,EAAE,6BA1CX;AA2CvBC,EAAAA,uBAAuB,EAAE,uBA3CF;AA4CvBC,EAAAA,2BAA2B,EAAE,yBA5CN;AA6CvBC,EAAAA,eAAe,EAAE,gBA7CM;AA8CvBC,EAAAA,qBAAqB,EAAE,qBA9CA;AA+CvBC,EAAAA,kCAAkC,EAAE,+BA/Cb;AAgDvBC,EAAAA,sBAAsB,EAAE,sBAhDD;AAiDvBC,EAAAA,eAAe,EAAE,eAjDM;AAkDvBC,EAAAA,oBAAoB,EAAE,mBAlDC;AAmDvBC,EAAAA,sBAAsB,EAAE,sBAnDD;AAoDvBC,EAAAA,4BAA4B,EAAE;AApDP,CAAzB;AAuDA,IAAMC,aAAa,GAAG;AACpBC,EAAAA,SAAS,EAAE,WADS;AAEpBC,EAAAA,KAAK,EAAE,OAFa;AAGpBC,EAAAA,KAAK,EAAE,OAHa;AAIpBC,EAAAA,QAAQ,EAAE;AAJU,CAAtB;AAOA,IAAMC,gBAAgB,GAAG;AACvBC,EAAAA,uBAAuB,EAAE,uBADF;AAEvBC,EAAAA,wBAAwB,EAAE,wBAFH;AAGvBC,EAAAA,gBAAgB,EAAE,iBAHK;AAIvBC,EAAAA,aAAa,EAAE;AAJQ,CAAzB;AAOO,IAAMC,SAAS,GAAG;AACvB;AACAC,EAAAA,aAAa,EAAE,2BAFQ;AAGvBC,EAAAA,cAAc,EAAE,uBAHO;AAIvBC,EAAAA,uBAAuB,EAAE,gCAJF;AAKvBC,EAAAA,2BAA2B,EAAE,oCALN;AAMvBC,EAAAA,UAAU,EAAE,wBANW;AAOvBC,EAAAA,mBAAmB,EAAE,yCAPE;AAQvBC,EAAAA,mBAAmB,EAAE,yCARE;AASvBC,EAAAA,kBAAkB,EAAE,2BATG;AAUvBC,EAAAA,mBAAmB,EAAE,4BAVE;AAWvBC,EAAAA,eAAe,EAAE,wBAXM;AAYvB;AACAC,EAAAA,SAAS,EAAE,kBAbY;AAcvBC,EAAAA,OAAO,EAAE,gBAdc;AAevBC,EAAAA,cAAc,EAAE,uBAfO;AAgBvB;AACAC,EAAAA,qBAAqB,EAAE,uBAjBA;AAkBvB;AACA;AACAC,EAAAA,oBAAoB,EAAE,sBApBC;AAqBvB;AACAC,EAAAA,mBAAmB,EAAE,uBAtBE;AAuBvB;AACA;AACAC,EAAAA,kBAAkB,EAAE,sBAzBG;AA0BvBC,EAAAA,kBAAkB,EAAE,2BA1BG;AA2BvBC,EAAAA,iBAAiB,EAAE,0BA3BI;AA4BvB;AACA;AACA;AACA;AACAC,EAAAA,kBAAkB,EAAE,2BAhCG;AAiCvB;AACAC,EAAAA,kBAAkB,EAAE,2BAlCG;AAmCvB;AACAC,EAAAA,eAAe,EAAE,wBApCM;AAqCvBC,EAAAA,YAAY,EAAE,qBArCS;AAsCvB;AACA;AACAC,EAAAA,UAAU,EAAE,mBAxCW;AAyCvB;AACAC,EAAAA,aAAa,EAAE,sBA1CQ;AA2CvB;AACAC,EAAAA,aAAa,EAAE,sBA5CQ;AA6CvB;AACAC,EAAAA,YAAY,EAAE,qBA9CS;AA+CvB;AACA;AACAC,EAAAA,eAAe,EAAE,wBAjDM;AAkDvB;AACAC,EAAAA,aAAa,EAAE,sBAnDQ;AAoDvB;AACAC,EAAAA,yBAAyB,EAAE,kCArDJ;AAsDvB;AACA;AACAC,EAAAA,sBAAsB,EAAE,+BAxDD;AAyDvB;AACAC,EAAAA,0BAA0B,EAAE,mCA1DL;AA2DvB;AACAC,EAAAA,wBAAwB,EAAE,iCA5DH;AA6DvB;AACAC,EAAAA,8BAA8B,EAAE,uCA9DT;AA+DvBC,EAAAA,KAAK,EAAE,cA/DgB;AAgEvBC,EAAAA,OAAO,EAAE,gBAhEc;AAiEvBC,EAAAA,KAAK,EAAE,mBAjEgB;AAkEvBC,EAAAA,YAAY,EAAE,0BAlES;AAmEvBC,EAAAA,cAAc,EAAE,4BAnEO;AAoEvBC,EAAAA,aAAa,EAAE,4BApEQ;AAqEvBC,EAAAA,cAAc,EAAE,6BArEO;AAsEvBC,EAAAA,wBAAwB,EAAE,gCAtEH;AAuEvBC,EAAAA,yBAAyB,EAAE,iCAvEJ;AAwEvBC,EAAAA,uBAAuB,EAAE;AAxEF,CAAlB;;AA2EA,IAAMC,KAAK,GAAG;AACnBC,EAAAA,IAAI,EAAE;AACJC,IAAAA,YAAY,EAAE,cADV;AAEJC,IAAAA,UAAU,EAAE,YAFR;AAGJC,IAAAA,cAAc,EAAE,gBAHZ;AAIJC,IAAAA,WAAW,EAAE;AAJT,GADa;AAQnBC,EAAAA,iBAAiB,EAAE,CAAC,IAAD,EAAO,IAAP,EAAa,IAAb,EAAmB,IAAnB,EAAyB,IAAzB,EAA+B,IAA/B,CARA;AASnBC,EAAAA,MAAM,EAAE;AACN;AACA;AACA,UAAM,CAACnH,gBAAgB,CAACC,oBAAlB,EAAwCyD,gBAAgB,CAACC,uBAAzD,EAAkFN,aAAa,CAACC,SAAhG,CAHA;AAIN,UAAM,CAACtD,gBAAgB,CAACE,2BAAlB,EACJwD,gBAAgB,CAACC,uBADb,EAEJN,aAAa,CAACC,SAFV,CAJA;AAQN,UAAM,CAACtD,gBAAgB,CAACG,2BAAlB,EACJuD,gBAAgB,CAACC,uBADb,EAEJN,aAAa,CAACC,SAFV,CARA;AAYN,UAAM,CAACtD,gBAAgB,CAACI,iBAAlB,EAAqCsD,gBAAgB,CAACC,uBAAtD,EAA+EN,aAAa,CAACC,SAA7F,CAZA;AAaN,UAAM,CAACtD,gBAAgB,CAACK,cAAlB,EAAkCqD,gBAAgB,CAACC,uBAAnD,EAA4EN,aAAa,CAACC,SAA1F,CAbA;AAcN,UAAM,CAACtD,gBAAgB,CAACM,OAAlB,EAA2BoD,gBAAgB,CAACC,uBAA5C,EAAqEN,aAAa,CAACC,SAAnF,CAdA;AAeN,UAAM,CAACtD,gBAAgB,CAACO,2BAAlB,EACJmD,gBAAgB,CAACC,uBADb,EAEJN,aAAa,CAACC,SAFV,CAfA;AAmBN,UAAM,CAACtD,gBAAgB,CAACQ,mBAAlB,EAAuCkD,gBAAgB,CAACC,uBAAxD,EAAiFN,aAAa,CAACC,SAA/F,CAnBA;AAoBN,UAAM,CAACtD,gBAAgB,CAACS,uBAAlB,EACJiD,gBAAgB,CAACE,wBADb,EAEJP,aAAa,CAACC,SAFV,CApBA;AAwBN,UAAM,CAACtD,gBAAgB,CAACU,iBAAlB,EAAqCgD,gBAAgB,CAACE,wBAAtD,EAAgFP,aAAa,CAACC,SAA9F,CAxBA;AAyBN,UAAM,CAACtD,gBAAgB,CAACW,qBAAlB,EACJ+C,gBAAgB,CAACE,wBADb,EAEJP,aAAa,CAACC,SAFV,CAzBA;AA6BN,UAAM,CAACtD,gBAAgB,CAACY,WAAlB,EAA+B8C,gBAAgB,CAACE,wBAAhD,EAA0EP,aAAa,CAACC,SAAxF,CA7BA;AA8BN,UAAM,CAACtD,gBAAgB,CAACa,iBAAlB,EAAqC6C,gBAAgB,CAACE,wBAAtD,EAAgFP,aAAa,CAACC,SAA9F,CA9BA;AA+BN,UAAM,CAACtD,gBAAgB,CAACc,mBAAlB,EAAuC4C,gBAAgB,CAACE,wBAAxD,EAAkFP,aAAa,CAACC,SAAhG,CA/BA;AAgCN,UAAM,CAACtD,gBAAgB,CAACe,SAAlB,EAA6B2C,gBAAgB,CAACG,gBAA9C,EAAgER,aAAa,CAACI,QAA9E,CAhCA;AAiCN,UAAM,CAACzD,gBAAgB,CAACgB,cAAlB,EAAkC0C,gBAAgB,CAACG,gBAAnD,EAAqER,aAAa,CAACI,QAAnF,CAjCA;AAkCN,UAAM,CAACzD,gBAAgB,CAACiB,mBAAlB,EAAuCyC,gBAAgB,CAACG,gBAAxD,EAA0ER,aAAa,CAACI,QAAxF,CAlCA;AAmCN,UAAM,CAACzD,gBAAgB,CAACkB,yBAAlB,EAA6CwC,gBAAgB,CAACG,gBAA9D,EAAgFR,aAAa,CAACI,QAA9F,CAnCA;AAoCN,UAAM,CAACzD,gBAAgB,CAACmB,sBAAlB,EAA0CuC,gBAAgB,CAACG,gBAA3D,EAA6ER,aAAa,CAACI,QAA3F,CApCA;AAqCN,UAAM,CAACzD,gBAAgB,CAACoB,2BAAlB,EAA+CsC,gBAAgB,CAACG,gBAAhE,EAAkFR,aAAa,CAACI,QAAhG,CArCA;AAsCN,UAAM,CAACzD,gBAAgB,CAACqB,gBAAlB,EAAoCqC,gBAAgB,CAACC,uBAArD,EAA8EN,aAAa,CAACI,QAA5F,CAtCA;AAuCN,UAAM,CAACzD,gBAAgB,CAACsB,cAAlB,EAAkCoC,gBAAgB,CAACC,uBAAnD,EAA4EN,aAAa,CAACI,QAA1F,CAvCA;AAwCN,UAAM,CAACzD,gBAAgB,CAACuB,mBAAlB,EAAuCmC,gBAAgB,CAACC,uBAAxD,EAAiFN,aAAa,CAACI,QAA/F,CAxCA;AAyCN,UAAM,CAACzD,gBAAgB,CAACwB,+BAAlB,EAAmDkC,gBAAgB,CAACI,aAApE,EAAmFT,aAAa,CAACI,QAAjG,CAzCA;AA0CN,UAAM,CAACzD,gBAAgB,CAACyB,mCAAlB,EACJiC,gBAAgB,CAACI,aADb,EAEJT,aAAa,CAACI,QAFV,CA1CA;AA8CN,UAAM,CAACzD,gBAAgB,CAAC0B,kBAAlB,EAAsCgC,gBAAgB,CAACI,aAAvD,EAAsET,aAAa,CAACI,QAApF,CA9CA;AA+CN,UAAM,CAACzD,gBAAgB,CAAC2B,uBAAlB,EAA2C+B,gBAAgB,CAACI,aAA5D,EAA2ET,aAAa,CAACI,QAAzF,CA/CA;AAgDN,UAAM,CAACzD,gBAAgB,CAAC4B,eAAlB,EAAmC8B,gBAAgB,CAACC,uBAApD,EAA6EN,aAAa,CAACI,QAA3F,CAhDA;AAiDN,UAAM,CAACzD,gBAAgB,CAAC6B,oBAAlB,EAAwC6B,gBAAgB,CAACC,uBAAzD,EAAkFN,aAAa,CAACI,QAAhG,CAjDA;AAkDN,UAAM,CAACzD,gBAAgB,CAAC8B,mBAAlB,EAAuC4B,gBAAgB,CAACC,uBAAxD,EAAiFN,aAAa,CAACI,QAA/F,CAlDA;AAmDN,UAAM,CAACzD,gBAAgB,CAAC+B,kBAAlB,EAAsC2B,gBAAgB,CAACG,gBAAvD,EAAyER,aAAa,CAACI,QAAvF,CAnDA;AAoDN,UAAM,CAACzD,gBAAgB,CAACgC,oBAAlB,EAAwC0B,gBAAgB,CAACG,gBAAzD,EAA2ER,aAAa,CAACI,QAAzF,CApDA;AAqDN,UAAM,CAACzD,gBAAgB,CAACiC,sBAAlB,EAA0CyB,gBAAgB,CAACG,gBAA3D,EAA6ER,aAAa,CAACI,QAA3F,CArDA;AAsDN,UAAM,CAACzD,gBAAgB,CAACkC,aAAlB,EAAiCwB,gBAAgB,CAACG,gBAAlD,EAAoER,aAAa,CAACI,QAAlF,CAtDA;AAuDN,UAAM,CAACzD,gBAAgB,CAACmC,4BAAlB,EACJuB,gBAAgB,CAACE,wBADb,EAEJP,aAAa,CAACI,QAFV,CAvDA;AA2DN,UAAM,CAACzD,gBAAgB,CAACoC,yBAAlB,EAA6CsB,gBAAgB,CAACG,gBAA9D,EAAgFR,aAAa,CAACI,QAA9F,CA3DA;AA4DN,UAAM,CAACzD,gBAAgB,CAACqC,qBAAlB,EAAyCqB,gBAAgB,CAACG,gBAA1D,EAA4ER,aAAa,CAACI,QAA1F,CA5DA;AA6DN,UAAM,CAACzD,gBAAgB,CAACsC,oBAAlB,EAAwCoB,gBAAgB,CAACG,gBAAzD,EAA2ER,aAAa,CAACI,QAAzF,CA7DA;AA8DN,UAAM,CAACzD,gBAAgB,CAACuC,8BAAlB,EACJmB,gBAAgB,CAACG,gBADb,EAEJR,aAAa,CAACI,QAFV,CA9DA;AAkEN,UAAM,CAACzD,gBAAgB,CAACwC,mBAAlB,EAAuCkB,gBAAgB,CAACG,gBAAxD,EAA0ER,aAAa,CAACI,QAAxF,CAlEA;AAmEN,UAAM,CAACzD,gBAAgB,CAACyC,sBAAlB,EAA0CiB,gBAAgB,CAACG,gBAA3D,EAA6ER,aAAa,CAACI,QAA3F,CAnEA;AAoEN,UAAM,CAACzD,gBAAgB,CAAC0C,gCAAlB,EACJgB,gBAAgB,CAACG,gBADb,EAEJR,aAAa,CAACI,QAFV,CApEA;AAwEN,UAAM,CAACzD,gBAAgB,CAAC2C,uBAAlB,EAA2Ce,gBAAgB,CAACG,gBAA5D,EAA8ER,aAAa,CAACI,QAA5F,CAxEA;AAyEN,UAAM,CAACzD,gBAAgB,CAAC4C,2BAAlB,EAA+Cc,gBAAgB,CAACG,gBAAhE,EAAkFR,aAAa,CAACI,QAAhG,CAzEA;AA0EN,UAAM,CAACzD,gBAAgB,CAAC6C,eAAlB,EAAmCa,gBAAgB,CAACG,gBAApD,EAAsER,aAAa,CAACI,QAApF,CA1EA;AA2EN,UAAM,CAACzD,gBAAgB,CAAC8C,qBAAlB,EAAyCY,gBAAgB,CAACG,gBAA1D,EAA4ER,aAAa,CAACI,QAA1F,CA3EA;AA4EN,UAAM,CAACzD,gBAAgB,CAAC+C,kCAAlB,EACJW,gBAAgB,CAACG,gBADb,EAEJR,aAAa,CAACI,QAFV,CA5EA;AAgFN,UAAM,CAACzD,gBAAgB,CAACgD,sBAAlB,EAA0CU,gBAAgB,CAACG,gBAA3D,EAA6ER,aAAa,CAACI,QAA3F,CAhFA;AAiFN,UAAM,CAACzD,gBAAgB,CAACmD,sBAAlB,EAA0CO,gBAAgB,CAACG,gBAA3D,EAA6ER,aAAa,CAACI,QAA3F,CAjFA;AAkFN,UAAM,CAACzD,gBAAgB,CAACoD,4BAAlB,EAAgDM,gBAAgB,CAACG,gBAAjE,EAAmFR,aAAa,CAACI,QAAjG,CAlFA;AAmFN,UAAM,CAACzD,gBAAgB,CAACiD,eAAlB,EAAmCS,gBAAgB,CAACG,gBAApD,EAAsER,aAAa,CAACI,QAApF,CAnFA;AAoFN,UAAM,CAACzD,gBAAgB,CAACkD,oBAAlB,EAAwCQ,gBAAgB,CAACG,gBAAzD,EAA2ER,aAAa,CAACI,QAAzF;AApFA;AATW,CAAd;;AAiGA,IAAM2D,OAAO,GAAG;AACrBC,EAAAA,gBAAgB,EAAE,kBADG;AAErBC,EAAAA,aAAa,EAAE,eAFM;AAGrBC,EAAAA,WAAW,EAAE,aAHQ;AAIrBC,EAAAA,kBAAkB,EAAE,oBAJC;AAKrBlH,EAAAA,OAAO,EAAE,SALY;AAMrBgD,EAAAA,SAAS,EAAE,WANU;AAOrBE,EAAAA,KAAK,EAAE;AAPc,CAAhB;;AAUA,IAAMiE,aAAa,GAAG;AAC3BC,EAAAA,OAAO,EAAE,SADkB;AAE3BC,EAAAA,QAAQ,EAAE;AAFiB,CAAtB;;AAKA,IAAMC,eAAe,GAAG;AAC7BC,EAAAA,KAAK,EAAE,OADsB;AAE7BC,EAAAA,SAAS,EAAE,WAFkB;AAG7BC,EAAAA,SAAS,EAAE,WAHkB;AAI7BC,EAAAA,SAAS,EAAE,WAJkB;AAK7BxE,EAAAA,KAAK,EAAE;AALsB,CAAxB;;AAQA,IAAMyE,SAAS,GAAG;AACvBC,EAAAA,KAAK,EAAE,OADgB;AAEvBC,EAAAA,KAAK,EAAE,OAFgB;AAGvBC,EAAAA,KAAK,EAAE,OAHgB;AAIvBC,EAAAA,UAAU,EAAE;AAJW,CAAlB;;AAOA,IAAMC,YAAY,GAAG;AAC1BC,EAAAA,gBAAgB,EAAE,KADQ;AACD;AACzBC,EAAAA,kBAAkB,EAAE;AAFM,CAArB;;AAMA,IAAMC,UAAU,GAAG;AACxB;AACAC,EAAAA,kBAAkB,EAAE,OAFI;AAGxBC,EAAAA,wBAAwB,EAAE,OAHF;AAIxBC,EAAAA,oBAAoB,EAAE,OAJE;AAKxBC,EAAAA,0BAA0B,EAAE,OALJ;AAMxBC,EAAAA,sBAAsB,EAAE,OANA;AAOxBC,EAAAA,wCAAwC,EAAE,OAPlB;AAQxBC,EAAAA,sBAAsB,EAAE,OARA;AASxBC,EAAAA,uCAAuC,EAAE;AATjB,CAAnB;;AAWA,IAAMC,WAAW,GAAG;AACzB;AACAC,EAAAA,eAAe,EAAE,CAFQ;AAGzBC,EAAAA,WAAW,EAAE,GAHY;AAIzBC,EAAAA,SAAS,EAAE,GAJc;AAKzBC,EAAAA,SAAS,EAAE,GALc;AAMzBC,EAAAA,QAAQ,EAAE;AANe,CAApB;;AASA,IAAMC,YAAY,GAAG;AAC1BC,EAAAA,QAAQ,EAAE;AACRC,IAAAA,KAAK,EAAE,OADC;AAERC,IAAAA,QAAQ,EAAE;AAFF,GADgB;AAK1B9C,EAAAA,IAAI,EAAE;AACJ+C,IAAAA,WAAW,EAAE;AADT;AALoB,CAArB;;AAUA,IAAMC,OAAO,GAAG,SAAhB;;AAEA,IAAMC,OAAO,GAAG;AACrBC,EAAAA,OAAO,EAAE,SADY;AAErBC,EAAAA,GAAG,EAAE,KAFgB;AAGrBC,EAAAA,GAAG,EAAE,KAHgB;AAIrBC,EAAAA,OAAO,EAAE,SAJY;AAKrBC,EAAAA,MAAM,EAAE,QALa;AAMrBC,EAAAA,KAAK,EAAE,OANc;AAOrBC,EAAAA,MAAM,EAAE;AAPa,CAAhB;;AAUA,IAAMC,WAAW,GAAG,cAApB;;AACA,IAAMC,QAAQ,GAAG,KAAjB","sourcesContent":["\n\nconst errorDescription = {\n UNKNOWN_CALL_FAILURE: 'UnknownCallFailure',\n LOCUS_RATE_LIMITED_INCOMING: 'LocusRateLimitedIncoming',\n LOCUS_RATE_LIMITED_OUTGOING: 'LocusRateLimitedOutgoing',\n LOCUS_UNAVAILABLE: 'LocusUnavailable',\n LOCUS_CONFLICT: 'LocusConflict',\n TIMEOUT: 'Timeout',\n LOCUS_INVALID_SEQUENCE_HASH: 'LocusInvalidSequenceHash',\n UPDATE_MEDIA_FAILED: 'UpdateMediaFailed',\n FAILED_TO_CONNECT_MEDIA: 'FailedToConnectMedia',\n MEDIA_ENGINE_LOST: 'MediaEngineLost',\n MEDIA_CONNECTION_LOST: 'MediaConnectionLost',\n ICE_FAILURE: 'IceFailure',\n MEDIA_ENGINE_HANG: 'MediaEngineHang',\n ICE_SERVER_REJECTED: 'IceServerRejected',\n CALL_FULL: 'CallFull',\n ROOM_TOO_LARGE: 'RoomTooLarge',\n GUEST_ALREADY_ADDED: 'GuestAlreadyAdded',\n LOCUS_USER_NOT_AUTHORISED: 'LocusUserNotAuthorised',\n CLOUDBERRY_UNAVAILABLE: 'CloudberryUnavailable',\n ROOM_TOO_LARGE_FREE_ACCOUNT: 'RoomTooLarge_FreeAccount',\n MEETING_INACTIVE: 'MeetingInactive',\n MEETING_LOCKED: 'MeetingLocked',\n MEETING_TERMINATING: 'MeetingTerminating',\n MODERATOR_PIN_OR_GUEST_REQUIRED: 'Moderator_Pin_Or_Guest_Required',\n MODERATOR_PIN_OR_GUEST_PIN_REQUIRED: 'Moderator_Pin_Or_Guest_PIN_Required',\n MODERATOR_REQUIRED: 'Moderator_Required',\n USER_NOT_MEMBER_OF_ROOM: 'UserNotMemberOfRoom',\n NEW_LOCUS_ERROR: 'NewLocusError',\n NET_WORK_UNAVAILABLE: 'NetworkUnavailable',\n MEETING_UNAVAILABLE: 'MeetingUnavailable',\n MEETING_ID_INVALID: 'MeetingIDInvalid',\n MEETING_SITE_INVALID: 'MeetingSiteInvalid',\n LOCUS_INVALID_JOINTIME: 'LocusInvalidJoinTime',\n LOBBY_EXPIRED: 'LobbyExpired',\n MEDIA_CONNECTION_LOST_PAIRED: 'MediaConnectionLostPaired',\n PHONE_NUMBER_NOT_A_NUMBER: 'PhoneNumberNotANumber',\n PHONE_NUMBER_TOO_LONG: 'PhoneNumberTooLong',\n INVALID_DIALABLE_KEY: 'InvalidDialableKey',\n ONE_ON_ONE_TO_SELF_NOT_ALLOWED: 'OneOnOneToSelfNotAllowed',\n REMOVED_PARTICIPANT: 'RemovedParticipant',\n MEETING_LINK_NOT_FOUND: 'MeetingLinkNotFound',\n PHONE_NUMBER_TOO_SHORT_AFTER_IDD: 'PhoneNumberTooShortAfterIdd',\n INVALID_INVITEE_ADDRESS: 'InvalidInviteeAddress',\n PMR_USER_ACCOUNT_LOCKED_OUT: 'PMRUserAccountLockedOut',\n GUEST_FORBIDDEN: 'GuestForbidden',\n PMR_ACCOUNT_SUSPENDED: 'PMRAccountSuspended',\n EMPTY_PHONE_NUMBER_OR_COUNTRY_CODE: 'EmptyPhoneNumberOrCountryCode',\n CONVERSATION_NOT_FOUND: 'ConversationNotFound',\n SIP_CALLEE_BUSY: 'SIPCalleeBusy',\n SIP_CALLEE_NOT_FOUND: 'SIPCalleeNotFound',\n START_RECORDING_FAILED: 'StartRecordingFailed',\n RECORDING_IN_PROGRESS_FAILED: 'RecordingInProgressFailed'\n};\n\nconst errorCategory = {\n SIGNALING: 'signaling',\n MEDIA: 'media',\n OTHER: 'other',\n EXPECTED: 'expected'\n};\n\nconst errorFailureType = {\n CALL_INITIATION_FAILURE: 'CallInitiationFailure',\n MEDIA_CONNECTION_FAILURE: 'MediaConnectionFailure',\n EXPECTED_FAILURE: 'ExpectedFailure',\n ACCESS_RIGHTS: 'AccessRights'\n};\n\nexport const eventType = {\n // media quality events every 60 seconds\n MEDIA_QUALITY: 'client.mediaquality.event',\n CALL_INITIATED: 'client.call.initiated',\n MERCURY_CONNECTION_LOST: 'client.mercury.connection.lost',\n MERCURY_CONNECTION_RESTORED: 'client.mercury.connection.restored',\n MOVE_MEDIA: 'client.call.move-media',\n LOCAL_SDP_GENERATED: 'client.media-engine.local-sdp-generated',\n REMOTE_SDP_RECEIVED: 'client.media-engine.remote-sdp-received',\n LOCUS_JOIN_REQUEST: 'client.locus.join.request',\n LOCUS_JOIN_RESPONSE: 'client.locus.join.response',\n ALERT_DISPLAYED: 'client.alert.displayed',\n // when ICE negotiation starts\n ICE_START: 'client.ice.start',\n ICE_END: 'client.ice.end',\n ICE_DISCONNECT: 'client.ice.disconnect',\n // Fired when the media engine reports receiving a new media stream. Media events MUST have the mediaType property.\n RECEIVING_MEDIA_START: 'client.media.rx.start',\n // Fired when the media engine reports the end of receiving a media stream.\n // Media events MUST have the mediaType property.\n RECEIVING_MEDIA_STOP: 'client.media.rx.stop',\n // Fired when the media engine reports sending a new media stream. Media events MUST have the mediaType property.\n SENDING_MEDIA_START: 'client.media.tx.start',\n // Fired when the media engine reports it stopped sending a media stream.\n // Media events MUST have the mediaType property.\n SENDING_MEDIA_STOP: 'client.media.tx.stop',\n MEDIA_RENDER_START: 'client.media.render.start',\n MEDIA_RENDER_STOP: 'client.media.render.stop',\n // static media event when outside of the normal scenario\n // call-analyzer assumes that a client is capable of receiving audio, video, and share\n // fired on change, or at beginning of a call\n // every media type is required, so must be indicated with boolean\n MEDIA_CAPABILITIES: 'client.media.capabilities',\n // Sent when the client notices that a media session has been lost\n MEDIA_RECONNECTING: 'client.media.reconnecting',\n // Sent when the client recovers a media session that was lost\n MEDIA_RECOVERED: 'client.media.recovered',\n CALL_ABORTED: 'client.call.aborted',\n // Fired when the \"please enter your PIN\" or similar prompt is displayed\n // to the user, to authenticate them into the meeting\n PIN_PROMPT: 'client.pin.prompt',\n // Fired when PIN entry has been completed\n PIN_COLLECTED: 'client.pin.collected',\n // Fired when the client displays the native lobby\n LOBBY_ENTERED: 'client.lobby.entered',\n // Fired when the client leaves the native lobby\n LOBBY_EXITED: 'client.lobby.exited',\n // Fired when the user of the client starts a share (e.g. click 'Share' button).\n // This should be sent from all clients that support sending a share.\n SHARE_INITIATED: 'client.share.initiated',\n // Fired when the user stops sharing (usually when they click the 'Stop' button for share)\n SHARE_STOPPED: 'client.share.stopped',\n // When the client receives a successful response from locus indicating that it has the floor for content sharing.\n LOCAL_SHARE_FLOOR_GRANTED: 'client.share.floor-granted.local',\n // Fired when the client changes its local UI/layout to a content sharing view,\n // because it is expecting to display share media.\n SHARE_LAYOUT_DISPLAYED: 'client.share.layout.displayed',\n // Fired when the user of the client starts a whiteboard share (e.g. click 'Share Live' button).\n WHITEBOARD_SHARE_INITIATED: 'client.whiteboard.share.initiated',\n // Fired when the meeting floor is released for whiteboard share\n WHITEBOARD_SHARE_STOPPED: 'client.whiteboard.share.stopped',\n // When the client receives a successful response from locus indicating that it has the floor for whiteboard sharing.\n WHITEBOARD_SHARE_FLOOR_GRANTED: 'client.whiteboard.share.floor-granted',\n MUTED: 'client.muted',\n UNMUTED: 'client.unmuted',\n LEAVE: 'client.call.leave',\n REMOTE_ENDED: 'client.call.remote-ended',\n REMOTE_STARTED: 'client.call.remote-started',\n MEDIA_REQUEST: 'client.locus.media.request',\n MEDIA_RESPONSE: 'client.locus.media.response',\n PSTN_AUDIO_ATTEMPT_START: 'client.pstnaudio.attempt.start',\n PSTN_AUDIO_ATTEMPT_FINISH: 'client.pstnaudio.attempt.finish',\n PSTN_AUDIO_ATTEMPT_SKIP: 'client.pstnaudio.attempt.skip'\n};\n\nexport const error = {\n name: {\n MEDIA_ENGINE: 'media-engine',\n ICE_FAILED: 'ice.failed',\n LOCUS_RESPONSE: 'locus.response',\n LOCUS_LEAVE: 'locus.leave'\n },\n\n notFatalErrorList: [3003, 3004, 4004, 4005, 4006, 4015],\n errors: {\n // https://sqbu-github.cisco.com/WebExSquared/event-dictionary/wiki/Error-codes-for-metric-events\n // [errorDescription, errorFailureType, errorCategory]\n 1000: [errorDescription.UNKNOWN_CALL_FAILURE, errorFailureType.CALL_INITIATION_FAILURE, errorCategory.SIGNALING],\n 1001: [errorDescription.LOCUS_RATE_LIMITED_INCOMING,\n errorFailureType.CALL_INITIATION_FAILURE,\n errorCategory.SIGNALING\n ],\n 1002: [errorDescription.LOCUS_RATE_LIMITED_OUTGOING,\n errorFailureType.CALL_INITIATION_FAILURE,\n errorCategory.SIGNALING\n ],\n 1003: [errorDescription.LOCUS_UNAVAILABLE, errorFailureType.CALL_INITIATION_FAILURE, errorCategory.SIGNALING],\n 1004: [errorDescription.LOCUS_CONFLICT, errorFailureType.CALL_INITIATION_FAILURE, errorCategory.SIGNALING],\n 1005: [errorDescription.TIMEOUT, errorFailureType.CALL_INITIATION_FAILURE, errorCategory.SIGNALING],\n 1006: [errorDescription.LOCUS_INVALID_SEQUENCE_HASH,\n errorFailureType.CALL_INITIATION_FAILURE,\n errorCategory.SIGNALING\n ],\n 1007: [errorDescription.UPDATE_MEDIA_FAILED, errorFailureType.CALL_INITIATION_FAILURE, errorCategory.SIGNALING],\n 2001: [errorDescription.FAILED_TO_CONNECT_MEDIA,\n errorFailureType.MEDIA_CONNECTION_FAILURE,\n errorCategory.SIGNALING\n ],\n 2002: [errorDescription.MEDIA_ENGINE_LOST, errorFailureType.MEDIA_CONNECTION_FAILURE, errorCategory.SIGNALING],\n 2003: [errorDescription.MEDIA_CONNECTION_LOST,\n errorFailureType.MEDIA_CONNECTION_FAILURE,\n errorCategory.SIGNALING\n ],\n 2004: [errorDescription.ICE_FAILURE, errorFailureType.MEDIA_CONNECTION_FAILURE, errorCategory.SIGNALING],\n 2005: [errorDescription.MEDIA_ENGINE_HANG, errorFailureType.MEDIA_CONNECTION_FAILURE, errorCategory.SIGNALING],\n 2006: [errorDescription.ICE_SERVER_REJECTED, errorFailureType.MEDIA_CONNECTION_FAILURE, errorCategory.SIGNALING],\n 3001: [errorDescription.CALL_FULL, errorFailureType.EXPECTED_FAILURE, errorCategory.EXPECTED],\n 3002: [errorDescription.ROOM_TOO_LARGE, errorFailureType.EXPECTED_FAILURE, errorCategory.EXPECTED],\n 3004: [errorDescription.GUEST_ALREADY_ADDED, errorFailureType.EXPECTED_FAILURE, errorCategory.EXPECTED],\n 3005: [errorDescription.LOCUS_USER_NOT_AUTHORISED, errorFailureType.EXPECTED_FAILURE, errorCategory.EXPECTED],\n 3006: [errorDescription.CLOUDBERRY_UNAVAILABLE, errorFailureType.EXPECTED_FAILURE, errorCategory.EXPECTED],\n 3007: [errorDescription.ROOM_TOO_LARGE_FREE_ACCOUNT, errorFailureType.EXPECTED_FAILURE, errorCategory.EXPECTED],\n 4001: [errorDescription.MEETING_INACTIVE, errorFailureType.CALL_INITIATION_FAILURE, errorCategory.EXPECTED],\n 4002: [errorDescription.MEETING_LOCKED, errorFailureType.CALL_INITIATION_FAILURE, errorCategory.EXPECTED],\n 4003: [errorDescription.MEETING_TERMINATING, errorFailureType.CALL_INITIATION_FAILURE, errorCategory.EXPECTED],\n 4004: [errorDescription.MODERATOR_PIN_OR_GUEST_REQUIRED, errorFailureType.ACCESS_RIGHTS, errorCategory.EXPECTED],\n 4005: [errorDescription.MODERATOR_PIN_OR_GUEST_PIN_REQUIRED,\n errorFailureType.ACCESS_RIGHTS,\n errorCategory.EXPECTED\n ],\n 4006: [errorDescription.MODERATOR_REQUIRED, errorFailureType.ACCESS_RIGHTS, errorCategory.EXPECTED],\n 4007: [errorDescription.USER_NOT_MEMBER_OF_ROOM, errorFailureType.ACCESS_RIGHTS, errorCategory.EXPECTED],\n 4008: [errorDescription.NEW_LOCUS_ERROR, errorFailureType.CALL_INITIATION_FAILURE, errorCategory.EXPECTED],\n 4009: [errorDescription.NET_WORK_UNAVAILABLE, errorFailureType.CALL_INITIATION_FAILURE, errorCategory.EXPECTED],\n 4010: [errorDescription.MEETING_UNAVAILABLE, errorFailureType.CALL_INITIATION_FAILURE, errorCategory.EXPECTED],\n 4011: [errorDescription.MEETING_ID_INVALID, errorFailureType.EXPECTED_FAILURE, errorCategory.EXPECTED],\n 4012: [errorDescription.MEETING_SITE_INVALID, errorFailureType.EXPECTED_FAILURE, errorCategory.EXPECTED],\n 4013: [errorDescription.LOCUS_INVALID_JOINTIME, errorFailureType.EXPECTED_FAILURE, errorCategory.EXPECTED],\n 4014: [errorDescription.LOBBY_EXPIRED, errorFailureType.EXPECTED_FAILURE, errorCategory.EXPECTED],\n 4015: [errorDescription.MEDIA_CONNECTION_LOST_PAIRED,\n errorFailureType.MEDIA_CONNECTION_FAILURE,\n errorCategory.EXPECTED\n ],\n 4016: [errorDescription.PHONE_NUMBER_NOT_A_NUMBER, errorFailureType.EXPECTED_FAILURE, errorCategory.EXPECTED],\n 4017: [errorDescription.PHONE_NUMBER_TOO_LONG, errorFailureType.EXPECTED_FAILURE, errorCategory.EXPECTED],\n 4018: [errorDescription.INVALID_DIALABLE_KEY, errorFailureType.EXPECTED_FAILURE, errorCategory.EXPECTED],\n 4019: [errorDescription.ONE_ON_ONE_TO_SELF_NOT_ALLOWED,\n errorFailureType.EXPECTED_FAILURE,\n errorCategory.EXPECTED\n ],\n 4020: [errorDescription.REMOVED_PARTICIPANT, errorFailureType.EXPECTED_FAILURE, errorCategory.EXPECTED],\n 4021: [errorDescription.MEETING_LINK_NOT_FOUND, errorFailureType.EXPECTED_FAILURE, errorCategory.EXPECTED],\n 4022: [errorDescription.PHONE_NUMBER_TOO_SHORT_AFTER_IDD,\n errorFailureType.EXPECTED_FAILURE,\n errorCategory.EXPECTED\n ],\n 4023: [errorDescription.INVALID_INVITEE_ADDRESS, errorFailureType.EXPECTED_FAILURE, errorCategory.EXPECTED],\n 4024: [errorDescription.PMR_USER_ACCOUNT_LOCKED_OUT, errorFailureType.EXPECTED_FAILURE, errorCategory.EXPECTED],\n 4025: [errorDescription.GUEST_FORBIDDEN, errorFailureType.EXPECTED_FAILURE, errorCategory.EXPECTED],\n 4026: [errorDescription.PMR_ACCOUNT_SUSPENDED, errorFailureType.EXPECTED_FAILURE, errorCategory.EXPECTED],\n 4027: [errorDescription.EMPTY_PHONE_NUMBER_OR_COUNTRY_CODE,\n errorFailureType.EXPECTED_FAILURE,\n errorCategory.EXPECTED\n ],\n 4028: [errorDescription.CONVERSATION_NOT_FOUND, errorFailureType.EXPECTED_FAILURE, errorCategory.EXPECTED],\n 4029: [errorDescription.START_RECORDING_FAILED, errorFailureType.EXPECTED_FAILURE, errorCategory.EXPECTED],\n 4030: [errorDescription.RECORDING_IN_PROGRESS_FAILED, errorFailureType.EXPECTED_FAILURE, errorCategory.EXPECTED],\n 5000: [errorDescription.SIP_CALLEE_BUSY, errorFailureType.EXPECTED_FAILURE, errorCategory.EXPECTED],\n 5001: [errorDescription.SIP_CALLEE_NOT_FOUND, errorFailureType.EXPECTED_FAILURE, errorCategory.EXPECTED]\n }\n};\n\nexport const trigger = {\n USER_INTERACTION: 'user-interaction',\n MERCURY_EVENT: 'mercury-event',\n LOCI_UPDATE: 'loci-update',\n MEDIA_ENGINE_EVENT: 'media-engine-event',\n TIMEOUT: 'timeout',\n SIGNALING: 'signaling',\n OTHER: 'other'\n};\n\nexport const pstnAudioType = {\n DIAL_IN: 'dial-in',\n DIAL_OUT: 'dial-out'\n};\n\nexport const displayLocation = {\n TOAST: 'toast',\n ROOM_LIST: 'room-list',\n CALL_PANE: 'call-pane',\n CALL_VIEW: 'call-view',\n OTHER: 'other'\n};\n\nexport const mediaType = {\n AUDIO: 'audio',\n VIDEO: 'video',\n SHARE: 'share',\n WHITEBOARD: 'whiteboard'\n};\n\nexport const reconnection = {\n RECOVERED_BY_NEW: 'new', // always set to new due to /media request, no retries with ice restart\n RECOVERED_BY_RETRY: 'retry'\n};\n\n\nexport const errorCodes = {\n // ordered by error code values\n USER_CREATE_FAILED: 1400006,\n USER_ALREADY_PARTICIPANT: 1403001,\n CONVO_ALREADY_EXISTS: 1403010,\n ALREADY_ANNOUNCEMENT_SPACE: 1403014,\n NOT_ANNOUNCEMENT_SPACE: 1403015,\n USER_NOT_MODERATOR_IN_ANNOUNCEMENT_SPACE: 1403016,\n TEMP_ID_ALREADY_EXISTS: 1409001,\n PARENT_ACTIVITY_ID_NOT_FOUND_OR_INVALID: 14000015\n};\nexport const statusCodes = {\n // ordered by status codes\n NETWORK_OR_CORS: 0,\n BAD_REQUEST: 400,\n FORBIDDEN: 403,\n NOT_FOUND: 404,\n CONFLICT: 409\n};\n\nexport const errorObjects = {\n category: {\n media: 'media',\n expected: 'expected'\n },\n name: {\n mediaEngine: 'media-engine'\n }\n};\n\nexport const UNKNOWN = 'unknown';\n\nexport const OS_NAME = {\n WINDOWS: 'windows',\n MAC: 'mac',\n IOS: 'ios',\n ANDROID: 'android',\n CHROME: 'chrome',\n LINUX: 'linux',\n OTHERS: 'other'\n};\n\nexport const CLIENT_NAME = 'webex-js-sdk';\nexport const PLATFORM = 'Web';\n"]}
@@ -601,11 +601,11 @@ var Metrics = /*#__PURE__*/function () {
601
601
  return _util.default.format('webex-js-sdk/%s', "".concat(process.env.NODE_ENV, "-").concat(this.webex.version));
602
602
  }
603
603
  /**
604
- * Uploads given metric to the Metrics service as an operational metric.
604
+ * Uploads given metric to the Metrics service as an Behavioral metric.
605
605
  * Metadata about the environment such as browser, OS, SDK and their versions
606
606
  * are automatically added when the metric is sent.
607
607
  *
608
- * The Metrics service will send an operational metric to InfluxDB for
608
+ * The Metrics service will send an Behavioral metric to InfluxDB for
609
609
  * aggregation.
610
610
  * See https://confluence-eng-gpk2.cisco.com/conf/display/WBXT/Getting+started+with+Metrics+Service.
611
611
  *
@@ -617,33 +617,47 @@ var Metrics = /*#__PURE__*/function () {
617
617
  */
618
618
 
619
619
  }, {
620
- key: "sendOperationalMetric",
621
- value: function sendOperationalMetric(metricName) {
620
+ key: "sendBehavioralMetric",
621
+ value: function sendBehavioralMetric(metricName) {
622
622
  var metricFields = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
623
623
  var metricTags = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
624
624
 
625
625
  var fields = _objectSpread(_objectSpread({}, metricFields), {}, {
626
626
  browser_version: getBrowserVersion(),
627
627
  os_version: getOSVersion(),
628
- sdk_version: this.webex.version
628
+ sdk_version: this.webex.version,
629
+ platform: _config.PLATFORM
629
630
  });
630
631
 
632
+ var context = {
633
+ app: {
634
+ version: this.webex.version
635
+ },
636
+ locale: 'en-US',
637
+ os: {
638
+ name: getOSName(),
639
+ version: getOSVersion()
640
+ }
641
+ };
642
+
631
643
  var tags = _objectSpread(_objectSpread({}, metricTags), {}, {
632
644
  browser: getBrowserName(),
633
645
  org_id: this.webex.credentials.getOrgId(),
634
646
  os: getOSName(),
635
647
  domain: _window.default.location.hostname,
636
- client_id: this.webex.credentials.config.client_id
648
+ client_id: this.webex.credentials.config.client_id,
649
+ user_id: this.webex.internal.device.userId
637
650
  });
638
651
 
639
652
  if (!metricName) {
640
- throw Error('Missing operational metric name. Please provide one');
653
+ throw Error('Missing behavioral metric name. Please provide one');
641
654
  }
642
655
 
643
656
  this.webex.internal.metrics.submitClientMetrics(metricName, {
644
- type: ['operational'],
657
+ type: ['behavioral', 'operational'],
645
658
  fields: fields,
646
- tags: tags
659
+ tags: tags,
660
+ context: context
647
661
  });
648
662
  }
649
663
  }]);
@@ -1 +1 @@
1
- {"version":3,"sources":["index.js"],"names":["OSMap","OS_NAME","chrome","macOS","MAC","Windows","WINDOWS","iOS","IOS","Android","ANDROID","Linux","LINUX","getOSName","getOSVersion","getBrowserName","getBrowserVersion","anonymizeIPAddress","localIp","triggerTimers","event","meeting","data","eventType","CALL_INITIATED","setStartCallInitiateJoinReq","LOCUS_JOIN_REQUEST","setEndCallInitiateJoinReq","setStartJoinReqResp","LOCUS_JOIN_RESPONSE","setEndJoinReqResp","setStartSetupDelay","mediaType","AUDIO","VIDEO","setStartSendingMediaDelay","RECEIVING_MEDIA_START","setEndSetupDelay","SENDING_MEDIA_START","setEndSendingMediaDelay","LOCAL_SDP_GENERATED","setStartLocalSDPGenRemoteSDPRecvDelay","REMOTE_SDP_RECEIVED","setEndLocalSDPGenRemoteSDPRecvDelay","Metrics","instance","_events","meetingCollection","keys","webex","options","meetingId","indexOf","LoggerProxy","logger","error","get","callEvents","MEDIA_QUALITY","sendMediaQualityAnalyzerMetrics","push","sendCallAnalyzerMetrics","info","identifiers","payload","eventId","uuid","v4","version","origin","name","networkType","userAgent","userAgentToString","clientInfo","clientType","clientVersion","CLIENT_NAME","localNetworkPrefix","meetings","geoHintInfo","clientAddress","osVersion","subClientType","os","getOsName","browser","browserVersion","originTime","triggered","Date","toISOString","senderCountryCode","countryCode","canProceed","eventData","webClientDomain","window","location","hostname","Object","prototype","hasOwnProperty","call","errors","trigger","pstnAudioType","mediaCapabilities","recoveredBy","joinTimes","OTHERS","audioSetupDelay","videoSetupDelay","UNKNOWN","intervals","intervalData","sourceMetadata","applicationSoftwareType","applicationSoftwareVersion","mediaEngineSoftwareType","mediaEngineSoftwareVersion","startTime","err","showToUser","errorCode","body","ERROR_CODE","MEETING_ERRORS","FREE_USER_MAX_PARTICIPANTS_EXCEEDED","PAID_USER_MAX_PARTICIPANTS_EXCEEDED","SERVICE_MAX_PARTICIPANTS_EXCEEDED","INACTIVE","EXCEEDED_MAX_JOINED_PARTICIPANTS","EXCEEDED_SERVICE_MAX_PARTICIPANTS","MEETING_IS_LOCKED","MEETING_IS_TERMINATING","MEETING_REQUIRE_MODERATOR_PIN_INTENT","MEETING_REQUIRE_MODERATOR_PIN","MEETING_REQUIRE_MODERATOR_ROLE","JOIN_RESTRICTED_USER","GET_RESTRICTED_USER","CREATE_MEDIA_RESTRICTED_USER","JOIN_RESTRICTED_USER_NOT_IN_ROOM","MEETING_NOT_FOUND","NOT_WEBEX_SITE","INVALID_JOIN_TIME","PHONE_NUMBER_NOT_A_NUMBER","PHONE_NUMBER_TOO_LONG","INVALID_DIALABLE_KEY","ONE_ON_ONE_TO_SELF_NOT_ALLOWED","REMOVED_PARTICIPANT","MEETING_LINK_NOT_FOUND","PHONE_NUMBER_TOO_SHORT_AFTER_IDD","INVALID_INVITEE_ADDRESS","PMR_ACCOUNT_LOCKED","RESOURCE_GUEST_FORBIDDEN","PMR_ACCOUNT_SUSPENDED","EMPTY_PHONE_NUMBER_OR_COUNTRY_CODE","INVALID_SINCE_OR_SEQUENCE_HASH_IN_REQUEST","CONVERSATION_NOT_FOUND","RECORDING_CONTROL_NOT_SUPPORTED","RECORDING_NOT_STARTED","RECORDING_NOT_ENABLED","generateErrorPayload","LOCUS_RESPONSE","shownToUser","errorPayload","category","errorDescription","fatal","notFatalErrorList","OTHER","errorData","userAgentOption","browserInfo","util","format","metrics","clientName","toLowerCase","split","osInfo","process","env","NODE_ENV","metricName","metricFields","metricTags","fields","browser_version","os_version","sdk_version","tags","org_id","credentials","getOrgId","domain","client_id","config","Error","internal","submitClientMetrics","type"],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\nimport util from 'util';\n\nimport {includes} from 'lodash';\nimport uuid from 'uuid';\nimport window from 'global/window';\nimport anonymize from 'ip-anonymize';\n\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport {MEETING_ERRORS} from '../constants';\nimport BrowserDetection from '../common/browser-detection';\n\nimport {\n error, eventType, errorCodes as ERROR_CODE, OS_NAME, UNKNOWN, CLIENT_NAME,\n mediaType\n} from './config';\n\nconst OSMap = {\n 'Chrome OS': OS_NAME.chrome,\n macOS: OS_NAME.MAC,\n Windows: OS_NAME.WINDOWS,\n iOS: OS_NAME.IOS,\n Android: OS_NAME.ANDROID,\n Linux: OS_NAME.LINUX\n};\n\nconst {\n getOSName,\n getOSVersion,\n getBrowserName,\n getBrowserVersion\n} = BrowserDetection();\n\n// Apply a CIDR /28 format to the IP address\nconst anonymizeIPAddress = (localIp) => anonymize(localIp);\n\nconst triggerTimers = ({event, meeting, data}) => {\n switch (event) {\n case eventType.CALL_INITIATED:\n meeting.setStartCallInitiateJoinReq();\n break;\n case eventType.LOCUS_JOIN_REQUEST:\n meeting.setEndCallInitiateJoinReq();\n meeting.setStartJoinReqResp();\n break;\n case eventType.LOCUS_JOIN_RESPONSE:\n meeting.setEndJoinReqResp();\n meeting.setStartSetupDelay(mediaType.AUDIO);\n meeting.setStartSetupDelay(mediaType.VIDEO);\n meeting.setStartSendingMediaDelay(mediaType.AUDIO);\n meeting.setStartSendingMediaDelay(mediaType.VIDEO);\n break;\n case eventType.RECEIVING_MEDIA_START:\n meeting.setEndSetupDelay(data.mediaType);\n break;\n case eventType.SENDING_MEDIA_START:\n meeting.setEndSendingMediaDelay(data.mediaType);\n break;\n case eventType.LOCAL_SDP_GENERATED:\n meeting.setStartLocalSDPGenRemoteSDPRecvDelay();\n break;\n case eventType.REMOTE_SDP_RECEIVED:\n meeting.setEndLocalSDPGenRemoteSDPRecvDelay();\n break;\n default:\n break;\n }\n};\n\n/**\n * @description Metrics handles all the call metrics events\n * @export\n * @class Metrics\n */\nclass Metrics {\n /**\n * Create Metrics Object\n * @constructor\n * @public\n * @memberof Meetings\n */\n constructor() {\n if (!Metrics.instance) {\n /**\n * @instance\n * @type {Array}\n * @private\n * @memberof Metrics\n */\n this._events = [];\n /**\n * @instance\n * @type {MeetingCollection}\n * @private\n * @memberof Metrics\n */\n this.meetingCollection = null;\n /**\n * @instance\n * @type {MeetingCollection}\n * @private\n * @memberof Metrics\n */\n this.keys = Object.values(eventType);\n /**\n * @instance\n * @type {Metrics}\n * @private\n * @memberof Metrics\n */\n Metrics.instance = this;\n }\n\n return Metrics.instance;\n }\n\n /**\n * Initializes the Metrics singleton with a meeting Collection.\n *\n * @param {Object} meetingCollection meetings object\n * @param {Object} webex webex SDK object\n *\n * @returns {void}\n */\n initialSetup(meetingCollection, webex) {\n this.meetingCollection = meetingCollection;\n this.webex = webex;\n }\n\n /**\n * poste Meeting event metrics\n * @param {object} options {meetingId/meeting} as a json object\n * @param {Meeting} options.meeting Meeting object\n * @param {String} options.meetingId\n * @param {object} options.data\n * @param {object} options.event\n * @returns {object} null\n */\n postEvent(options) {\n const {meetingId, data = {}, event} = options;\n let {meeting} = options;\n\n if (this.keys.indexOf(event) === -1) {\n LoggerProxy.logger.error(`Metrics:index#postEvent --> Event ${event} doesn't exist in dictionary`);\n }\n\n if (!meeting && meetingId) {\n meeting = this.meetingCollection.get(meetingId);\n options.meeting = meeting;\n }\n\n if (meeting) {\n triggerTimers(options);\n\n if (!meeting.callEvents) {\n meeting.callEvents = [];\n }\n if (event === eventType.MEDIA_QUALITY) {\n data.event = event;\n meeting.sendMediaQualityAnalyzerMetrics(data);\n }\n else {\n meeting.callEvents.push(event);\n data.event = event;\n meeting.sendCallAnalyzerMetrics(data);\n }\n }\n\n else {\n LoggerProxy.logger.info(`Metrics:index#postEvent --> Event received for meetingId:${meetingId}, but meeting not found in collection.`);\n }\n }\n\n /**\n * Docs for Call analyzer metrics\n * https://sqbu-github.cisco.com/WebExSquared/call-analyzer/wiki\n * https://sqbu-github.cisco.com/WebExSquared/event-dictionary/blob/master/diagnostic-events.raml\n */\n\n initPayload(eventType, identifiers, options) {\n const payload = {\n eventId: uuid.v4(),\n version: 1,\n origin: {\n name: 'endpoint',\n networkType: 'unknown',\n userAgent: this.userAgentToString(),\n clientInfo: {\n clientType: options.clientType,\n clientVersion: `${CLIENT_NAME}/${this.webex.version}`,\n localNetworkPrefix: anonymizeIPAddress(this.webex.meetings.geoHintInfo?.clientAddress),\n osVersion: getOSVersion() || 'unknown',\n subClientType: options.subClientType,\n os: this.getOsName(),\n browser: getBrowserName(),\n browserVersion: getBrowserVersion()\n }\n },\n originTime: {\n triggered: new Date().toISOString()\n },\n senderCountryCode: this.webex.meetings.geoHintInfo?.countryCode,\n event: {\n name: eventType,\n canProceed: true,\n identifiers,\n eventData: {webClientDomain: window.location.hostname}\n }\n };\n\n // TODO: more options should be checked and some of them should be mandatory in certain conditions\n if (options) {\n if (Object.prototype.hasOwnProperty.call(options, 'canProceed')) {\n payload.event.canProceed = options.canProceed;\n }\n if (options.errors) {\n payload.event.errors = options.errors;\n }\n if (options.mediaType) {\n payload.event.mediaType = options.mediaType;\n }\n if (options.trigger) {\n payload.event.trigger = options.trigger;\n }\n if (options.pstnAudioType) {\n payload.event.pstnAudioType = options.pstnAudioType;\n }\n if (options.mediaCapabilities) {\n payload.event.mediaCapabilities = options.mediaCapabilities;\n }\n if (options.recoveredBy) {\n payload.event.recoveredBy = options.recoveredBy;\n }\n if (options.joinTimes) {\n payload.event.joinTimes = options.joinTimes;\n }\n }\n\n return payload;\n }\n\n /**\n * returns metrics friendly OS versions\n * @param {String} osName Os name\n * @returns {String}\n * @private\n * @memberof Metrics\n */\n getOsName() {\n return OSMap[getOSName()] ?? OS_NAME.OTHERS;\n }\n\n /**\n * get the payload specific for a media quality event through call analyzer\n * @param {String} eventType the event name\n * @param {Object} identifiers contains the identifiers needed for CA\n * @param {String} identifiers.correlationId\n * @param {String} identifiers.locusUrl\n * @param {String} identifiers.locusId\n * @param {Object} options\n * @param {Object} options.intervalData\n * @param {String} options.clientType\n * @returns {Object}\n * @public\n * @memberof Metrics\n */\n initMediaPayload(eventType, identifiers, options = {}) {\n const {audioSetupDelay, videoSetupDelay, joinTimes} = options;\n\n const payload = {\n eventId: uuid.v4(),\n version: 1,\n origin: {\n audioSetupDelay,\n videoSetupDelay,\n name: 'endpoint',\n networkType: options.networkType || UNKNOWN,\n userAgent: this.userAgentToString(),\n clientInfo: {\n clientType: options.clientType, // TODO: Only clientType: 'TEAMS_CLIENT' is whitelisted\n clientVersion: `${CLIENT_NAME}/${this.webex.version}`,\n localNetworkPrefix: anonymizeIPAddress(this.webex.meetings.geoHintInfo?.clientAddress),\n os: this.getOsName(),\n osVersion: getOSVersion() || UNKNOWN,\n subClientType: options.subClientType,\n browser: getBrowserName(),\n browserVersion: getBrowserVersion()\n }\n },\n originTime: {\n triggered: new Date().toISOString()\n },\n senderCountryCode: this.webex.meetings.geoHintInfo?.countryCode,\n event: {\n name: eventType,\n canProceed: true,\n identifiers,\n intervals: [options.intervalData],\n joinTimes,\n eventData: {\n webClientDomain: window.location.hostname\n },\n sourceMetadata: {\n applicationSoftwareType: CLIENT_NAME,\n applicationSoftwareVersion: this.webex.version,\n mediaEngineSoftwareType: getBrowserName() || 'browser',\n mediaEngineSoftwareVersion: getOSVersion() || UNKNOWN,\n startTime: new Date().toISOString()\n }\n }\n };\n\n return payload;\n }\n\n /**\n * This function Parses a Locus error and returns a diagnostic event payload.\n * It should keep updating from:\n * https://sqbu-github.cisco.com/WebExSquared/spark-client-framework/blob/master/spark-client-framework/Adapters/TelephonyAdapter/TelephonyAdapter.cpp#L920\n *\n * @param {Object} err the error Object from Locus response\n * @param {boolean} showToUser true if a toast is shown to user\n * @returns {{showToUser: boolean, category: string, errorDescription: string,\n * errorCode: number, errorData: *, fatal: boolean, name: string}}\n */\n parseLocusError(err, showToUser) {\n let errorCode;\n\n if (err && err.body && err.body.errorCode) {\n switch (ERROR_CODE[err.body.errorCode]) {\n case MEETING_ERRORS.FREE_USER_MAX_PARTICIPANTS_EXCEEDED:\n errorCode = 3007;\n break;\n case MEETING_ERRORS.PAID_USER_MAX_PARTICIPANTS_EXCEEDED:\n case MEETING_ERRORS.SERVICE_MAX_PARTICIPANTS_EXCEEDED:\n errorCode = 3002;\n break;\n case MEETING_ERRORS.INACTIVE:\n errorCode = 4001;\n break;\n case MEETING_ERRORS.EXCEEDED_MAX_JOINED_PARTICIPANTS:\n case MEETING_ERRORS.EXCEEDED_SERVICE_MAX_PARTICIPANTS:\n errorCode = 3001;\n break;\n case MEETING_ERRORS.MEETING_IS_LOCKED:\n errorCode = 4002;\n break;\n case MEETING_ERRORS.MEETING_IS_TERMINATING:\n errorCode = 4003;\n break;\n case MEETING_ERRORS.MEETING_REQUIRE_MODERATOR_PIN_INTENT:\n errorCode = 4004;\n break;\n case MEETING_ERRORS.MEETING_REQUIRE_MODERATOR_PIN:\n errorCode = 4005;\n break;\n case MEETING_ERRORS.MEETING_REQUIRE_MODERATOR_ROLE:\n errorCode = 4006;\n break;\n case MEETING_ERRORS.JOIN_RESTRICTED_USER:\n case MEETING_ERRORS.GET_RESTRICTED_USER:\n case MEETING_ERRORS.CREATE_MEDIA_RESTRICTED_USER:\n errorCode = 3005;\n break;\n case MEETING_ERRORS.JOIN_RESTRICTED_USER_NOT_IN_ROOM:\n errorCode = 4007;\n break;\n case MEETING_ERRORS.MEETING_NOT_FOUND:\n errorCode = 4011;\n break;\n case MEETING_ERRORS.NOT_WEBEX_SITE:\n errorCode = 4012;\n break;\n case MEETING_ERRORS.INVALID_JOIN_TIME:\n errorCode = 4013;\n break;\n case MEETING_ERRORS.PHONE_NUMBER_NOT_A_NUMBER:\n errorCode = 4016;\n break;\n case MEETING_ERRORS.PHONE_NUMBER_TOO_LONG:\n errorCode = 4017;\n break;\n case MEETING_ERRORS.INVALID_DIALABLE_KEY:\n errorCode = 4018;\n break;\n case MEETING_ERRORS.ONE_ON_ONE_TO_SELF_NOT_ALLOWED:\n errorCode = 4019;\n break;\n case MEETING_ERRORS.REMOVED_PARTICIPANT:\n errorCode = 4020;\n break;\n case MEETING_ERRORS.MEETING_LINK_NOT_FOUND:\n errorCode = 4021;\n break;\n case MEETING_ERRORS.PHONE_NUMBER_TOO_SHORT_AFTER_IDD:\n errorCode = 4022;\n break;\n case MEETING_ERRORS.INVALID_INVITEE_ADDRESS:\n errorCode = 4023;\n break;\n case MEETING_ERRORS.PMR_ACCOUNT_LOCKED:\n errorCode = 4024;\n break;\n case MEETING_ERRORS.RESOURCE_GUEST_FORBIDDEN:\n errorCode = 4025;\n break;\n case MEETING_ERRORS.PMR_ACCOUNT_SUSPENDED:\n errorCode = 4026;\n break;\n case MEETING_ERRORS.EMPTY_PHONE_NUMBER_OR_COUNTRY_CODE:\n errorCode = 4027;\n break;\n case MEETING_ERRORS.INVALID_SINCE_OR_SEQUENCE_HASH_IN_REQUEST:\n errorCode = 1006;\n break;\n case MEETING_ERRORS.CONVERSATION_NOT_FOUND:\n errorCode = 4028;\n break;\n case MEETING_ERRORS.RECORDING_CONTROL_NOT_SUPPORTED:\n case MEETING_ERRORS.RECORDING_NOT_STARTED:\n case MEETING_ERRORS.RECORDING_NOT_ENABLED:\n errorCode = 4029;\n break;\n default:\n errorCode = 4008;\n }\n }\n else {\n errorCode = 4008;\n }\n\n return this.generateErrorPayload(\n errorCode, showToUser, error.name.LOCUS_RESPONSE, err\n );\n }\n\n\n generateErrorPayload(errorCode, shownToUser, name, err) {\n if (error.errors[errorCode]) {\n const errorPayload = {\n shownToUser: shownToUser || false,\n category: error.errors[errorCode][2],\n errorDescription: error.errors[errorCode][0],\n errorCode,\n fatal: !includes(error.notFatalErrorList, errorCode),\n name: name || error.name.OTHER\n };\n\n if (err && err.body) {\n errorPayload.errorData = err.body;\n }\n\n return errorPayload;\n }\n\n return null;\n }\n\n /**\n * Returns a formated string of the user agent.\n *\n * @returns {string} formatted user agent information\n */\n userAgentToString() {\n let userAgentOption;\n let browserInfo;\n const clientInfo = util.format('client=%s', `${this.webex.meetings?.metrics?.clientName}`);\n\n if (['chrome', 'firefox', 'msie', 'msedge', 'safari'].indexOf(getBrowserName().toLowerCase()) !== -1) {\n browserInfo = util.format('browser=%s', `${getBrowserName().toLowerCase()}/${getBrowserVersion().split('.')[0]}`);\n }\n const osInfo = util.format('os=%s', `${getOSName()}/${getOSVersion().split('.')[0]}`);\n\n if (browserInfo) {\n userAgentOption = `(${browserInfo}`;\n }\n if (osInfo) {\n userAgentOption = userAgentOption ? `${userAgentOption}; ${clientInfo}; ${osInfo}` : `${clientInfo}; (${osInfo}`;\n }\n if (userAgentOption) {\n userAgentOption += ')';\n\n return util.format('webex-js-sdk/%s %s', `${process.env.NODE_ENV}-${this.webex.version}`, userAgentOption);\n }\n\n return util.format('webex-js-sdk/%s', `${process.env.NODE_ENV}-${this.webex.version}`);\n }\n\n /**\n * Uploads given metric to the Metrics service as an operational metric.\n * Metadata about the environment such as browser, OS, SDK and their versions\n * are automatically added when the metric is sent.\n *\n * The Metrics service will send an operational metric to InfluxDB for\n * aggregation.\n * See https://confluence-eng-gpk2.cisco.com/conf/display/WBXT/Getting+started+with+Metrics+Service.\n *\n * @param {string} metricName Name of the metric (measurement) to send\n * @param {Object} metricFields Key-valye pairs of data or values about this metric\n * @param {Object} metricTags Key-value pairs of metric metadata\n *\n * @returns {void}\n */\n sendOperationalMetric(metricName, metricFields = {}, metricTags = {}) {\n const fields = {\n ...metricFields,\n browser_version: getBrowserVersion(),\n os_version: getOSVersion(),\n sdk_version: this.webex.version\n };\n\n const tags = {\n ...metricTags,\n browser: getBrowserName(),\n org_id: this.webex.credentials.getOrgId(),\n os: getOSName(),\n domain: window.location.hostname,\n client_id: this.webex.credentials.config.client_id\n };\n\n if (!metricName) {\n throw Error('Missing operational metric name. Please provide one');\n }\n\n this.webex.internal.metrics.submitClientMetrics(metricName, {\n type: ['operational'],\n fields,\n tags\n });\n }\n}\n\n// Export Metrics singleton ---------------------------------------------------\nconst instance = new Metrics();\n\nexport default instance;\n"]}
1
+ {"version":3,"sources":["index.js"],"names":["OSMap","OS_NAME","chrome","macOS","MAC","Windows","WINDOWS","iOS","IOS","Android","ANDROID","Linux","LINUX","getOSName","getOSVersion","getBrowserName","getBrowserVersion","anonymizeIPAddress","localIp","triggerTimers","event","meeting","data","eventType","CALL_INITIATED","setStartCallInitiateJoinReq","LOCUS_JOIN_REQUEST","setEndCallInitiateJoinReq","setStartJoinReqResp","LOCUS_JOIN_RESPONSE","setEndJoinReqResp","setStartSetupDelay","mediaType","AUDIO","VIDEO","setStartSendingMediaDelay","RECEIVING_MEDIA_START","setEndSetupDelay","SENDING_MEDIA_START","setEndSendingMediaDelay","LOCAL_SDP_GENERATED","setStartLocalSDPGenRemoteSDPRecvDelay","REMOTE_SDP_RECEIVED","setEndLocalSDPGenRemoteSDPRecvDelay","Metrics","instance","_events","meetingCollection","keys","webex","options","meetingId","indexOf","LoggerProxy","logger","error","get","callEvents","MEDIA_QUALITY","sendMediaQualityAnalyzerMetrics","push","sendCallAnalyzerMetrics","info","identifiers","payload","eventId","uuid","v4","version","origin","name","networkType","userAgent","userAgentToString","clientInfo","clientType","clientVersion","CLIENT_NAME","localNetworkPrefix","meetings","geoHintInfo","clientAddress","osVersion","subClientType","os","getOsName","browser","browserVersion","originTime","triggered","Date","toISOString","senderCountryCode","countryCode","canProceed","eventData","webClientDomain","window","location","hostname","Object","prototype","hasOwnProperty","call","errors","trigger","pstnAudioType","mediaCapabilities","recoveredBy","joinTimes","OTHERS","audioSetupDelay","videoSetupDelay","UNKNOWN","intervals","intervalData","sourceMetadata","applicationSoftwareType","applicationSoftwareVersion","mediaEngineSoftwareType","mediaEngineSoftwareVersion","startTime","err","showToUser","errorCode","body","ERROR_CODE","MEETING_ERRORS","FREE_USER_MAX_PARTICIPANTS_EXCEEDED","PAID_USER_MAX_PARTICIPANTS_EXCEEDED","SERVICE_MAX_PARTICIPANTS_EXCEEDED","INACTIVE","EXCEEDED_MAX_JOINED_PARTICIPANTS","EXCEEDED_SERVICE_MAX_PARTICIPANTS","MEETING_IS_LOCKED","MEETING_IS_TERMINATING","MEETING_REQUIRE_MODERATOR_PIN_INTENT","MEETING_REQUIRE_MODERATOR_PIN","MEETING_REQUIRE_MODERATOR_ROLE","JOIN_RESTRICTED_USER","GET_RESTRICTED_USER","CREATE_MEDIA_RESTRICTED_USER","JOIN_RESTRICTED_USER_NOT_IN_ROOM","MEETING_NOT_FOUND","NOT_WEBEX_SITE","INVALID_JOIN_TIME","PHONE_NUMBER_NOT_A_NUMBER","PHONE_NUMBER_TOO_LONG","INVALID_DIALABLE_KEY","ONE_ON_ONE_TO_SELF_NOT_ALLOWED","REMOVED_PARTICIPANT","MEETING_LINK_NOT_FOUND","PHONE_NUMBER_TOO_SHORT_AFTER_IDD","INVALID_INVITEE_ADDRESS","PMR_ACCOUNT_LOCKED","RESOURCE_GUEST_FORBIDDEN","PMR_ACCOUNT_SUSPENDED","EMPTY_PHONE_NUMBER_OR_COUNTRY_CODE","INVALID_SINCE_OR_SEQUENCE_HASH_IN_REQUEST","CONVERSATION_NOT_FOUND","RECORDING_CONTROL_NOT_SUPPORTED","RECORDING_NOT_STARTED","RECORDING_NOT_ENABLED","generateErrorPayload","LOCUS_RESPONSE","shownToUser","errorPayload","category","errorDescription","fatal","notFatalErrorList","OTHER","errorData","userAgentOption","browserInfo","util","format","metrics","clientName","toLowerCase","split","osInfo","process","env","NODE_ENV","metricName","metricFields","metricTags","fields","browser_version","os_version","sdk_version","platform","PLATFORM","context","app","locale","tags","org_id","credentials","getOrgId","domain","client_id","config","user_id","internal","device","userId","Error","submitClientMetrics","type"],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\nimport util from 'util';\n\nimport {includes} from 'lodash';\nimport uuid from 'uuid';\nimport window from 'global/window';\nimport anonymize from 'ip-anonymize';\n\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport {MEETING_ERRORS} from '../constants';\nimport BrowserDetection from '../common/browser-detection';\n\nimport {\n error, eventType, errorCodes as ERROR_CODE, OS_NAME, UNKNOWN, CLIENT_NAME,\n mediaType, PLATFORM\n} from './config';\n\nconst OSMap = {\n 'Chrome OS': OS_NAME.chrome,\n macOS: OS_NAME.MAC,\n Windows: OS_NAME.WINDOWS,\n iOS: OS_NAME.IOS,\n Android: OS_NAME.ANDROID,\n Linux: OS_NAME.LINUX\n};\n\nconst {\n getOSName,\n getOSVersion,\n getBrowserName,\n getBrowserVersion\n} = BrowserDetection();\n\n// Apply a CIDR /28 format to the IP address\nconst anonymizeIPAddress = (localIp) => anonymize(localIp);\n\nconst triggerTimers = ({event, meeting, data}) => {\n switch (event) {\n case eventType.CALL_INITIATED:\n meeting.setStartCallInitiateJoinReq();\n break;\n case eventType.LOCUS_JOIN_REQUEST:\n meeting.setEndCallInitiateJoinReq();\n meeting.setStartJoinReqResp();\n break;\n case eventType.LOCUS_JOIN_RESPONSE:\n meeting.setEndJoinReqResp();\n meeting.setStartSetupDelay(mediaType.AUDIO);\n meeting.setStartSetupDelay(mediaType.VIDEO);\n meeting.setStartSendingMediaDelay(mediaType.AUDIO);\n meeting.setStartSendingMediaDelay(mediaType.VIDEO);\n break;\n case eventType.RECEIVING_MEDIA_START:\n meeting.setEndSetupDelay(data.mediaType);\n break;\n case eventType.SENDING_MEDIA_START:\n meeting.setEndSendingMediaDelay(data.mediaType);\n break;\n case eventType.LOCAL_SDP_GENERATED:\n meeting.setStartLocalSDPGenRemoteSDPRecvDelay();\n break;\n case eventType.REMOTE_SDP_RECEIVED:\n meeting.setEndLocalSDPGenRemoteSDPRecvDelay();\n break;\n default:\n break;\n }\n};\n\n/**\n * @description Metrics handles all the call metrics events\n * @export\n * @class Metrics\n */\nclass Metrics {\n /**\n * Create Metrics Object\n * @constructor\n * @public\n * @memberof Meetings\n */\n constructor() {\n if (!Metrics.instance) {\n /**\n * @instance\n * @type {Array}\n * @private\n * @memberof Metrics\n */\n this._events = [];\n /**\n * @instance\n * @type {MeetingCollection}\n * @private\n * @memberof Metrics\n */\n this.meetingCollection = null;\n /**\n * @instance\n * @type {MeetingCollection}\n * @private\n * @memberof Metrics\n */\n this.keys = Object.values(eventType);\n /**\n * @instance\n * @type {Metrics}\n * @private\n * @memberof Metrics\n */\n Metrics.instance = this;\n }\n\n return Metrics.instance;\n }\n\n /**\n * Initializes the Metrics singleton with a meeting Collection.\n *\n * @param {Object} meetingCollection meetings object\n * @param {Object} webex webex SDK object\n *\n * @returns {void}\n */\n initialSetup(meetingCollection, webex) {\n this.meetingCollection = meetingCollection;\n this.webex = webex;\n }\n\n /**\n * poste Meeting event metrics\n * @param {object} options {meetingId/meeting} as a json object\n * @param {Meeting} options.meeting Meeting object\n * @param {String} options.meetingId\n * @param {object} options.data\n * @param {object} options.event\n * @returns {object} null\n */\n postEvent(options) {\n const {meetingId, data = {}, event} = options;\n let {meeting} = options;\n\n if (this.keys.indexOf(event) === -1) {\n LoggerProxy.logger.error(`Metrics:index#postEvent --> Event ${event} doesn't exist in dictionary`);\n }\n\n if (!meeting && meetingId) {\n meeting = this.meetingCollection.get(meetingId);\n options.meeting = meeting;\n }\n\n if (meeting) {\n triggerTimers(options);\n\n if (!meeting.callEvents) {\n meeting.callEvents = [];\n }\n if (event === eventType.MEDIA_QUALITY) {\n data.event = event;\n meeting.sendMediaQualityAnalyzerMetrics(data);\n }\n else {\n meeting.callEvents.push(event);\n data.event = event;\n meeting.sendCallAnalyzerMetrics(data);\n }\n }\n\n else {\n LoggerProxy.logger.info(`Metrics:index#postEvent --> Event received for meetingId:${meetingId}, but meeting not found in collection.`);\n }\n }\n\n /**\n * Docs for Call analyzer metrics\n * https://sqbu-github.cisco.com/WebExSquared/call-analyzer/wiki\n * https://sqbu-github.cisco.com/WebExSquared/event-dictionary/blob/master/diagnostic-events.raml\n */\n\n initPayload(eventType, identifiers, options) {\n const payload = {\n eventId: uuid.v4(),\n version: 1,\n origin: {\n name: 'endpoint',\n networkType: 'unknown',\n userAgent: this.userAgentToString(),\n clientInfo: {\n clientType: options.clientType,\n clientVersion: `${CLIENT_NAME}/${this.webex.version}`,\n localNetworkPrefix: anonymizeIPAddress(this.webex.meetings.geoHintInfo?.clientAddress),\n osVersion: getOSVersion() || 'unknown',\n subClientType: options.subClientType,\n os: this.getOsName(),\n browser: getBrowserName(),\n browserVersion: getBrowserVersion()\n }\n },\n originTime: {\n triggered: new Date().toISOString()\n },\n senderCountryCode: this.webex.meetings.geoHintInfo?.countryCode,\n event: {\n name: eventType,\n canProceed: true,\n identifiers,\n eventData: {webClientDomain: window.location.hostname}\n }\n };\n\n // TODO: more options should be checked and some of them should be mandatory in certain conditions\n if (options) {\n if (Object.prototype.hasOwnProperty.call(options, 'canProceed')) {\n payload.event.canProceed = options.canProceed;\n }\n if (options.errors) {\n payload.event.errors = options.errors;\n }\n if (options.mediaType) {\n payload.event.mediaType = options.mediaType;\n }\n if (options.trigger) {\n payload.event.trigger = options.trigger;\n }\n if (options.pstnAudioType) {\n payload.event.pstnAudioType = options.pstnAudioType;\n }\n if (options.mediaCapabilities) {\n payload.event.mediaCapabilities = options.mediaCapabilities;\n }\n if (options.recoveredBy) {\n payload.event.recoveredBy = options.recoveredBy;\n }\n if (options.joinTimes) {\n payload.event.joinTimes = options.joinTimes;\n }\n }\n\n return payload;\n }\n\n /**\n * returns metrics friendly OS versions\n * @param {String} osName Os name\n * @returns {String}\n * @private\n * @memberof Metrics\n */\n getOsName() {\n return OSMap[getOSName()] ?? OS_NAME.OTHERS;\n }\n\n /**\n * get the payload specific for a media quality event through call analyzer\n * @param {String} eventType the event name\n * @param {Object} identifiers contains the identifiers needed for CA\n * @param {String} identifiers.correlationId\n * @param {String} identifiers.locusUrl\n * @param {String} identifiers.locusId\n * @param {Object} options\n * @param {Object} options.intervalData\n * @param {String} options.clientType\n * @returns {Object}\n * @public\n * @memberof Metrics\n */\n initMediaPayload(eventType, identifiers, options = {}) {\n const {audioSetupDelay, videoSetupDelay, joinTimes} = options;\n\n const payload = {\n eventId: uuid.v4(),\n version: 1,\n origin: {\n audioSetupDelay,\n videoSetupDelay,\n name: 'endpoint',\n networkType: options.networkType || UNKNOWN,\n userAgent: this.userAgentToString(),\n clientInfo: {\n clientType: options.clientType, // TODO: Only clientType: 'TEAMS_CLIENT' is whitelisted\n clientVersion: `${CLIENT_NAME}/${this.webex.version}`,\n localNetworkPrefix: anonymizeIPAddress(this.webex.meetings.geoHintInfo?.clientAddress),\n os: this.getOsName(),\n osVersion: getOSVersion() || UNKNOWN,\n subClientType: options.subClientType,\n browser: getBrowserName(),\n browserVersion: getBrowserVersion()\n }\n },\n originTime: {\n triggered: new Date().toISOString()\n },\n senderCountryCode: this.webex.meetings.geoHintInfo?.countryCode,\n event: {\n name: eventType,\n canProceed: true,\n identifiers,\n intervals: [options.intervalData],\n joinTimes,\n eventData: {\n webClientDomain: window.location.hostname\n },\n sourceMetadata: {\n applicationSoftwareType: CLIENT_NAME,\n applicationSoftwareVersion: this.webex.version,\n mediaEngineSoftwareType: getBrowserName() || 'browser',\n mediaEngineSoftwareVersion: getOSVersion() || UNKNOWN,\n startTime: new Date().toISOString()\n }\n }\n };\n\n return payload;\n }\n\n /**\n * This function Parses a Locus error and returns a diagnostic event payload.\n * It should keep updating from:\n * https://sqbu-github.cisco.com/WebExSquared/spark-client-framework/blob/master/spark-client-framework/Adapters/TelephonyAdapter/TelephonyAdapter.cpp#L920\n *\n * @param {Object} err the error Object from Locus response\n * @param {boolean} showToUser true if a toast is shown to user\n * @returns {{showToUser: boolean, category: string, errorDescription: string,\n * errorCode: number, errorData: *, fatal: boolean, name: string}}\n */\n parseLocusError(err, showToUser) {\n let errorCode;\n\n if (err && err.body && err.body.errorCode) {\n switch (ERROR_CODE[err.body.errorCode]) {\n case MEETING_ERRORS.FREE_USER_MAX_PARTICIPANTS_EXCEEDED:\n errorCode = 3007;\n break;\n case MEETING_ERRORS.PAID_USER_MAX_PARTICIPANTS_EXCEEDED:\n case MEETING_ERRORS.SERVICE_MAX_PARTICIPANTS_EXCEEDED:\n errorCode = 3002;\n break;\n case MEETING_ERRORS.INACTIVE:\n errorCode = 4001;\n break;\n case MEETING_ERRORS.EXCEEDED_MAX_JOINED_PARTICIPANTS:\n case MEETING_ERRORS.EXCEEDED_SERVICE_MAX_PARTICIPANTS:\n errorCode = 3001;\n break;\n case MEETING_ERRORS.MEETING_IS_LOCKED:\n errorCode = 4002;\n break;\n case MEETING_ERRORS.MEETING_IS_TERMINATING:\n errorCode = 4003;\n break;\n case MEETING_ERRORS.MEETING_REQUIRE_MODERATOR_PIN_INTENT:\n errorCode = 4004;\n break;\n case MEETING_ERRORS.MEETING_REQUIRE_MODERATOR_PIN:\n errorCode = 4005;\n break;\n case MEETING_ERRORS.MEETING_REQUIRE_MODERATOR_ROLE:\n errorCode = 4006;\n break;\n case MEETING_ERRORS.JOIN_RESTRICTED_USER:\n case MEETING_ERRORS.GET_RESTRICTED_USER:\n case MEETING_ERRORS.CREATE_MEDIA_RESTRICTED_USER:\n errorCode = 3005;\n break;\n case MEETING_ERRORS.JOIN_RESTRICTED_USER_NOT_IN_ROOM:\n errorCode = 4007;\n break;\n case MEETING_ERRORS.MEETING_NOT_FOUND:\n errorCode = 4011;\n break;\n case MEETING_ERRORS.NOT_WEBEX_SITE:\n errorCode = 4012;\n break;\n case MEETING_ERRORS.INVALID_JOIN_TIME:\n errorCode = 4013;\n break;\n case MEETING_ERRORS.PHONE_NUMBER_NOT_A_NUMBER:\n errorCode = 4016;\n break;\n case MEETING_ERRORS.PHONE_NUMBER_TOO_LONG:\n errorCode = 4017;\n break;\n case MEETING_ERRORS.INVALID_DIALABLE_KEY:\n errorCode = 4018;\n break;\n case MEETING_ERRORS.ONE_ON_ONE_TO_SELF_NOT_ALLOWED:\n errorCode = 4019;\n break;\n case MEETING_ERRORS.REMOVED_PARTICIPANT:\n errorCode = 4020;\n break;\n case MEETING_ERRORS.MEETING_LINK_NOT_FOUND:\n errorCode = 4021;\n break;\n case MEETING_ERRORS.PHONE_NUMBER_TOO_SHORT_AFTER_IDD:\n errorCode = 4022;\n break;\n case MEETING_ERRORS.INVALID_INVITEE_ADDRESS:\n errorCode = 4023;\n break;\n case MEETING_ERRORS.PMR_ACCOUNT_LOCKED:\n errorCode = 4024;\n break;\n case MEETING_ERRORS.RESOURCE_GUEST_FORBIDDEN:\n errorCode = 4025;\n break;\n case MEETING_ERRORS.PMR_ACCOUNT_SUSPENDED:\n errorCode = 4026;\n break;\n case MEETING_ERRORS.EMPTY_PHONE_NUMBER_OR_COUNTRY_CODE:\n errorCode = 4027;\n break;\n case MEETING_ERRORS.INVALID_SINCE_OR_SEQUENCE_HASH_IN_REQUEST:\n errorCode = 1006;\n break;\n case MEETING_ERRORS.CONVERSATION_NOT_FOUND:\n errorCode = 4028;\n break;\n case MEETING_ERRORS.RECORDING_CONTROL_NOT_SUPPORTED:\n case MEETING_ERRORS.RECORDING_NOT_STARTED:\n case MEETING_ERRORS.RECORDING_NOT_ENABLED:\n errorCode = 4029;\n break;\n default:\n errorCode = 4008;\n }\n }\n else {\n errorCode = 4008;\n }\n\n return this.generateErrorPayload(\n errorCode, showToUser, error.name.LOCUS_RESPONSE, err\n );\n }\n\n\n generateErrorPayload(errorCode, shownToUser, name, err) {\n if (error.errors[errorCode]) {\n const errorPayload = {\n shownToUser: shownToUser || false,\n category: error.errors[errorCode][2],\n errorDescription: error.errors[errorCode][0],\n errorCode,\n fatal: !includes(error.notFatalErrorList, errorCode),\n name: name || error.name.OTHER\n };\n\n if (err && err.body) {\n errorPayload.errorData = err.body;\n }\n\n return errorPayload;\n }\n\n return null;\n }\n\n /**\n * Returns a formated string of the user agent.\n *\n * @returns {string} formatted user agent information\n */\n userAgentToString() {\n let userAgentOption;\n let browserInfo;\n const clientInfo = util.format('client=%s', `${this.webex.meetings?.metrics?.clientName}`);\n\n if (['chrome', 'firefox', 'msie', 'msedge', 'safari'].indexOf(getBrowserName().toLowerCase()) !== -1) {\n browserInfo = util.format('browser=%s', `${getBrowserName().toLowerCase()}/${getBrowserVersion().split('.')[0]}`);\n }\n const osInfo = util.format('os=%s', `${getOSName()}/${getOSVersion().split('.')[0]}`);\n\n if (browserInfo) {\n userAgentOption = `(${browserInfo}`;\n }\n if (osInfo) {\n userAgentOption = userAgentOption ? `${userAgentOption}; ${clientInfo}; ${osInfo}` : `${clientInfo}; (${osInfo}`;\n }\n if (userAgentOption) {\n userAgentOption += ')';\n\n return util.format('webex-js-sdk/%s %s', `${process.env.NODE_ENV}-${this.webex.version}`, userAgentOption);\n }\n\n return util.format('webex-js-sdk/%s', `${process.env.NODE_ENV}-${this.webex.version}`);\n }\n\n /**\n * Uploads given metric to the Metrics service as an Behavioral metric.\n * Metadata about the environment such as browser, OS, SDK and their versions\n * are automatically added when the metric is sent.\n *\n * The Metrics service will send an Behavioral metric to InfluxDB for\n * aggregation.\n * See https://confluence-eng-gpk2.cisco.com/conf/display/WBXT/Getting+started+with+Metrics+Service.\n *\n * @param {string} metricName Name of the metric (measurement) to send\n * @param {Object} metricFields Key-valye pairs of data or values about this metric\n * @param {Object} metricTags Key-value pairs of metric metadata\n *\n * @returns {void}\n */\n sendBehavioralMetric(metricName, metricFields = {}, metricTags = {}) {\n const fields = {\n ...metricFields,\n browser_version: getBrowserVersion(),\n os_version: getOSVersion(),\n sdk_version: this.webex.version,\n platform: PLATFORM\n };\n\n const context = {\n app: {\n version: this.webex.version\n },\n locale: 'en-US',\n os: {\n name: getOSName(),\n version: getOSVersion()\n }\n };\n\n const tags = {\n ...metricTags,\n browser: getBrowserName(),\n org_id: this.webex.credentials.getOrgId(),\n os: getOSName(),\n domain: window.location.hostname,\n client_id: this.webex.credentials.config.client_id,\n user_id: this.webex.internal.device.userId\n };\n\n if (!metricName) {\n throw Error('Missing behavioral metric name. Please provide one');\n }\n\n this.webex.internal.metrics.submitClientMetrics(metricName, {\n type: ['behavioral', 'operational'],\n fields,\n tags,\n context\n });\n }\n}\n\n// Export Metrics singleton ---------------------------------------------------\nconst instance = new Metrics();\n\nexport default instance;\n"]}
@@ -20,6 +20,10 @@ exports.default = void 0;
20
20
 
21
21
  var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
22
22
 
23
+ var _now = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/date/now"));
24
+
25
+ var _parseInt2 = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/parse-int"));
26
+
23
27
  var _window = _interopRequireDefault(require("global/window"));
24
28
 
25
29
  var _sdpTransform = _interopRequireDefault(require("sdp-transform"));
@@ -147,23 +151,14 @@ var isSdpInvalid = function isSdpInvalid(sdp) {
147
151
 
148
152
  try {
149
153
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
154
+ var _mediaLine$candidates;
155
+
150
156
  var mediaLine = _step.value;
151
157
 
152
- if (mediaLine.candidates && mediaLine.candidates.length === 0) {
158
+ if (!mediaLine.candidates || ((_mediaLine$candidates = mediaLine.candidates) === null || _mediaLine$candidates === void 0 ? void 0 : _mediaLine$candidates.length) === 0) {
153
159
  _loggerProxy.default.logger.error('PeerConnectionManager:index#isSdpInvalid --> iceCandidate: Ice candadate never completed');
154
160
 
155
- return 'iceCandidate: Ice candadate never completed';
156
- } // Sometimes the candidates might be there but only IPV6 we need to makes sure we have IPV4
157
-
158
-
159
- var hostCandidate = mediaLine.candidates.filter(function (candidate) {
160
- return !!(candidate.type === _constants.HOST && candidate.ip.match(_constants.IPV4_REGEX));
161
- });
162
-
163
- if (hostCandidate.length === 0) {
164
- _loggerProxy.default.logger.error('PeerConnectionManager:index#isSdpInvalid --> iceCandidate: no IPV4 candidate present');
165
-
166
- return 'iceCandidate: no IPV4 candidate present';
161
+ return 'iceCandidate: Ice gathering never completed';
167
162
  }
168
163
 
169
164
  if (_constants.SDP.BAD_MEDIA_PORTS.includes(mediaLine.port)) {
@@ -233,45 +228,56 @@ pc.setContentSlides = function (screenPc) {
233
228
  pc.iceCandidate = function (peerConnection, _ref) {
234
229
  var remoteQualityLevel = _ref.remoteQualityLevel;
235
230
  return new _promise.default(function (resolve, reject) {
236
- // TODO: we dont need timeout as we can check the api state and validate.
237
- var timeout = setTimeout(function () {
231
+ var now = (0, _now.default)();
232
+
233
+ var doneGatheringIceCandidate = function doneGatheringIceCandidate() {
234
+ var miliseconds = (0, _parseInt2.default)(Math.abs((0, _now.default)() - now), 4);
238
235
  peerConnection.sdp = limitBandwidth(peerConnection.localDescription.sdp);
239
236
  peerConnection.sdp = setMaxFs(peerConnection.sdp, remoteQualityLevel);
240
237
  peerConnection.sdp = _util.default.convertCLineToIpv4(peerConnection.sdp);
238
+ var invalidSdpPresent = isSdpInvalid(peerConnection.sdp);
241
239
 
242
- if (isSdpInvalid(peerConnection.sdp)) {
243
- setTimeout(function () {
244
- // peerconnection does gather ice candidate IP but in some cases due to firewall
245
- // or proxy the ice candidate does not get gathered so we need to wait and then retry
246
- // if still not valid then throw an error saying missing ice candidate
247
- // if ice candidate still not present after retry
248
- var invalidSdpPresent = isSdpInvalid(peerConnection.sdp);
249
-
250
- if (!invalidSdpPresent) {
251
- resolve(peerConnection);
252
- } else {
253
- _loggerProxy.default.logger.error('PeerConnectionManager:index#iceCandidate --> SDP not valid after waiting.');
254
-
255
- reject(new _webexErrors.InvalidSdpError(invalidSdpPresent));
256
- }
257
- }, _constants.RETRY_TIMEOUT);
258
- } else {
259
- resolve(peerConnection);
240
+ if (invalidSdpPresent) {
241
+ _loggerProxy.default.logger.error('PeerConnectionManager:index#iceCandidate --> SDP not valid after waiting.');
242
+
243
+ reject(new _webexErrors.InvalidSdpError(invalidSdpPresent));
260
244
  }
261
- }, _constants.ICE_TIMEOUT);
245
+
246
+ _loggerProxy.default.logger.log("PeerConnectionManager:index#iceCandidate --> Time to gather ice candidate ".concat(miliseconds, " miliseconds"));
247
+
248
+ resolve();
249
+ }; // If ice has already been gathered
250
+
251
+
252
+ if (peerConnection.iceGatheringState === _constants.COMPLETE) {
253
+ doneGatheringIceCandidate();
254
+ }
255
+
256
+ peerConnection.onIceGatheringStateChange = function () {
257
+ if (peerConnection.iceGatheringState === _constants.COMPLETE) {
258
+ doneGatheringIceCandidate(peerConnection);
259
+ }
260
+
261
+ if (peerConnection.iceGatheringState === _constants.GATHERING) {
262
+ _loggerProxy.default.logger.log('PeerConnectionManager:index#onIceGatheringStateChange --> Ice state changed to gathering');
263
+ }
264
+ };
262
265
 
263
266
  peerConnection.onicecandidate = function (evt) {
264
- if (!evt.candidate && !peerConnection.sdp) {
265
- peerConnection.sdp = limitBandwidth(peerConnection.localDescription.sdp);
266
- peerConnection.sdp = setMaxFs(peerConnection.sdp, remoteQualityLevel);
267
- peerConnection.sdp = _util.default.convertCLineToIpv4(peerConnection.sdp);
268
-
269
- if (evt.candidate === null && !isSdpInvalid(peerConnection.sdp)) {
270
- clearTimeout(timeout);
271
- resolve(peerConnection);
272
- }
267
+ if (evt.candidate === null) {
268
+ doneGatheringIceCandidate(peerConnection);
269
+ } else {
270
+ var _evt$candidate, _evt$candidate2, _evt$candidate3, _evt$candidate4;
271
+
272
+ _loggerProxy.default.logger.log("PeerConnectionManager:index#onicecandidate --> Candidate ".concat((_evt$candidate = evt.candidate) === null || _evt$candidate === void 0 ? void 0 : _evt$candidate.type, " ").concat((_evt$candidate2 = evt.candidate) === null || _evt$candidate2 === void 0 ? void 0 : _evt$candidate2.protocol, " ").concat((_evt$candidate3 = evt.candidate) === null || _evt$candidate3 === void 0 ? void 0 : _evt$candidate3.address, ":").concat((_evt$candidate4 = evt.candidate) === null || _evt$candidate4 === void 0 ? void 0 : _evt$candidate4.port));
273
273
  }
274
274
  };
275
+
276
+ peerConnection.onicecandidateerror = function (event) {
277
+ _loggerProxy.default.logger.error('PeerConnectionManager:index#onicecandidateerror --> Failed to gather ice candidate.', event);
278
+
279
+ reject(new _webexErrors.IceGatheringFailed());
280
+ };
275
281
  });
276
282
  };
277
283
  /**
@@ -374,7 +380,7 @@ pc.setRemoteSessionDetails = function (peerConnection, typeStr, remoteSdp, meeti
374
380
  }).catch(function (error) {
375
381
  _loggerProxy.default.logger.error("Peer-connection-manager:index#setRemoteDescription --> ".concat(error, " missing remotesdp"));
376
382
 
377
- var metricName = _constants.METRICS_OPERATIONAL_MEASURES.PEERCONNECTION_FAILURE;
383
+ var metricName = _constants.BEHAVIORAL_METRICS.PEERCONNECTION_FAILURE;
378
384
  var data = {
379
385
  correlation_id: meetingId,
380
386
  reason: error.message,
@@ -384,7 +390,7 @@ pc.setRemoteSessionDetails = function (peerConnection, typeStr, remoteSdp, meeti
384
390
  type: error.name
385
391
  };
386
392
 
387
- _metrics.default.sendOperationalMetric(metricName, data, metadata);
393
+ _metrics.default.sendBehavioralMetric(metricName, data, metadata);
388
394
 
389
395
  return _metrics.default.postEvent({
390
396
  event: _config2.eventType.REMOTE_SDP_RECEIVED,
@@ -434,10 +440,6 @@ pc.createOffer = function (peerConnection, _ref2) {
434
440
  remoteQualityLevel: remoteQualityLevel
435
441
  });
436
442
  }).then(function () {
437
- peerConnection.sdp = limitBandwidth(peerConnection.localDescription.sdp);
438
- peerConnection.sdp = setMaxFs(peerConnection.sdp, remoteQualityLevel);
439
- peerConnection.sdp = _util.default.convertCLineToIpv4(peerConnection.sdp);
440
-
441
443
  if (!checkH264Support(peerConnection.sdp)) {
442
444
  throw new _media.default('openH264 is downloading please Wait. Upload logs if not working on second try');
443
445
  }
@@ -458,13 +460,13 @@ pc.createOffer = function (peerConnection, _ref2) {
458
460
  _loggerProxy.default.logger.error("Peer-connection-manager:index#createOffer --> ".concat(error));
459
461
 
460
462
  if (error instanceof _webexErrors.InvalidSdpError) {
461
- _metrics.default.sendOperationalMetric(_constants.METRICS_OPERATIONAL_MEASURES.INVALID_ICE_CANDIDATE, {
463
+ _metrics.default.sendBehavioralMetric(_constants.BEHAVIORAL_METRICS.INVALID_ICE_CANDIDATE, {
462
464
  correlation_id: meetingId,
463
465
  code: error.code,
464
466
  reason: error.message
465
467
  });
466
468
  } else {
467
- var metricName = _constants.METRICS_OPERATIONAL_MEASURES.PEERCONNECTION_FAILURE;
469
+ var metricName = _constants.BEHAVIORAL_METRICS.PEERCONNECTION_FAILURE;
468
470
  var data = {
469
471
  correlation_id: meetingId,
470
472
  reason: error.message,
@@ -474,7 +476,7 @@ pc.createOffer = function (peerConnection, _ref2) {
474
476
  type: error.name
475
477
  };
476
478
 
477
- _metrics.default.sendOperationalMetric(metricName, data, metadata);
479
+ _metrics.default.sendBehavioralMetric(metricName, data, metadata);
478
480
  }
479
481
 
480
482
  _metrics.default.postEvent({
@@ -582,11 +584,11 @@ pc.createAnswer = function (params, _ref4) {
582
584
  return peerConnection;
583
585
  }).catch(function (error) {
584
586
  if (error instanceof _webexErrors.InvalidSdpError) {
585
- _metrics.default.sendOperationalMetric(_constants.METRICS_OPERATIONAL_MEASURES.INVALID_ICE_CANDIDATE, {
587
+ _metrics.default.sendBehavioralMetric(_constants.BEHAVIORAL_METRICS.INVALID_ICE_CANDIDATE, {
586
588
  correlation_id: meetingId
587
589
  });
588
590
  } else {
589
- var metricName = _constants.METRICS_OPERATIONAL_MEASURES.PEERCONNECTION_FAILURE;
591
+ var metricName = _constants.BEHAVIORAL_METRICS.PEERCONNECTION_FAILURE;
590
592
  var data = {
591
593
  correlation_id: meetingId,
592
594
  reason: error.message,
@@ -596,7 +598,7 @@ pc.createAnswer = function (params, _ref4) {
596
598
  type: error.name
597
599
  };
598
600
 
599
- _metrics.default.sendOperationalMetric(metricName, data, metadata);
601
+ _metrics.default.sendBehavioralMetric(metricName, data, metadata);
600
602
  }
601
603
 
602
604
  _loggerProxy.default.logger.error("PeerConnectionManager:index#setRemoteSessionDetails --> Error creating remote session, error: ".concat(error));
@@ -659,7 +661,7 @@ pc.setPeerConnectionEvents = function (meeting) {
659
661
  function: 'connectionFailed'
660
662
  });
661
663
 
662
- _metrics.default.sendOperationalMetric(_constants.METRICS_OPERATIONAL_MEASURES.CONNECTION_FAILURE, {
664
+ _metrics.default.sendBehavioralMetric(_constants.BEHAVIORAL_METRICS.CONNECTION_FAILURE, {
663
665
  correlation_id: meeting.correlationId,
664
666
  locus_id: meeting.locusId
665
667
  });
@@ -692,6 +694,11 @@ pc.setPeerConnectionEvents = function (meeting) {
692
694
  meeting: meeting
693
695
  });
694
696
 
697
+ _metrics.default.sendBehavioralMetric(_constants.BEHAVIORAL_METRICS.CONNECTION_SUCCESS, {
698
+ correlation_id: meeting.correlationId,
699
+ locus_id: meeting.locusId
700
+ });
701
+
695
702
  meeting.setNetworkStatus(_constants.NETWORK_STATUS.CONNECTED);
696
703
  meeting.reconnectionManager.iceReconnected();
697
704