@webex/plugin-meetings 3.7.0-web-workers-keepalive.1 → 3.7.0-wxcc.1
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.
- package/dist/breakouts/breakout.js +1 -1
- package/dist/breakouts/index.js +1 -1
- package/dist/common/errors/join-forbidden-error.js +52 -0
- package/dist/common/errors/join-forbidden-error.js.map +1 -0
- package/dist/constants.js +22 -2
- package/dist/constants.js.map +1 -1
- package/dist/interpretation/index.js +1 -1
- package/dist/interpretation/siLanguage.js +1 -1
- package/dist/locus-info/index.js +1 -1
- package/dist/locus-info/index.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +2 -0
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +66 -41
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +70 -19
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/utilv2.js +1 -1
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/meetings/index.js +102 -53
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/meetings.types.js +2 -0
- package/dist/meetings/meetings.types.js.map +1 -1
- package/dist/metrics/constants.js +2 -1
- package/dist/metrics/constants.js.map +1 -1
- package/dist/types/common/errors/join-forbidden-error.d.ts +15 -0
- package/dist/types/constants.d.ts +18 -0
- package/dist/types/meeting/in-meeting-actions.d.ts +2 -0
- package/dist/types/meeting-info/meeting-info-v2.d.ts +23 -0
- package/dist/types/meetings/index.d.ts +16 -1
- package/dist/types/meetings/meetings.types.d.ts +8 -0
- package/dist/types/metrics/constants.d.ts +1 -0
- package/dist/webinar/index.js +1 -1
- package/package.json +22 -22
- package/src/common/errors/join-forbidden-error.ts +26 -0
- package/src/constants.ts +20 -0
- package/src/locus-info/index.ts +3 -1
- package/src/meeting/in-meeting-actions.ts +4 -0
- package/src/meeting/index.ts +25 -0
- package/src/meeting-info/meeting-info-v2.ts +51 -0
- package/src/meeting-info/utilv2.ts +3 -1
- package/src/meetings/index.ts +72 -19
- package/src/meetings/meetings.types.ts +10 -0
- package/src/metrics/constants.ts +1 -0
- package/test/unit/spec/locus-info/index.js +70 -60
- package/test/unit/spec/meeting/in-meeting-actions.ts +2 -0
- package/test/unit/spec/meeting/index.js +42 -5
- package/test/unit/spec/meeting-info/meetinginfov2.js +37 -0
- package/test/unit/spec/meeting-info/utilv2.js +17 -0
- package/test/unit/spec/meetings/index.js +150 -13
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BEHAVIORAL_METRICS","exports","default","MEETINGS_REGISTRATION_FAILED","MEETINGS_REGISTRATION_SUCCESS","MEETINGS_REGISTRATION_STEP","MERCURY_CONNECTION_FAILURE","MERCURY_CONNECTION_RESTORED","JOIN_SUCCESS","JOIN_FAILURE","ADD_MEDIA_SUCCESS","ADD_MEDIA_FAILURE","ADD_MEDIA_RETRY","ROAP_MERCURY_EVENT_RECEIVED","CONNECTION_SUCCESS","CONNECTION_FAILURE","MEETING_LEAVE_FAILURE","MEETING_END_ALL_FAILURE","MEETING_END_ALL_INITIATED","GET_USER_MEDIA_FAILURE","GET_DISPLAY_MEDIA_FAILURE","JOIN_WITH_MEDIA_FAILURE","LLM_CONNECTION_AFTER_JOIN_FAILURE","RECEIVE_TRANSCRIPTION_AFTER_JOIN_FAILURE","DISCONNECT_DUE_TO_INACTIVITY","MEETING_MEDIA_INACTIVE","MEETING_RECONNECT_FAILURE","MEETING_MAX_REJOIN_FAILURE","MEETING_SHARE_SUCCESS","MEETING_SHARE_FAILURE","MEETING_START_WHITEBOARD_SHARE_FAILURE","MEETING_STOP_WHITEBOARD_SHARE_FAILURE","MEETING_SHARE_VIDEO_MUTE_STATE_CHANGE","MUTE_AUDIO_FAILURE","MUTE_VIDEO_FAILURE","SET_MEETING_QUALITY_FAILURE","STOP_FLOOR_REQUEST_FAILURE","ADD_DIAL_IN_FAILURE","ADD_DIAL_OUT_FAILURE","UPDATE_MEDIA_FAILURE","UNMUTE_AUDIO_FAILURE","UNMUTE_VIDEO_FAILURE","ROAP_ANSWER_FAILURE","ROAP_GLARE_CONDITION","PEERCONNECTION_FAILURE","INVALID_ICE_CANDIDATE","UPLOAD_LOGS_FAILURE","UPLOAD_LOGS_SUCCESS","RECEIVE_TRANSCRIPTION_FAILURE","FETCH_MEETING_INFO_V1_SUCCESS","FETCH_MEETING_INFO_V1_FAILURE","ADHOC_MEETING_SUCCESS","ADHOC_MEETING_FAILURE","VERIFY_PASSWORD_SUCCESS","VERIFY_PASSWORD_ERROR","VERIFY_CAPTCHA_ERROR","MOVE_TO_SUCCESS","MOVE_TO_FAILURE","MOVE_FROM_SUCCESS","MOVE_FROM_FAILURE","TURN_DISCOVERY_FAILURE","MEETING_INFO_POLICY_ERROR","LOCUS_DELTA_SYNC_FAILED","LOCUS_DELTA_OUT_OF_ORDER","PERMISSION_TOKEN_REFRESH","PERMISSION_TOKEN_REFRESH_ERROR","TURN_DISCOVERY_LATENCY","ROAP_OFFER_TO_ANSWER_LATENCY","ROAP_HTTP_RESPONSE_MISSING","TURN_DISCOVERY_REQUIRES_OK","REACHABILITY_COMPLETED","JOIN_WEBINAR_ERROR","GUEST_ENTERED_LOBBY","GUEST_EXITED_LOBBY"],"sources":["constants.ts"],"sourcesContent":["// Metrics constants ----------------------------------------------------------\n\nconst BEHAVIORAL_METRICS = {\n MEETINGS_REGISTRATION_FAILED: 'js_sdk_meetings_registration_failed',\n MEETINGS_REGISTRATION_SUCCESS: 'js_sdk_meetings_registration_success',\n MEETINGS_REGISTRATION_STEP: 'meetings_registration_step',\n MERCURY_CONNECTION_FAILURE: 'js_sdk_mercury_connection_failure',\n MERCURY_CONNECTION_RESTORED: 'js_sdk_mercury_connection_restored',\n JOIN_SUCCESS: 'js_sdk_join_success',\n JOIN_FAILURE: 'js_sdk_join_failures',\n ADD_MEDIA_SUCCESS: 'js_sdk_add_media_success',\n ADD_MEDIA_FAILURE: 'js_sdk_add_media_failures',\n ADD_MEDIA_RETRY: 'js_sdk_add_media_retry',\n ROAP_MERCURY_EVENT_RECEIVED: 'js_sdk_roap_mercury_received',\n CONNECTION_SUCCESS: 'js_sdk_connection_success',\n CONNECTION_FAILURE: 'js_sdk_connection_failures',\n MEETING_LEAVE_FAILURE: 'js_sdk_meeting_leave_failure',\n MEETING_END_ALL_FAILURE: 'js_sdk_meeting_end_for_all_failure',\n MEETING_END_ALL_INITIATED: 'js_sdk_meeting_end_for_all_initiated',\n GET_USER_MEDIA_FAILURE: 'js_sdk_get_user_media_failures',\n GET_DISPLAY_MEDIA_FAILURE: 'js_sdk_get_display_media_failures',\n JOIN_WITH_MEDIA_FAILURE: 'js_sdk_join_with_media_failures',\n LLM_CONNECTION_AFTER_JOIN_FAILURE: 'js_sdk_llm_connection_after_join_failure',\n RECEIVE_TRANSCRIPTION_AFTER_JOIN_FAILURE: 'js_sdk_receive_transcription_after_join_failure',\n\n DISCONNECT_DUE_TO_INACTIVITY: 'js_sdk_disconnect_due_to_inactivity',\n MEETING_MEDIA_INACTIVE: 'js_sdk_meeting_media_inactive',\n MEETING_RECONNECT_FAILURE: 'js_sdk_meeting_reconnect_failures',\n MEETING_MAX_REJOIN_FAILURE: 'js_sdk_meeting_max_rejoin_failure',\n MEETING_SHARE_SUCCESS: 'js_sdk_meeting_share_success',\n MEETING_SHARE_FAILURE: 'js_sdk_meeting_share_failures',\n MEETING_START_WHITEBOARD_SHARE_FAILURE: 'js_sdk_meeting_start_whiteboard_share_failures',\n MEETING_STOP_WHITEBOARD_SHARE_FAILURE: 'js_sdk_meeting_stop_whiteboard_share_failures',\n MEETING_SHARE_VIDEO_MUTE_STATE_CHANGE: 'js_sdk_meeting_share_video_mute_state_change',\n MUTE_AUDIO_FAILURE: 'js_sdk_mute_audio_failures',\n MUTE_VIDEO_FAILURE: 'js_sdk_mute_video_failures',\n SET_MEETING_QUALITY_FAILURE: 'js_sdk_set_meeting_quality_failures',\n STOP_FLOOR_REQUEST_FAILURE: 'js_sdk_stop_floor_request_failures',\n ADD_DIAL_IN_FAILURE: 'js_sdk_add_dial_in_failure',\n ADD_DIAL_OUT_FAILURE: 'js_sdk_add_dial_out_failure',\n UPDATE_MEDIA_FAILURE: 'js_sdk_update_media_failures',\n UNMUTE_AUDIO_FAILURE: 'js_sdk_unmute_audio_failures',\n UNMUTE_VIDEO_FAILURE: 'js_sdk_unmute_video_failures',\n ROAP_ANSWER_FAILURE: 'js_sdk_roap_answer_failures',\n ROAP_GLARE_CONDITION: 'js_sdk_roap_glar_condition',\n PEERCONNECTION_FAILURE: 'js_sdk_peerConnection_failures',\n INVALID_ICE_CANDIDATE: 'js_sdk_invalid_ice_candidate',\n UPLOAD_LOGS_FAILURE: 'js_sdk_upload_logs_failure',\n UPLOAD_LOGS_SUCCESS: 'js_sdk_upload_logs_success',\n RECEIVE_TRANSCRIPTION_FAILURE: 'js_sdk_receive_transcription_failure',\n FETCH_MEETING_INFO_V1_SUCCESS: 'js_sdk_fetch_meeting_info_v1_success',\n FETCH_MEETING_INFO_V1_FAILURE: 'js_sdk_fetch_meeting_info_v1_failure',\n ADHOC_MEETING_SUCCESS: 'js_sdk_adhoc_meeting_success',\n ADHOC_MEETING_FAILURE: 'js_sdk_adhoc_meeting_failure',\n VERIFY_PASSWORD_SUCCESS: 'js_sdk_verify_password_success',\n VERIFY_PASSWORD_ERROR: 'js_sdk_verify_password_error',\n VERIFY_CAPTCHA_ERROR: 'js_sdk_verify_captcha_error',\n MOVE_TO_SUCCESS: 'js_sdk_move_to_success',\n MOVE_TO_FAILURE: 'js_sdk_move_to_failure',\n MOVE_FROM_SUCCESS: 'js_sdk_move_from_success',\n MOVE_FROM_FAILURE: 'js_sdk_move_from_failure',\n TURN_DISCOVERY_FAILURE: 'js_sdk_turn_discovery_failure',\n MEETING_INFO_POLICY_ERROR: 'js_sdk_meeting_info_policy_error',\n LOCUS_DELTA_SYNC_FAILED: 'js_sdk_locus_delta_sync_failed',\n LOCUS_DELTA_OUT_OF_ORDER: 'js_sdk_locus_delta_ooo',\n PERMISSION_TOKEN_REFRESH: 'js_sdk_permission_token_refresh',\n PERMISSION_TOKEN_REFRESH_ERROR: 'js_sdk_permission_token_refresh_error',\n TURN_DISCOVERY_LATENCY: 'js_sdk_turn_discovery_latency',\n ROAP_OFFER_TO_ANSWER_LATENCY: 'js_sdk_roap_offer_to_answer_latency',\n ROAP_HTTP_RESPONSE_MISSING: 'js_sdk_roap_http_response_missing',\n TURN_DISCOVERY_REQUIRES_OK: 'js_sdk_turn_discovery_requires_ok',\n REACHABILITY_COMPLETED: 'js_sdk_reachability_completed',\n JOIN_WEBINAR_ERROR: 'js_sdk_join_webinar_error',\n GUEST_ENTERED_LOBBY: 'js_sdk_guest_entered_lobby',\n GUEST_EXITED_LOBBY: 'js_sdk_guest_exited_lobby',\n};\n\nexport {BEHAVIORAL_METRICS as default};\n"],"mappings":";;;;;;;AAAA;;AAEA,IAAMA,kBAAkB,GAAAC,OAAA,CAAAC,OAAA,GAAG;EACzBC,4BAA4B,EAAE,qCAAqC;EACnEC,6BAA6B,EAAE,sCAAsC;EACrEC,0BAA0B,EAAE,4BAA4B;EACxDC,0BAA0B,EAAE,mCAAmC;EAC/DC,2BAA2B,EAAE,oCAAoC;EACjEC,YAAY,EAAE,qBAAqB;EACnCC,YAAY,EAAE,sBAAsB;EACpCC,iBAAiB,EAAE,0BAA0B;EAC7CC,iBAAiB,EAAE,2BAA2B;EAC9CC,eAAe,EAAE,wBAAwB;EACzCC,2BAA2B,EAAE,8BAA8B;EAC3DC,kBAAkB,EAAE,2BAA2B;EAC/CC,kBAAkB,EAAE,4BAA4B;EAChDC,qBAAqB,EAAE,8BAA8B;EACrDC,uBAAuB,EAAE,oCAAoC;EAC7DC,yBAAyB,EAAE,sCAAsC;EACjEC,sBAAsB,EAAE,gCAAgC;EACxDC,yBAAyB,EAAE,mCAAmC;EAC9DC,uBAAuB,EAAE,iCAAiC;EAC1DC,iCAAiC,EAAE,0CAA0C;EAC7EC,wCAAwC,EAAE,iDAAiD;EAE3FC,4BAA4B,EAAE,qCAAqC;EACnEC,sBAAsB,EAAE,+BAA+B;EACvDC,yBAAyB,EAAE,mCAAmC;EAC9DC,0BAA0B,EAAE,mCAAmC;EAC/DC,qBAAqB,EAAE,8BAA8B;EACrDC,qBAAqB,EAAE,+BAA+B;EACtDC,sCAAsC,EAAE,gDAAgD;EACxFC,qCAAqC,EAAE,+CAA+C;EACtFC,qCAAqC,EAAE,8CAA8C;EACrFC,kBAAkB,EAAE,4BAA4B;EAChDC,kBAAkB,EAAE,4BAA4B;EAChDC,2BAA2B,EAAE,qCAAqC;EAClEC,0BAA0B,EAAE,oCAAoC;EAChEC,mBAAmB,EAAE,4BAA4B;EACjDC,oBAAoB,EAAE,6BAA6B;EACnDC,oBAAoB,EAAE,8BAA8B;EACpDC,oBAAoB,EAAE,8BAA8B;EACpDC,oBAAoB,EAAE,8BAA8B;EACpDC,mBAAmB,EAAE,6BAA6B;EAClDC,oBAAoB,EAAE,4BAA4B;EAClDC,sBAAsB,EAAE,gCAAgC;EACxDC,qBAAqB,EAAE,8BAA8B;EACrDC,mBAAmB,EAAE,4BAA4B;EACjDC,mBAAmB,EAAE,4BAA4B;EACjDC,6BAA6B,EAAE,sCAAsC;EACrEC,6BAA6B,EAAE,sCAAsC;EACrEC,6BAA6B,EAAE,sCAAsC;EACrEC,qBAAqB,EAAE,8BAA8B;EACrDC,qBAAqB,EAAE,8BAA8B;EACrDC,uBAAuB,EAAE,gCAAgC;EACzDC,qBAAqB,EAAE,8BAA8B;EACrDC,oBAAoB,EAAE,6BAA6B;EACnDC,eAAe,EAAE,wBAAwB;EACzCC,eAAe,EAAE,wBAAwB;EACzCC,iBAAiB,EAAE,0BAA0B;EAC7CC,iBAAiB,EAAE,0BAA0B;EAC7CC,sBAAsB,EAAE,+BAA+B;EACvDC,yBAAyB,EAAE,kCAAkC;EAC7DC,uBAAuB,EAAE,gCAAgC;EACzDC,wBAAwB,EAAE,wBAAwB;EAClDC,wBAAwB,EAAE,iCAAiC;EAC3DC,8BAA8B,EAAE,uCAAuC;EACvEC,sBAAsB,EAAE,+BAA+B;EACvDC,4BAA4B,EAAE,qCAAqC;EACnEC,0BAA0B,EAAE,mCAAmC;EAC/DC,0BAA0B,EAAE,mCAAmC;EAC/DC,sBAAsB,EAAE,+BAA+B;EACvDC,kBAAkB,EAAE,2BAA2B;EAC/CC,mBAAmB,EAAE,4BAA4B;EACjDC,kBAAkB,EAAE;
|
|
1
|
+
{"version":3,"names":["BEHAVIORAL_METRICS","exports","default","MEETINGS_REGISTRATION_FAILED","MEETINGS_REGISTRATION_SUCCESS","MEETINGS_REGISTRATION_STEP","MERCURY_CONNECTION_FAILURE","MERCURY_CONNECTION_RESTORED","JOIN_SUCCESS","JOIN_FAILURE","ADD_MEDIA_SUCCESS","ADD_MEDIA_FAILURE","ADD_MEDIA_RETRY","ROAP_MERCURY_EVENT_RECEIVED","CONNECTION_SUCCESS","CONNECTION_FAILURE","MEETING_LEAVE_FAILURE","MEETING_END_ALL_FAILURE","MEETING_END_ALL_INITIATED","GET_USER_MEDIA_FAILURE","GET_DISPLAY_MEDIA_FAILURE","JOIN_WITH_MEDIA_FAILURE","LLM_CONNECTION_AFTER_JOIN_FAILURE","RECEIVE_TRANSCRIPTION_AFTER_JOIN_FAILURE","DISCONNECT_DUE_TO_INACTIVITY","MEETING_MEDIA_INACTIVE","MEETING_RECONNECT_FAILURE","MEETING_MAX_REJOIN_FAILURE","MEETING_SHARE_SUCCESS","MEETING_SHARE_FAILURE","MEETING_START_WHITEBOARD_SHARE_FAILURE","MEETING_STOP_WHITEBOARD_SHARE_FAILURE","MEETING_SHARE_VIDEO_MUTE_STATE_CHANGE","MUTE_AUDIO_FAILURE","MUTE_VIDEO_FAILURE","SET_MEETING_QUALITY_FAILURE","STOP_FLOOR_REQUEST_FAILURE","ADD_DIAL_IN_FAILURE","ADD_DIAL_OUT_FAILURE","UPDATE_MEDIA_FAILURE","UNMUTE_AUDIO_FAILURE","UNMUTE_VIDEO_FAILURE","ROAP_ANSWER_FAILURE","ROAP_GLARE_CONDITION","PEERCONNECTION_FAILURE","INVALID_ICE_CANDIDATE","UPLOAD_LOGS_FAILURE","UPLOAD_LOGS_SUCCESS","RECEIVE_TRANSCRIPTION_FAILURE","FETCH_MEETING_INFO_V1_SUCCESS","FETCH_MEETING_INFO_V1_FAILURE","ADHOC_MEETING_SUCCESS","ADHOC_MEETING_FAILURE","VERIFY_PASSWORD_SUCCESS","VERIFY_PASSWORD_ERROR","VERIFY_CAPTCHA_ERROR","MOVE_TO_SUCCESS","MOVE_TO_FAILURE","MOVE_FROM_SUCCESS","MOVE_FROM_FAILURE","TURN_DISCOVERY_FAILURE","MEETING_INFO_POLICY_ERROR","LOCUS_DELTA_SYNC_FAILED","LOCUS_DELTA_OUT_OF_ORDER","PERMISSION_TOKEN_REFRESH","PERMISSION_TOKEN_REFRESH_ERROR","TURN_DISCOVERY_LATENCY","ROAP_OFFER_TO_ANSWER_LATENCY","ROAP_HTTP_RESPONSE_MISSING","TURN_DISCOVERY_REQUIRES_OK","REACHABILITY_COMPLETED","JOIN_WEBINAR_ERROR","GUEST_ENTERED_LOBBY","GUEST_EXITED_LOBBY","JOIN_FORBIDDEN_ERROR"],"sources":["constants.ts"],"sourcesContent":["// Metrics constants ----------------------------------------------------------\n\nconst BEHAVIORAL_METRICS = {\n MEETINGS_REGISTRATION_FAILED: 'js_sdk_meetings_registration_failed',\n MEETINGS_REGISTRATION_SUCCESS: 'js_sdk_meetings_registration_success',\n MEETINGS_REGISTRATION_STEP: 'meetings_registration_step',\n MERCURY_CONNECTION_FAILURE: 'js_sdk_mercury_connection_failure',\n MERCURY_CONNECTION_RESTORED: 'js_sdk_mercury_connection_restored',\n JOIN_SUCCESS: 'js_sdk_join_success',\n JOIN_FAILURE: 'js_sdk_join_failures',\n ADD_MEDIA_SUCCESS: 'js_sdk_add_media_success',\n ADD_MEDIA_FAILURE: 'js_sdk_add_media_failures',\n ADD_MEDIA_RETRY: 'js_sdk_add_media_retry',\n ROAP_MERCURY_EVENT_RECEIVED: 'js_sdk_roap_mercury_received',\n CONNECTION_SUCCESS: 'js_sdk_connection_success',\n CONNECTION_FAILURE: 'js_sdk_connection_failures',\n MEETING_LEAVE_FAILURE: 'js_sdk_meeting_leave_failure',\n MEETING_END_ALL_FAILURE: 'js_sdk_meeting_end_for_all_failure',\n MEETING_END_ALL_INITIATED: 'js_sdk_meeting_end_for_all_initiated',\n GET_USER_MEDIA_FAILURE: 'js_sdk_get_user_media_failures',\n GET_DISPLAY_MEDIA_FAILURE: 'js_sdk_get_display_media_failures',\n JOIN_WITH_MEDIA_FAILURE: 'js_sdk_join_with_media_failures',\n LLM_CONNECTION_AFTER_JOIN_FAILURE: 'js_sdk_llm_connection_after_join_failure',\n RECEIVE_TRANSCRIPTION_AFTER_JOIN_FAILURE: 'js_sdk_receive_transcription_after_join_failure',\n\n DISCONNECT_DUE_TO_INACTIVITY: 'js_sdk_disconnect_due_to_inactivity',\n MEETING_MEDIA_INACTIVE: 'js_sdk_meeting_media_inactive',\n MEETING_RECONNECT_FAILURE: 'js_sdk_meeting_reconnect_failures',\n MEETING_MAX_REJOIN_FAILURE: 'js_sdk_meeting_max_rejoin_failure',\n MEETING_SHARE_SUCCESS: 'js_sdk_meeting_share_success',\n MEETING_SHARE_FAILURE: 'js_sdk_meeting_share_failures',\n MEETING_START_WHITEBOARD_SHARE_FAILURE: 'js_sdk_meeting_start_whiteboard_share_failures',\n MEETING_STOP_WHITEBOARD_SHARE_FAILURE: 'js_sdk_meeting_stop_whiteboard_share_failures',\n MEETING_SHARE_VIDEO_MUTE_STATE_CHANGE: 'js_sdk_meeting_share_video_mute_state_change',\n MUTE_AUDIO_FAILURE: 'js_sdk_mute_audio_failures',\n MUTE_VIDEO_FAILURE: 'js_sdk_mute_video_failures',\n SET_MEETING_QUALITY_FAILURE: 'js_sdk_set_meeting_quality_failures',\n STOP_FLOOR_REQUEST_FAILURE: 'js_sdk_stop_floor_request_failures',\n ADD_DIAL_IN_FAILURE: 'js_sdk_add_dial_in_failure',\n ADD_DIAL_OUT_FAILURE: 'js_sdk_add_dial_out_failure',\n UPDATE_MEDIA_FAILURE: 'js_sdk_update_media_failures',\n UNMUTE_AUDIO_FAILURE: 'js_sdk_unmute_audio_failures',\n UNMUTE_VIDEO_FAILURE: 'js_sdk_unmute_video_failures',\n ROAP_ANSWER_FAILURE: 'js_sdk_roap_answer_failures',\n ROAP_GLARE_CONDITION: 'js_sdk_roap_glar_condition',\n PEERCONNECTION_FAILURE: 'js_sdk_peerConnection_failures',\n INVALID_ICE_CANDIDATE: 'js_sdk_invalid_ice_candidate',\n UPLOAD_LOGS_FAILURE: 'js_sdk_upload_logs_failure',\n UPLOAD_LOGS_SUCCESS: 'js_sdk_upload_logs_success',\n RECEIVE_TRANSCRIPTION_FAILURE: 'js_sdk_receive_transcription_failure',\n FETCH_MEETING_INFO_V1_SUCCESS: 'js_sdk_fetch_meeting_info_v1_success',\n FETCH_MEETING_INFO_V1_FAILURE: 'js_sdk_fetch_meeting_info_v1_failure',\n ADHOC_MEETING_SUCCESS: 'js_sdk_adhoc_meeting_success',\n ADHOC_MEETING_FAILURE: 'js_sdk_adhoc_meeting_failure',\n VERIFY_PASSWORD_SUCCESS: 'js_sdk_verify_password_success',\n VERIFY_PASSWORD_ERROR: 'js_sdk_verify_password_error',\n VERIFY_CAPTCHA_ERROR: 'js_sdk_verify_captcha_error',\n MOVE_TO_SUCCESS: 'js_sdk_move_to_success',\n MOVE_TO_FAILURE: 'js_sdk_move_to_failure',\n MOVE_FROM_SUCCESS: 'js_sdk_move_from_success',\n MOVE_FROM_FAILURE: 'js_sdk_move_from_failure',\n TURN_DISCOVERY_FAILURE: 'js_sdk_turn_discovery_failure',\n MEETING_INFO_POLICY_ERROR: 'js_sdk_meeting_info_policy_error',\n LOCUS_DELTA_SYNC_FAILED: 'js_sdk_locus_delta_sync_failed',\n LOCUS_DELTA_OUT_OF_ORDER: 'js_sdk_locus_delta_ooo',\n PERMISSION_TOKEN_REFRESH: 'js_sdk_permission_token_refresh',\n PERMISSION_TOKEN_REFRESH_ERROR: 'js_sdk_permission_token_refresh_error',\n TURN_DISCOVERY_LATENCY: 'js_sdk_turn_discovery_latency',\n ROAP_OFFER_TO_ANSWER_LATENCY: 'js_sdk_roap_offer_to_answer_latency',\n ROAP_HTTP_RESPONSE_MISSING: 'js_sdk_roap_http_response_missing',\n TURN_DISCOVERY_REQUIRES_OK: 'js_sdk_turn_discovery_requires_ok',\n REACHABILITY_COMPLETED: 'js_sdk_reachability_completed',\n JOIN_WEBINAR_ERROR: 'js_sdk_join_webinar_error',\n GUEST_ENTERED_LOBBY: 'js_sdk_guest_entered_lobby',\n GUEST_EXITED_LOBBY: 'js_sdk_guest_exited_lobby',\n JOIN_FORBIDDEN_ERROR: 'js_sdk_join_forbidden_error',\n};\n\nexport {BEHAVIORAL_METRICS as default};\n"],"mappings":";;;;;;;AAAA;;AAEA,IAAMA,kBAAkB,GAAAC,OAAA,CAAAC,OAAA,GAAG;EACzBC,4BAA4B,EAAE,qCAAqC;EACnEC,6BAA6B,EAAE,sCAAsC;EACrEC,0BAA0B,EAAE,4BAA4B;EACxDC,0BAA0B,EAAE,mCAAmC;EAC/DC,2BAA2B,EAAE,oCAAoC;EACjEC,YAAY,EAAE,qBAAqB;EACnCC,YAAY,EAAE,sBAAsB;EACpCC,iBAAiB,EAAE,0BAA0B;EAC7CC,iBAAiB,EAAE,2BAA2B;EAC9CC,eAAe,EAAE,wBAAwB;EACzCC,2BAA2B,EAAE,8BAA8B;EAC3DC,kBAAkB,EAAE,2BAA2B;EAC/CC,kBAAkB,EAAE,4BAA4B;EAChDC,qBAAqB,EAAE,8BAA8B;EACrDC,uBAAuB,EAAE,oCAAoC;EAC7DC,yBAAyB,EAAE,sCAAsC;EACjEC,sBAAsB,EAAE,gCAAgC;EACxDC,yBAAyB,EAAE,mCAAmC;EAC9DC,uBAAuB,EAAE,iCAAiC;EAC1DC,iCAAiC,EAAE,0CAA0C;EAC7EC,wCAAwC,EAAE,iDAAiD;EAE3FC,4BAA4B,EAAE,qCAAqC;EACnEC,sBAAsB,EAAE,+BAA+B;EACvDC,yBAAyB,EAAE,mCAAmC;EAC9DC,0BAA0B,EAAE,mCAAmC;EAC/DC,qBAAqB,EAAE,8BAA8B;EACrDC,qBAAqB,EAAE,+BAA+B;EACtDC,sCAAsC,EAAE,gDAAgD;EACxFC,qCAAqC,EAAE,+CAA+C;EACtFC,qCAAqC,EAAE,8CAA8C;EACrFC,kBAAkB,EAAE,4BAA4B;EAChDC,kBAAkB,EAAE,4BAA4B;EAChDC,2BAA2B,EAAE,qCAAqC;EAClEC,0BAA0B,EAAE,oCAAoC;EAChEC,mBAAmB,EAAE,4BAA4B;EACjDC,oBAAoB,EAAE,6BAA6B;EACnDC,oBAAoB,EAAE,8BAA8B;EACpDC,oBAAoB,EAAE,8BAA8B;EACpDC,oBAAoB,EAAE,8BAA8B;EACpDC,mBAAmB,EAAE,6BAA6B;EAClDC,oBAAoB,EAAE,4BAA4B;EAClDC,sBAAsB,EAAE,gCAAgC;EACxDC,qBAAqB,EAAE,8BAA8B;EACrDC,mBAAmB,EAAE,4BAA4B;EACjDC,mBAAmB,EAAE,4BAA4B;EACjDC,6BAA6B,EAAE,sCAAsC;EACrEC,6BAA6B,EAAE,sCAAsC;EACrEC,6BAA6B,EAAE,sCAAsC;EACrEC,qBAAqB,EAAE,8BAA8B;EACrDC,qBAAqB,EAAE,8BAA8B;EACrDC,uBAAuB,EAAE,gCAAgC;EACzDC,qBAAqB,EAAE,8BAA8B;EACrDC,oBAAoB,EAAE,6BAA6B;EACnDC,eAAe,EAAE,wBAAwB;EACzCC,eAAe,EAAE,wBAAwB;EACzCC,iBAAiB,EAAE,0BAA0B;EAC7CC,iBAAiB,EAAE,0BAA0B;EAC7CC,sBAAsB,EAAE,+BAA+B;EACvDC,yBAAyB,EAAE,kCAAkC;EAC7DC,uBAAuB,EAAE,gCAAgC;EACzDC,wBAAwB,EAAE,wBAAwB;EAClDC,wBAAwB,EAAE,iCAAiC;EAC3DC,8BAA8B,EAAE,uCAAuC;EACvEC,sBAAsB,EAAE,+BAA+B;EACvDC,4BAA4B,EAAE,qCAAqC;EACnEC,0BAA0B,EAAE,mCAAmC;EAC/DC,0BAA0B,EAAE,mCAAmC;EAC/DC,sBAAsB,EAAE,+BAA+B;EACvDC,kBAAkB,EAAE,2BAA2B;EAC/CC,mBAAmB,EAAE,4BAA4B;EACjDC,kBAAkB,EAAE,2BAA2B;EAC/CC,oBAAoB,EAAE;AACxB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error occurred while join the meeting
|
|
3
|
+
*/
|
|
4
|
+
export default class JoinForbiddenError extends Error {
|
|
5
|
+
code: number;
|
|
6
|
+
error: any;
|
|
7
|
+
sdkMessage: string;
|
|
8
|
+
wbxAppApiCode: number;
|
|
9
|
+
/**
|
|
10
|
+
* @constructor
|
|
11
|
+
* @param {String} [message]
|
|
12
|
+
* @param {Object} [error]
|
|
13
|
+
*/
|
|
14
|
+
constructor(message?: string, error?: any);
|
|
15
|
+
}
|
|
@@ -24,6 +24,7 @@ export declare const ENDED = "ended";
|
|
|
24
24
|
export declare const HECATE = "hecate";
|
|
25
25
|
export declare const HOST = "host";
|
|
26
26
|
export declare const JOIN = "join";
|
|
27
|
+
export declare const JOIN_LINK_MTID = "MTID";
|
|
27
28
|
export declare const LEAVE = "leave";
|
|
28
29
|
export declare const LIVE = "live";
|
|
29
30
|
export declare const LOCAL = "local";
|
|
@@ -75,6 +76,7 @@ export declare const _ON_HOLD_LOBBY_ = "ON_HOLD_LOBBY";
|
|
|
75
76
|
export declare const _MEETING_LINK_ = "MEETING_LINK";
|
|
76
77
|
export declare const _MEETING_UUID_ = "MEETING_UUID";
|
|
77
78
|
export declare const _MEETING_ = "MEETING";
|
|
79
|
+
export declare const _SPACE_SHARE_ = "SPACE_SHARE";
|
|
78
80
|
export declare const _MEETING_CENTER_ = "MEETING_CENTER";
|
|
79
81
|
export declare const _MEETING_ID_ = "MEETING_ID";
|
|
80
82
|
export declare const _NOT_IN_MEETING_ = "NOT_IN_MEETING";
|
|
@@ -138,6 +140,7 @@ export declare const ICE_AND_DTLS_CONNECTION_TIMEOUT = 20000;
|
|
|
138
140
|
export declare const ROAP_OFFER_ANSWER_EXCHANGE_TIMEOUT = 35000;
|
|
139
141
|
export declare const WEBINAR_ERROR_WEBCAST: number[];
|
|
140
142
|
export declare const WEBINAR_ERROR_REGISTRATIONID: number[];
|
|
143
|
+
export declare const JOIN_BEFORE_HOST = 403003;
|
|
141
144
|
export declare const DIALER_REGEX: {
|
|
142
145
|
SIP_ADDRESS: RegExp;
|
|
143
146
|
PHONE_NUMBER: RegExp;
|
|
@@ -430,6 +433,11 @@ export declare const ERROR_DICTIONARY: {
|
|
|
430
433
|
MESSAGE: string;
|
|
431
434
|
CODE: number;
|
|
432
435
|
};
|
|
436
|
+
JoinForbiddenError: {
|
|
437
|
+
NAME: string;
|
|
438
|
+
MESSAGE: string;
|
|
439
|
+
CODE: number;
|
|
440
|
+
};
|
|
433
441
|
};
|
|
434
442
|
export declare const FLOOR_ACTION: {
|
|
435
443
|
GRANTED: string;
|
|
@@ -1110,6 +1118,8 @@ export declare const MEETING_INFO_FAILURE_REASON: {
|
|
|
1110
1118
|
WEBINAR_REGISTRATION: string;
|
|
1111
1119
|
NEED_JOIN_WITH_WEBCAST: string;
|
|
1112
1120
|
WEBINAR_NEED_REGISTRATIONID: string;
|
|
1121
|
+
NOT_REACH_JBH: string;
|
|
1122
|
+
JOIN_FORBIDDEN: string;
|
|
1113
1123
|
OTHER: string;
|
|
1114
1124
|
};
|
|
1115
1125
|
export declare const BNR_STATUS: {
|
|
@@ -1157,3 +1167,11 @@ export declare const DESTINATION_TYPE: {
|
|
|
1157
1167
|
readonly MEETING_UUID: "MEETING_UUID";
|
|
1158
1168
|
};
|
|
1159
1169
|
export type DESTINATION_TYPE = Enum<typeof DESTINATION_TYPE>;
|
|
1170
|
+
export declare const INITIAL_REGISTRATION_STATUS: {
|
|
1171
|
+
fetchWebexSite: boolean;
|
|
1172
|
+
getGeoHint: boolean;
|
|
1173
|
+
startReachability: boolean;
|
|
1174
|
+
deviceRegister: boolean;
|
|
1175
|
+
mercuryConnect: boolean;
|
|
1176
|
+
checkH264Support: boolean;
|
|
1177
|
+
};
|
|
@@ -43,6 +43,7 @@ interface IInMeetingActions {
|
|
|
43
43
|
waitingForOthersToJoin?: boolean;
|
|
44
44
|
canSendReactions?: boolean;
|
|
45
45
|
canManageBreakout?: boolean;
|
|
46
|
+
canStartBreakout?: boolean;
|
|
46
47
|
canBroadcastMessageToBreakout?: boolean;
|
|
47
48
|
canAdmitLobbyToBreakout?: boolean;
|
|
48
49
|
isBreakoutPreassignmentsEnabled?: boolean;
|
|
@@ -137,6 +138,7 @@ export default class InMeetingActions implements IInMeetingActions {
|
|
|
137
138
|
waitingForOthersToJoin: any;
|
|
138
139
|
canSendReactions: any;
|
|
139
140
|
canManageBreakout: any;
|
|
141
|
+
canStartBreakout: any;
|
|
140
142
|
canBroadcastMessageToBreakout: any;
|
|
141
143
|
canAdmitLobbyToBreakout: any;
|
|
142
144
|
isBreakoutPreassignmentsEnabled: any;
|
|
@@ -81,6 +81,23 @@ export declare class MeetingInfoV2JoinWebinarError extends Error {
|
|
|
81
81
|
*/
|
|
82
82
|
constructor(wbxAppApiErrorCode?: number, meetingInfo?: object, message?: string);
|
|
83
83
|
}
|
|
84
|
+
/**
|
|
85
|
+
* Error preventing join because of a forbidden error
|
|
86
|
+
*/
|
|
87
|
+
export declare class MeetingInfoV2JoinForbiddenError extends Error {
|
|
88
|
+
meetingInfo: any;
|
|
89
|
+
sdkMessage: any;
|
|
90
|
+
wbxAppApiCode: any;
|
|
91
|
+
body: any;
|
|
92
|
+
/**
|
|
93
|
+
*
|
|
94
|
+
* @constructor
|
|
95
|
+
* @param {Number} [wbxAppApiErrorCode]
|
|
96
|
+
* @param {Object} [meetingInfo]
|
|
97
|
+
* @param {String} [message]
|
|
98
|
+
*/
|
|
99
|
+
constructor(wbxAppApiErrorCode?: number, meetingInfo?: object, message?: string);
|
|
100
|
+
}
|
|
84
101
|
/**
|
|
85
102
|
* @class MeetingInfo
|
|
86
103
|
*/
|
|
@@ -112,6 +129,12 @@ export default class MeetingInfoV2 {
|
|
|
112
129
|
* @returns {void}
|
|
113
130
|
*/
|
|
114
131
|
handleJoinWebinarError: (err: any) => void;
|
|
132
|
+
/**
|
|
133
|
+
* Raises a handleForbiddenError for join meeting forbidden error
|
|
134
|
+
* @param {any} err the error from the request
|
|
135
|
+
* @returns {void}
|
|
136
|
+
*/
|
|
137
|
+
handleForbiddenError: (err: any) => void;
|
|
115
138
|
/**
|
|
116
139
|
* Creates adhoc space meetings for a space by fetching the conversation infomation
|
|
117
140
|
* @param {String} conversationUrl conversationUrl to start adhoc meeting on
|
|
@@ -8,7 +8,7 @@ import 'webrtc-adapter';
|
|
|
8
8
|
import { DESTINATION_TYPE } from '../constants';
|
|
9
9
|
import { CallStateForMetrics } from '../meeting';
|
|
10
10
|
import Reachability from '../reachability';
|
|
11
|
-
import { INoiseReductionEffect, IVirtualBackgroundEffect } from './meetings.types';
|
|
11
|
+
import { INoiseReductionEffect, IVirtualBackgroundEffect, MeetingRegistrationStatus } from './meetings.types';
|
|
12
12
|
/**
|
|
13
13
|
* Meetings Ready Event
|
|
14
14
|
* Emitted when the meetings instance on webex is ready
|
|
@@ -94,6 +94,7 @@ export default class Meetings extends WebexPlugin {
|
|
|
94
94
|
mediaHelpers: any;
|
|
95
95
|
breakoutLocusForHandleLater: any;
|
|
96
96
|
namespace: string;
|
|
97
|
+
registrationStatus: MeetingRegistrationStatus;
|
|
97
98
|
/**
|
|
98
99
|
* Initializes the Meetings Plugin
|
|
99
100
|
* @constructor
|
|
@@ -178,6 +179,13 @@ export default class Meetings extends WebexPlugin {
|
|
|
178
179
|
* @memberof Meetings
|
|
179
180
|
*/
|
|
180
181
|
private onReady;
|
|
182
|
+
/**
|
|
183
|
+
* API to change log upload interval. Setting the factor to 0 will disable periodic log uploads.
|
|
184
|
+
*
|
|
185
|
+
* @param {number} factor new factor value
|
|
186
|
+
* @returns {void}
|
|
187
|
+
*/
|
|
188
|
+
private _setLogUploadIntervalMultiplicationFactor;
|
|
181
189
|
/**
|
|
182
190
|
* API to toggle unified meetings
|
|
183
191
|
* @param {Boolean} changeState
|
|
@@ -219,6 +227,13 @@ export default class Meetings extends WebexPlugin {
|
|
|
219
227
|
* @returns {undefined}
|
|
220
228
|
*/
|
|
221
229
|
private _toggleIpv6BackendNativeSupport;
|
|
230
|
+
/**
|
|
231
|
+
* Executes a registration step and updates the registration status.
|
|
232
|
+
* @param {Function} step - The registration step to execute.
|
|
233
|
+
* @param {string} stepName - The name of the registration step.
|
|
234
|
+
* @returns {Promise} A promise that resolves when the step is completed.
|
|
235
|
+
*/
|
|
236
|
+
executeRegistrationStep(step: () => Promise<any>, stepName: string): Promise<void>;
|
|
222
237
|
/**
|
|
223
238
|
* Explicitly sets up the meetings plugin by registering
|
|
224
239
|
* the device, connecting to mercury, and listening for locus events.
|
|
@@ -11,3 +11,11 @@ export declare const MEETING_KEY: {
|
|
|
11
11
|
readonly CORRELATION_ID: "correlationId";
|
|
12
12
|
};
|
|
13
13
|
export type MEETING_KEY = Enum<typeof MEETING_KEY>;
|
|
14
|
+
export type MeetingRegistrationStatus = {
|
|
15
|
+
fetchWebexSite: boolean;
|
|
16
|
+
getGeoHint: boolean;
|
|
17
|
+
startReachability: boolean;
|
|
18
|
+
deviceRegister: boolean;
|
|
19
|
+
mercuryConnect: boolean;
|
|
20
|
+
checkH264Support: boolean;
|
|
21
|
+
};
|
package/dist/webinar/index.js
CHANGED
package/package.json
CHANGED
|
@@ -43,13 +43,13 @@
|
|
|
43
43
|
"@webex/eslint-config-legacy": "0.0.0",
|
|
44
44
|
"@webex/jest-config-legacy": "0.0.0",
|
|
45
45
|
"@webex/legacy-tools": "0.0.0",
|
|
46
|
-
"@webex/plugin-meetings": "3.7.0-
|
|
47
|
-
"@webex/plugin-rooms": "3.7.0-
|
|
48
|
-
"@webex/test-helper-chai": "3.7.0-
|
|
49
|
-
"@webex/test-helper-mocha": "3.7.0-
|
|
50
|
-
"@webex/test-helper-mock-webex": "3.7.0-
|
|
51
|
-
"@webex/test-helper-retry": "3.7.0-
|
|
52
|
-
"@webex/test-helper-test-users": "3.7.0-
|
|
46
|
+
"@webex/plugin-meetings": "3.7.0-wxcc.1",
|
|
47
|
+
"@webex/plugin-rooms": "3.7.0-wxcc.1",
|
|
48
|
+
"@webex/test-helper-chai": "3.7.0-wxcc.1",
|
|
49
|
+
"@webex/test-helper-mocha": "3.7.0-wxcc.1",
|
|
50
|
+
"@webex/test-helper-mock-webex": "3.7.0-wxcc.1",
|
|
51
|
+
"@webex/test-helper-retry": "3.7.0-wxcc.1",
|
|
52
|
+
"@webex/test-helper-test-users": "3.7.0-wxcc.1",
|
|
53
53
|
"chai": "^4.3.4",
|
|
54
54
|
"chai-as-promised": "^7.1.1",
|
|
55
55
|
"eslint": "^8.24.0",
|
|
@@ -61,22 +61,22 @@
|
|
|
61
61
|
"typescript": "^4.7.4"
|
|
62
62
|
},
|
|
63
63
|
"dependencies": {
|
|
64
|
-
"@webex/common": "3.7.0-
|
|
64
|
+
"@webex/common": "3.7.0-wxcc.1",
|
|
65
65
|
"@webex/event-dictionary-ts": "^1.0.1643",
|
|
66
|
-
"@webex/internal-media-core": "2.14.
|
|
67
|
-
"@webex/internal-plugin-conversation": "3.7.0-
|
|
68
|
-
"@webex/internal-plugin-device": "3.7.0-
|
|
69
|
-
"@webex/internal-plugin-llm": "3.7.0-
|
|
70
|
-
"@webex/internal-plugin-mercury": "3.7.0-
|
|
71
|
-
"@webex/internal-plugin-metrics": "3.7.0-
|
|
72
|
-
"@webex/internal-plugin-support": "3.7.0-
|
|
73
|
-
"@webex/internal-plugin-user": "3.7.0-
|
|
74
|
-
"@webex/internal-plugin-voicea": "3.7.0-
|
|
75
|
-
"@webex/media-helpers": "3.7.0-
|
|
76
|
-
"@webex/plugin-people": "3.7.0-
|
|
77
|
-
"@webex/plugin-rooms": "3.7.0-
|
|
66
|
+
"@webex/internal-media-core": "2.14.2",
|
|
67
|
+
"@webex/internal-plugin-conversation": "3.7.0-wxcc.1",
|
|
68
|
+
"@webex/internal-plugin-device": "3.7.0-wxcc.1",
|
|
69
|
+
"@webex/internal-plugin-llm": "3.7.0-wxcc.1",
|
|
70
|
+
"@webex/internal-plugin-mercury": "3.7.0-wxcc.1",
|
|
71
|
+
"@webex/internal-plugin-metrics": "3.7.0-wxcc.1",
|
|
72
|
+
"@webex/internal-plugin-support": "3.7.0-wxcc.1",
|
|
73
|
+
"@webex/internal-plugin-user": "3.7.0-wxcc.1",
|
|
74
|
+
"@webex/internal-plugin-voicea": "3.7.0-wxcc.1",
|
|
75
|
+
"@webex/media-helpers": "3.7.0-wxcc.1",
|
|
76
|
+
"@webex/plugin-people": "3.7.0-wxcc.1",
|
|
77
|
+
"@webex/plugin-rooms": "3.7.0-wxcc.1",
|
|
78
78
|
"@webex/web-capabilities": "^1.4.0",
|
|
79
|
-
"@webex/webex-core": "3.7.0-
|
|
79
|
+
"@webex/webex-core": "3.7.0-wxcc.1",
|
|
80
80
|
"ampersand-collection": "^2.0.2",
|
|
81
81
|
"bowser": "^2.11.0",
|
|
82
82
|
"btoa": "^1.2.1",
|
|
@@ -92,5 +92,5 @@
|
|
|
92
92
|
"//": [
|
|
93
93
|
"TODO: upgrade jwt-decode when moving to node 18"
|
|
94
94
|
],
|
|
95
|
-
"version": "3.7.0-
|
|
95
|
+
"version": "3.7.0-wxcc.1"
|
|
96
96
|
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import {ERROR_DICTIONARY} from '../../constants';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Error occurred while join the meeting
|
|
5
|
+
*/
|
|
6
|
+
export default class JoinForbiddenError extends Error {
|
|
7
|
+
code: number;
|
|
8
|
+
error: any;
|
|
9
|
+
sdkMessage: string;
|
|
10
|
+
wbxAppApiCode: number;
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* @constructor
|
|
14
|
+
* @param {String} [message]
|
|
15
|
+
* @param {Object} [error]
|
|
16
|
+
*/
|
|
17
|
+
constructor(message: string = ERROR_DICTIONARY.JoinForbiddenError.MESSAGE, error: any = null) {
|
|
18
|
+
super(message);
|
|
19
|
+
this.name = ERROR_DICTIONARY.JoinForbiddenError.NAME;
|
|
20
|
+
this.sdkMessage = message;
|
|
21
|
+
this.error = error;
|
|
22
|
+
this.stack = error ? error.stack : new Error().stack;
|
|
23
|
+
this.code = ERROR_DICTIONARY.JoinForbiddenError.CODE;
|
|
24
|
+
this.wbxAppApiCode = error?.wbxAppApiCode;
|
|
25
|
+
}
|
|
26
|
+
}
|
package/src/constants.ts
CHANGED
|
@@ -36,6 +36,8 @@ export const HOST = 'host';
|
|
|
36
36
|
|
|
37
37
|
export const JOIN = 'join';
|
|
38
38
|
|
|
39
|
+
export const JOIN_LINK_MTID = 'MTID';
|
|
40
|
+
|
|
39
41
|
export const LEAVE = 'leave';
|
|
40
42
|
export const LIVE = 'live';
|
|
41
43
|
export const LOCAL = 'local';
|
|
@@ -104,6 +106,7 @@ export const _ON_HOLD_LOBBY_ = 'ON_HOLD_LOBBY';
|
|
|
104
106
|
export const _MEETING_LINK_ = 'MEETING_LINK';
|
|
105
107
|
export const _MEETING_UUID_ = 'MEETING_UUID';
|
|
106
108
|
export const _MEETING_ = 'MEETING';
|
|
109
|
+
export const _SPACE_SHARE_ = 'SPACE_SHARE';
|
|
107
110
|
export const _MEETING_CENTER_ = 'MEETING_CENTER';
|
|
108
111
|
export const _MEETING_ID_ = 'MEETING_ID';
|
|
109
112
|
|
|
@@ -200,6 +203,7 @@ export const ICE_AND_DTLS_CONNECTION_TIMEOUT = 20000;
|
|
|
200
203
|
export const ROAP_OFFER_ANSWER_EXCHANGE_TIMEOUT = 35000;
|
|
201
204
|
export const WEBINAR_ERROR_WEBCAST = [403026];
|
|
202
205
|
export const WEBINAR_ERROR_REGISTRATIONID = [403037, 403137];
|
|
206
|
+
export const JOIN_BEFORE_HOST = 403003;
|
|
203
207
|
|
|
204
208
|
// ******************** REGEX **********************
|
|
205
209
|
// Please alphabetize
|
|
@@ -550,6 +554,11 @@ export const ERROR_DICTIONARY = {
|
|
|
550
554
|
MESSAGE: 'Client asked for multistream backend (Homer), but got something else instead',
|
|
551
555
|
CODE: 17,
|
|
552
556
|
},
|
|
557
|
+
JoinForbiddenError: {
|
|
558
|
+
NAME: 'JoinForbiddenError',
|
|
559
|
+
MESSAGE: 'Meeting join forbidden.',
|
|
560
|
+
CODE: 18,
|
|
561
|
+
},
|
|
553
562
|
};
|
|
554
563
|
|
|
555
564
|
export const FLOOR_ACTION = {
|
|
@@ -1330,6 +1339,8 @@ export const MEETING_INFO_FAILURE_REASON = {
|
|
|
1330
1339
|
WEBINAR_REGISTRATION: 'WEBINAR_REGISTRATION', // webinar need registration
|
|
1331
1340
|
NEED_JOIN_WITH_WEBCAST: 'NEED_JOIN_WITH_WEBCAST', // webinar need using webcast join
|
|
1332
1341
|
WEBINAR_NEED_REGISTRATIONID: 'WEBINAR_NEED_REGISTRATIONID', // webinar need registrationID
|
|
1342
|
+
NOT_REACH_JBH: 'NOT_REACH_JBH', // Meeting is not allow to access since not reach JBH (join before host) time
|
|
1343
|
+
JOIN_FORBIDDEN: 'JOIN_FORBIDDEN', // meeting is not allow join
|
|
1333
1344
|
OTHER: 'OTHER', // any other error (network, etc)
|
|
1334
1345
|
};
|
|
1335
1346
|
|
|
@@ -1389,3 +1400,12 @@ export const DESTINATION_TYPE = {
|
|
|
1389
1400
|
} as const;
|
|
1390
1401
|
|
|
1391
1402
|
export type DESTINATION_TYPE = Enum<typeof DESTINATION_TYPE>;
|
|
1403
|
+
|
|
1404
|
+
export const INITIAL_REGISTRATION_STATUS = {
|
|
1405
|
+
fetchWebexSite: false,
|
|
1406
|
+
getGeoHint: false,
|
|
1407
|
+
startReachability: false,
|
|
1408
|
+
deviceRegister: false,
|
|
1409
|
+
mercuryConnect: false,
|
|
1410
|
+
checkH264Support: false,
|
|
1411
|
+
};
|
package/src/locus-info/index.ts
CHANGED
|
@@ -10,6 +10,7 @@ import {
|
|
|
10
10
|
_SIP_BRIDGE_,
|
|
11
11
|
MEETING_STATE,
|
|
12
12
|
_MEETING_,
|
|
13
|
+
_SPACE_SHARE_,
|
|
13
14
|
LOCUSINFO,
|
|
14
15
|
LOCUS,
|
|
15
16
|
_LEFT_,
|
|
@@ -489,7 +490,8 @@ export default class LocusInfo extends EventsScope {
|
|
|
489
490
|
isMeetingActive() {
|
|
490
491
|
if (
|
|
491
492
|
this.parsedLocus.fullState.type === _CALL_ ||
|
|
492
|
-
this.parsedLocus.fullState.type === _SIP_BRIDGE_
|
|
493
|
+
this.parsedLocus.fullState.type === _SIP_BRIDGE_ ||
|
|
494
|
+
this.parsedLocus.fullState.type === _SPACE_SHARE_
|
|
493
495
|
) {
|
|
494
496
|
// @ts-ignore
|
|
495
497
|
const partner = this.getLocusPartner(this.participants, this.self);
|
|
@@ -47,6 +47,7 @@ interface IInMeetingActions {
|
|
|
47
47
|
waitingForOthersToJoin?: boolean;
|
|
48
48
|
canSendReactions?: boolean;
|
|
49
49
|
canManageBreakout?: boolean;
|
|
50
|
+
canStartBreakout?: boolean;
|
|
50
51
|
canBroadcastMessageToBreakout?: boolean;
|
|
51
52
|
canAdmitLobbyToBreakout?: boolean;
|
|
52
53
|
isBreakoutPreassignmentsEnabled?: boolean;
|
|
@@ -180,6 +181,8 @@ export default class InMeetingActions implements IInMeetingActions {
|
|
|
180
181
|
|
|
181
182
|
canManageBreakout = null;
|
|
182
183
|
|
|
184
|
+
canStartBreakout = null;
|
|
185
|
+
|
|
183
186
|
canBroadcastMessageToBreakout = null;
|
|
184
187
|
|
|
185
188
|
canAdmitLobbyToBreakout = null;
|
|
@@ -324,6 +327,7 @@ export default class InMeetingActions implements IInMeetingActions {
|
|
|
324
327
|
waitingForOthersToJoin: this.waitingForOthersToJoin,
|
|
325
328
|
canSendReactions: this.canSendReactions,
|
|
326
329
|
canManageBreakout: this.canManageBreakout,
|
|
330
|
+
canStartBreakout: this.canStartBreakout,
|
|
327
331
|
canBroadcastMessageToBreakout: this.canBroadcastMessageToBreakout,
|
|
328
332
|
canAdmitLobbyToBreakout: this.canAdmitLobbyToBreakout,
|
|
329
333
|
isBreakoutPreassignmentsEnabled: this.isBreakoutPreassignmentsEnabled,
|
package/src/meeting/index.ts
CHANGED
|
@@ -123,6 +123,7 @@ import {
|
|
|
123
123
|
NAMED_MEDIA_GROUP_TYPE_AUDIO,
|
|
124
124
|
WEBINAR_ERROR_WEBCAST,
|
|
125
125
|
WEBINAR_ERROR_REGISTRATIONID,
|
|
126
|
+
JOIN_BEFORE_HOST,
|
|
126
127
|
} from '../constants';
|
|
127
128
|
import BEHAVIORAL_METRICS from '../metrics/constants';
|
|
128
129
|
import ParameterError from '../common/errors/parameter';
|
|
@@ -131,6 +132,7 @@ import {
|
|
|
131
132
|
MeetingInfoV2CaptchaError,
|
|
132
133
|
MeetingInfoV2PolicyError,
|
|
133
134
|
MeetingInfoV2JoinWebinarError,
|
|
135
|
+
MeetingInfoV2JoinForbiddenError,
|
|
134
136
|
} from '../meeting-info/meeting-info-v2';
|
|
135
137
|
import {CSI, ReceiveSlotManager} from '../multistream/receiveSlotManager';
|
|
136
138
|
import SendSlotManager from '../multistream/sendSlotManager';
|
|
@@ -162,6 +164,7 @@ import {ConnectionStateHandler, ConnectionStateEvent} from './connectionStateHan
|
|
|
162
164
|
import JoinWebinarError from '../common/errors/join-webinar-error';
|
|
163
165
|
import Member from '../member';
|
|
164
166
|
import MultistreamNotSupportedError from '../common/errors/multistream-not-supported-error';
|
|
167
|
+
import JoinForbiddenError from '../common/errors/join-forbidden-error';
|
|
165
168
|
|
|
166
169
|
// default callback so we don't call an undefined function, but in practice it should never be used
|
|
167
170
|
const DEFAULT_ICE_PHASE_CALLBACK = () => 'JOIN_MEETING_FINAL';
|
|
@@ -1784,6 +1787,20 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1784
1787
|
}
|
|
1785
1788
|
|
|
1786
1789
|
throw new JoinWebinarError();
|
|
1790
|
+
} else if (err instanceof MeetingInfoV2JoinForbiddenError) {
|
|
1791
|
+
this.meetingInfoFailureReason = MEETING_INFO_FAILURE_REASON.JOIN_FORBIDDEN;
|
|
1792
|
+
this.meetingInfoFailureCode = err.wbxAppApiCode;
|
|
1793
|
+
|
|
1794
|
+
if (err.meetingInfo) {
|
|
1795
|
+
this.meetingInfo = err.meetingInfo;
|
|
1796
|
+
}
|
|
1797
|
+
|
|
1798
|
+
// Handle the case where user hasn't reached Join Before Host (JBH) time (error code 403003)
|
|
1799
|
+
if (JOIN_BEFORE_HOST === err.wbxAppApiCode) {
|
|
1800
|
+
this.meetingInfoFailureReason = MEETING_INFO_FAILURE_REASON.NOT_REACH_JBH;
|
|
1801
|
+
}
|
|
1802
|
+
|
|
1803
|
+
throw new JoinForbiddenError(this.meetingInfoFailureReason, err);
|
|
1787
1804
|
} else if (err instanceof MeetingInfoV2PasswordError) {
|
|
1788
1805
|
LoggerProxy.logger.info(
|
|
1789
1806
|
// @ts-ignore
|
|
@@ -3890,6 +3907,7 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
3890
3907
|
this.userDisplayHints
|
|
3891
3908
|
),
|
|
3892
3909
|
canManageBreakout: MeetingUtil.canManageBreakout(this.userDisplayHints),
|
|
3910
|
+
canStartBreakout: MeetingUtil.canStartBreakout(this.userDisplayHints),
|
|
3893
3911
|
canBroadcastMessageToBreakout: MeetingUtil.canBroadcastMessageToBreakout(
|
|
3894
3912
|
this.userDisplayHints,
|
|
3895
3913
|
this.selfUserPolicies
|
|
@@ -4646,6 +4664,7 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
4646
4664
|
|
|
4647
4665
|
this.receiveSlotManager.reset();
|
|
4648
4666
|
this.mediaProperties.webrtcMediaConnection.close();
|
|
4667
|
+
this.mediaProperties.unsetPeerConnection();
|
|
4649
4668
|
this.sendSlotManager.reset();
|
|
4650
4669
|
this.setNetworkStatus(undefined);
|
|
4651
4670
|
}
|
|
@@ -8573,6 +8592,12 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
8573
8592
|
correlationId: this.correlationId,
|
|
8574
8593
|
muted,
|
|
8575
8594
|
encoderImplementation: this.statsAnalyzer?.shareVideoEncoderImplementation,
|
|
8595
|
+
// TypeScript 4 does not recognize the `displaySurface` property. Instead of upgrading the
|
|
8596
|
+
// SDK to TypeScript 5, which may affect other packages, use bracket notation for now, since
|
|
8597
|
+
// all we're doing here is adding metrics.
|
|
8598
|
+
// eslint-disable-next-line dot-notation
|
|
8599
|
+
displaySurface: this.mediaProperties?.shareVideoStream?.getSettings()['displaySurface'],
|
|
8600
|
+
isMultistream: this.isMultistream,
|
|
8576
8601
|
});
|
|
8577
8602
|
};
|
|
8578
8603
|
|
|
@@ -18,6 +18,7 @@ const ADHOC_MEETING_DEFAULT_ERROR =
|
|
|
18
18
|
'Failed starting the adhoc meeting, Please contact support team ';
|
|
19
19
|
const CAPTCHA_ERROR_REQUIRES_PASSWORD_CODES = [423005, 423006];
|
|
20
20
|
const POLICY_ERROR_CODES = [403049, 403104, 403103, 403048, 403102, 403101];
|
|
21
|
+
const JOIN_FORBIDDEN_CODES = [403003];
|
|
21
22
|
/**
|
|
22
23
|
* 403021 - Meeting registration is required
|
|
23
24
|
* 403022 - Meeting registration is still pending
|
|
@@ -162,6 +163,31 @@ export class MeetingInfoV2JoinWebinarError extends Error {
|
|
|
162
163
|
}
|
|
163
164
|
}
|
|
164
165
|
|
|
166
|
+
/**
|
|
167
|
+
* Error preventing join because of a forbidden error
|
|
168
|
+
*/
|
|
169
|
+
export class MeetingInfoV2JoinForbiddenError extends Error {
|
|
170
|
+
meetingInfo: any;
|
|
171
|
+
sdkMessage: any;
|
|
172
|
+
wbxAppApiCode: any;
|
|
173
|
+
body: any;
|
|
174
|
+
/**
|
|
175
|
+
*
|
|
176
|
+
* @constructor
|
|
177
|
+
* @param {Number} [wbxAppApiErrorCode]
|
|
178
|
+
* @param {Object} [meetingInfo]
|
|
179
|
+
* @param {String} [message]
|
|
180
|
+
*/
|
|
181
|
+
constructor(wbxAppApiErrorCode?: number, meetingInfo?: object, message?: string) {
|
|
182
|
+
super(`${message}, code=${wbxAppApiErrorCode}`);
|
|
183
|
+
this.name = 'MeetingInfoV2JoinForbiddenError';
|
|
184
|
+
this.sdkMessage = message;
|
|
185
|
+
this.stack = new Error().stack;
|
|
186
|
+
this.wbxAppApiCode = wbxAppApiErrorCode;
|
|
187
|
+
this.meetingInfo = meetingInfo;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
|
|
165
191
|
/**
|
|
166
192
|
* @class MeetingInfo
|
|
167
193
|
*/
|
|
@@ -238,6 +264,29 @@ export default class MeetingInfoV2 {
|
|
|
238
264
|
}
|
|
239
265
|
};
|
|
240
266
|
|
|
267
|
+
/**
|
|
268
|
+
* Raises a handleForbiddenError for join meeting forbidden error
|
|
269
|
+
* @param {any} err the error from the request
|
|
270
|
+
* @returns {void}
|
|
271
|
+
*/
|
|
272
|
+
handleForbiddenError = (err) => {
|
|
273
|
+
if (!err.body) {
|
|
274
|
+
return;
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
if (JOIN_FORBIDDEN_CODES.includes(err.body?.code)) {
|
|
278
|
+
Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.JOIN_FORBIDDEN_ERROR, {
|
|
279
|
+
code: err.body?.code,
|
|
280
|
+
});
|
|
281
|
+
|
|
282
|
+
throw new MeetingInfoV2JoinForbiddenError(
|
|
283
|
+
err.body?.code,
|
|
284
|
+
err.body?.data?.meetingInfo,
|
|
285
|
+
err.body?.message
|
|
286
|
+
);
|
|
287
|
+
}
|
|
288
|
+
};
|
|
289
|
+
|
|
241
290
|
/**
|
|
242
291
|
* Creates adhoc space meetings for a space by fetching the conversation infomation
|
|
243
292
|
* @param {String} conversationUrl conversationUrl to start adhoc meeting on
|
|
@@ -299,6 +348,7 @@ export default class MeetingInfoV2 {
|
|
|
299
348
|
.catch((err) => {
|
|
300
349
|
this.handlePolicyError(err);
|
|
301
350
|
this.handleJoinWebinarError(err);
|
|
351
|
+
this.handleForbiddenError(err);
|
|
302
352
|
|
|
303
353
|
Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.ADHOC_MEETING_FAILURE, {
|
|
304
354
|
reason: err.message,
|
|
@@ -454,6 +504,7 @@ export default class MeetingInfoV2 {
|
|
|
454
504
|
if (err?.statusCode === 403) {
|
|
455
505
|
this.handlePolicyError(err);
|
|
456
506
|
this.handleJoinWebinarError(err);
|
|
507
|
+
this.handleForbiddenError(err);
|
|
457
508
|
|
|
458
509
|
Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.VERIFY_PASSWORD_ERROR, {
|
|
459
510
|
reason: err.message,
|
|
@@ -19,6 +19,7 @@ import {
|
|
|
19
19
|
UUID_REG,
|
|
20
20
|
VALID_EMAIL_ADDRESS,
|
|
21
21
|
DEFAULT_MEETING_INFO_REQUEST_BODY,
|
|
22
|
+
JOIN_LINK_MTID,
|
|
22
23
|
} from '../constants';
|
|
23
24
|
import ParameterError from '../common/errors/parameter';
|
|
24
25
|
import LoggerProxy from '../common/logs/logger-proxy';
|
|
@@ -70,7 +71,8 @@ export default class MeetingInfoUtil {
|
|
|
70
71
|
parsedUrl.pathname.includes(`/${MEET_M}`) ||
|
|
71
72
|
parsedUrl.pathname.includes(`/${MEET_CISCO}`) ||
|
|
72
73
|
parsedUrl.pathname.includes(`/${MEET_CO}`) ||
|
|
73
|
-
parsedUrl.pathname.includes(`/${JOIN}`)
|
|
74
|
+
parsedUrl.pathname.includes(`/${JOIN}`) ||
|
|
75
|
+
(parsedUrl.search && parsedUrl.search.includes(JOIN_LINK_MTID)));
|
|
74
76
|
}
|
|
75
77
|
|
|
76
78
|
return hostNameBool && pathNameBool;
|