@ethora/chat-component-rn 26.10.9 → 26.10.11
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/CHANGELOG.md +17 -0
- package/README.md +126 -1
- package/lib/commonjs/booking/index.js +44 -0
- package/lib/commonjs/booking/index.js.map +1 -0
- package/lib/commonjs/booking/pendingScheduledCall.js +275 -0
- package/lib/commonjs/booking/pendingScheduledCall.js.map +1 -0
- package/lib/commonjs/booking/scheduleForm.js +91 -0
- package/lib/commonjs/booking/scheduleForm.js.map +1 -0
- package/lib/commonjs/booking/scheduledCall.js +141 -0
- package/lib/commonjs/booking/scheduledCall.js.map +1 -0
- package/lib/commonjs/booking/scheduledCallActions.js +128 -0
- package/lib/commonjs/booking/scheduledCallActions.js.map +1 -0
- package/lib/commonjs/booking/scheduledCallLink.js +143 -0
- package/lib/commonjs/booking/scheduledCallLink.js.map +1 -0
- package/lib/commonjs/booking/scheduledCallStore.js +64 -0
- package/lib/commonjs/booking/scheduledCallStore.js.map +1 -0
- package/lib/commonjs/booking/startRoomCall.js +84 -0
- package/lib/commonjs/booking/startRoomCall.js.map +1 -0
- package/lib/commonjs/calls/callBusy.js +18 -0
- package/lib/commonjs/calls/callBusy.js.map +1 -0
- package/lib/commonjs/calls/callDisplay.js +73 -0
- package/lib/commonjs/calls/callDisplay.js.map +1 -0
- package/lib/commonjs/calls/callMode.js +175 -0
- package/lib/commonjs/calls/callMode.js.map +1 -0
- package/lib/commonjs/calls/declineReport.js +20 -0
- package/lib/commonjs/calls/declineReport.js.map +1 -0
- package/lib/commonjs/calls/p2p/P2PCallController.js +724 -0
- package/lib/commonjs/calls/p2p/P2PCallController.js.map +1 -0
- package/lib/commonjs/calls/p2p/icePolicy.js +107 -0
- package/lib/commonjs/calls/p2p/icePolicy.js.map +1 -0
- package/lib/commonjs/calls/p2p/negotiator.js +202 -0
- package/lib/commonjs/calls/p2p/negotiator.js.map +1 -0
- package/lib/commonjs/calls/p2p/p2pRuntime.js +147 -0
- package/lib/commonjs/calls/p2p/p2pRuntime.js.map +1 -0
- package/lib/commonjs/calls/p2p/signalInbox.js +98 -0
- package/lib/commonjs/calls/p2p/signalInbox.js.map +1 -0
- package/lib/commonjs/calls/p2p/signalStanza.js +141 -0
- package/lib/commonjs/calls/p2p/signalStanza.js.map +1 -0
- package/lib/commonjs/calls/p2p/webrtcRuntime.js +53 -0
- package/lib/commonjs/calls/p2p/webrtcRuntime.js.map +1 -0
- package/lib/commonjs/calls/senderTrust.js +43 -0
- package/lib/commonjs/calls/senderTrust.js.map +1 -0
- package/lib/commonjs/calls/startCall.js +51 -0
- package/lib/commonjs/calls/startCall.js.map +1 -0
- package/lib/commonjs/components/Booking/BookingIcons.js +55 -0
- package/lib/commonjs/components/Booking/BookingIcons.js.map +1 -0
- package/lib/commonjs/components/Booking/ScheduleCallButton.js +64 -0
- package/lib/commonjs/components/Booking/ScheduleCallButton.js.map +1 -0
- package/lib/commonjs/components/Booking/ScheduleCallSheet.js +351 -0
- package/lib/commonjs/components/Booking/ScheduleCallSheet.js.map +1 -0
- package/lib/commonjs/components/Booking/ScheduledCallCard.js +203 -0
- package/lib/commonjs/components/Booking/ScheduledCallCard.js.map +1 -0
- package/lib/commonjs/components/Booking/ScheduledCallHost.js +23 -0
- package/lib/commonjs/components/Booking/ScheduledCallHost.js.map +1 -0
- package/lib/commonjs/components/Booking/ScheduledCallMessage.js +55 -0
- package/lib/commonjs/components/Booking/ScheduledCallMessage.js.map +1 -0
- package/lib/commonjs/components/Booking/ScheduledCallPreJoin.js +235 -0
- package/lib/commonjs/components/Booking/ScheduledCallPreJoin.js.map +1 -0
- package/lib/commonjs/components/Booking/bookingShared.js +305 -0
- package/lib/commonjs/components/Booking/bookingShared.js.map +1 -0
- package/lib/commonjs/components/MainComponents/AlbumGrid.js +6 -2
- package/lib/commonjs/components/MainComponents/AlbumGrid.js.map +1 -1
- package/lib/commonjs/components/MainComponents/ChatHeader.js +18 -12
- package/lib/commonjs/components/MainComponents/ChatHeader.js.map +1 -1
- package/lib/commonjs/components/MainComponents/LanguageSelectorButton.js +5 -2
- package/lib/commonjs/components/MainComponents/LanguageSelectorButton.js.map +1 -1
- package/lib/commonjs/components/MainComponents/LanguageSelectorModal.js +6 -3
- package/lib/commonjs/components/MainComponents/LanguageSelectorModal.js.map +1 -1
- package/lib/commonjs/components/MainComponents/MediaMessage.js +13 -0
- package/lib/commonjs/components/MainComponents/MediaMessage.js.map +1 -1
- package/lib/commonjs/components/MainComponents/MessageContainer.js +13 -0
- package/lib/commonjs/components/MainComponents/MessageContainer.js.map +1 -1
- package/lib/commonjs/components/MainComponents/ReduxWrapper.js +10 -0
- package/lib/commonjs/components/MainComponents/ReduxWrapper.js.map +1 -1
- package/lib/commonjs/components/MainComponents/RoomList.js +7 -16
- package/lib/commonjs/components/MainComponents/RoomList.js.map +1 -1
- package/lib/commonjs/components/MessageBubble/Message.js +27 -1
- package/lib/commonjs/components/MessageBubble/Message.js.map +1 -1
- package/lib/commonjs/components/Modals/ChatProfileModal/ChatMediaGrid.js +159 -0
- package/lib/commonjs/components/Modals/ChatProfileModal/ChatMediaGrid.js.map +1 -0
- package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js +203 -134
- package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
- package/lib/commonjs/components/Modals/ChatProfileModal/LeaveChatModal.js +180 -0
- package/lib/commonjs/components/Modals/ChatProfileModal/LeaveChatModal.js.map +1 -0
- package/lib/commonjs/components/Modals/ChatProfileModal/ReportChatModal.js +19 -15
- package/lib/commonjs/components/Modals/ChatProfileModal/ReportChatModal.js.map +1 -1
- package/lib/commonjs/components/Modals/FilePreviewModal/FilePreviewModal.js +100 -162
- package/lib/commonjs/components/Modals/FilePreviewModal/FilePreviewModal.js.map +1 -1
- package/lib/commonjs/components/Modals/FilePreviewModal/MediaViewer.js +824 -0
- package/lib/commonjs/components/Modals/FilePreviewModal/MediaViewer.js.map +1 -0
- package/lib/commonjs/components/Modals/FilePreviewModal/useSaveFile.js +179 -0
- package/lib/commonjs/components/Modals/FilePreviewModal/useSaveFile.js.map +1 -0
- package/lib/commonjs/components/Modals/MessageSearchModal/MessageSearchModal.js +22 -5
- package/lib/commonjs/components/Modals/MessageSearchModal/MessageSearchModal.js.map +1 -1
- package/lib/commonjs/components/Modals/UserProfileModal/UserProfileModal.js +15 -8
- package/lib/commonjs/components/Modals/UserProfileModal/UserProfileModal.js.map +1 -1
- package/lib/commonjs/components/Modals/UserSettingsModal/LanguageCard.js +1 -1
- package/lib/commonjs/components/Modals/UserSettingsModal/LanguageCard.js.map +1 -1
- package/lib/commonjs/components/VideoCalls/ActiveCallBar.js +3 -2
- package/lib/commonjs/components/VideoCalls/ActiveCallBar.js.map +1 -1
- package/lib/commonjs/components/VideoCalls/CallButtons.js +19 -11
- package/lib/commonjs/components/VideoCalls/CallButtons.js.map +1 -1
- package/lib/commonjs/components/VideoCalls/CallControlBar.js +119 -0
- package/lib/commonjs/components/VideoCalls/CallControlBar.js.map +1 -0
- package/lib/commonjs/components/VideoCalls/CallVideo.js +49 -0
- package/lib/commonjs/components/VideoCalls/CallVideo.js.map +1 -0
- package/lib/commonjs/components/VideoCalls/GroupCallView.js +281 -0
- package/lib/commonjs/components/VideoCalls/GroupCallView.js.map +1 -0
- package/lib/commonjs/components/VideoCalls/P2PCallRunner.js +151 -0
- package/lib/commonjs/components/VideoCalls/P2PCallRunner.js.map +1 -0
- package/lib/commonjs/components/VideoCalls/VideoCallOverlay.js +38 -14
- package/lib/commonjs/components/VideoCalls/VideoCallOverlay.js.map +1 -1
- package/lib/commonjs/components/VideoCalls/VideoCallSession.js +57 -128
- package/lib/commonjs/components/VideoCalls/VideoCallSession.js.map +1 -1
- package/lib/commonjs/components/VideoCalls/callActions.js +3 -0
- package/lib/commonjs/components/VideoCalls/callActions.js.map +1 -1
- package/lib/commonjs/components/VideoCalls/callElapsed.js +38 -0
- package/lib/commonjs/components/VideoCalls/callElapsed.js.map +1 -0
- package/lib/commonjs/components/VideoCalls/callLive.js +15 -0
- package/lib/commonjs/components/VideoCalls/callLive.js.map +1 -0
- package/lib/commonjs/components/VideoCalls/callSessionController.js +81 -24
- package/lib/commonjs/components/VideoCalls/callSessionController.js.map +1 -1
- package/lib/commonjs/components/VideoCalls/callSessionTypes.js +41 -0
- package/lib/commonjs/components/VideoCalls/callSessionTypes.js.map +1 -0
- package/lib/commonjs/components/VideoCalls/groupLayout.js +43 -0
- package/lib/commonjs/components/VideoCalls/groupLayout.js.map +1 -0
- package/lib/commonjs/components/VideoCalls/p2pCallSession.js +272 -0
- package/lib/commonjs/components/VideoCalls/p2pCallSession.js.map +1 -0
- package/lib/commonjs/components/VideoCalls/useCallKeep.js +7 -2
- package/lib/commonjs/components/VideoCalls/useCallKeep.js.map +1 -1
- package/lib/commonjs/components/VideoCalls/useOngoingCallNotification.js +2 -1
- package/lib/commonjs/components/VideoCalls/useOngoingCallNotification.js.map +1 -1
- package/lib/commonjs/components/styled/MessageImage.js +4 -1
- package/lib/commonjs/components/styled/MessageImage.js.map +1 -1
- package/lib/commonjs/components/styled/VideoMessage.js +5 -1
- package/lib/commonjs/components/styled/VideoMessage.js.map +1 -1
- package/lib/commonjs/context/MediaSourceContext.js +18 -0
- package/lib/commonjs/context/MediaSourceContext.js.map +1 -0
- package/lib/commonjs/context/xmppProvider.js +2 -1
- package/lib/commonjs/context/xmppProvider.js.map +1 -1
- package/lib/commonjs/helpers/callPush.js +3 -1
- package/lib/commonjs/helpers/callPush.js.map +1 -1
- package/lib/commonjs/helpers/constants/MODAL_COMPONENTS.js +3 -1
- package/lib/commonjs/helpers/constants/MODAL_COMPONENTS.js.map +1 -1
- package/lib/commonjs/helpers/constants/MODAL_TYPES.js +2 -0
- package/lib/commonjs/helpers/constants/MODAL_TYPES.js.map +1 -1
- package/lib/commonjs/helpers/incomingCallFromPush.js +63 -7
- package/lib/commonjs/helpers/incomingCallFromPush.js.map +1 -1
- package/lib/commonjs/helpers/publicChatsEntry.js +8 -6
- package/lib/commonjs/helpers/publicChatsEntry.js.map +1 -1
- package/lib/commonjs/helpers/pushPayload.js +5 -0
- package/lib/commonjs/helpers/pushPayload.js.map +1 -1
- package/lib/commonjs/helpers/reportRoom.js +76 -0
- package/lib/commonjs/helpers/reportRoom.js.map +1 -0
- package/lib/commonjs/helpers/roomMedia.js +118 -0
- package/lib/commonjs/helpers/roomMedia.js.map +1 -0
- package/lib/commonjs/i18n/strings.js +480 -0
- package/lib/commonjs/i18n/strings.js.map +1 -1
- package/lib/commonjs/main.js +93 -0
- package/lib/commonjs/main.js.map +1 -1
- package/lib/commonjs/networking/api-requests/callState.api.js +75 -0
- package/lib/commonjs/networking/api-requests/callState.api.js.map +1 -0
- package/lib/commonjs/networking/api-requests/push.api.js +29 -6
- package/lib/commonjs/networking/api-requests/push.api.js.map +1 -1
- package/lib/commonjs/networking/api-requests/rooms.api.js +17 -15
- package/lib/commonjs/networking/api-requests/rooms.api.js.map +1 -1
- package/lib/commonjs/networking/api-requests/scheduledCalls.api.js +141 -0
- package/lib/commonjs/networking/api-requests/scheduledCalls.api.js.map +1 -0
- package/lib/commonjs/networking/callTokenStanza.js +210 -50
- package/lib/commonjs/networking/callTokenStanza.js.map +1 -1
- package/lib/commonjs/roomStore/callSlice.js +59 -4
- package/lib/commonjs/roomStore/callSlice.js.map +1 -1
- package/lib/commonjs/services/appBadge.js +80 -0
- package/lib/commonjs/services/appBadge.js.map +1 -0
- package/lib/commonjs/services/languageSettings.js +47 -15
- package/lib/commonjs/services/languageSettings.js.map +1 -1
- package/lib/commonjs/services/pushRegistration.js +21 -5
- package/lib/commonjs/services/pushRegistration.js.map +1 -1
- package/lib/commonjs/version.js +1 -1
- package/lib/commonjs/version.js.map +1 -1
- package/lib/module/booking/index.js +5 -0
- package/lib/module/booking/index.js.map +1 -0
- package/lib/module/booking/pendingScheduledCall.js +261 -0
- package/lib/module/booking/pendingScheduledCall.js.map +1 -0
- package/lib/module/booking/scheduleForm.js +79 -0
- package/lib/module/booking/scheduleForm.js.map +1 -0
- package/lib/module/booking/scheduledCall.js +129 -0
- package/lib/module/booking/scheduledCall.js.map +1 -0
- package/lib/module/booking/scheduledCallActions.js +118 -0
- package/lib/module/booking/scheduledCallActions.js.map +1 -0
- package/lib/module/booking/scheduledCallLink.js +136 -0
- package/lib/module/booking/scheduledCallLink.js.map +1 -0
- package/lib/module/booking/scheduledCallStore.js +60 -0
- package/lib/module/booking/scheduledCallStore.js.map +1 -0
- package/lib/module/booking/startRoomCall.js +80 -0
- package/lib/module/booking/startRoomCall.js.map +1 -0
- package/lib/module/calls/callBusy.js +13 -0
- package/lib/module/calls/callBusy.js.map +1 -0
- package/lib/module/calls/callDisplay.js +65 -0
- package/lib/module/calls/callDisplay.js.map +1 -0
- package/lib/module/calls/callMode.js +168 -0
- package/lib/module/calls/callMode.js.map +1 -0
- package/lib/module/calls/declineReport.js +16 -0
- package/lib/module/calls/declineReport.js.map +1 -0
- package/lib/module/calls/p2p/P2PCallController.js +718 -0
- package/lib/module/calls/p2p/P2PCallController.js.map +1 -0
- package/lib/module/calls/p2p/icePolicy.js +102 -0
- package/lib/module/calls/p2p/icePolicy.js.map +1 -0
- package/lib/module/calls/p2p/negotiator.js +197 -0
- package/lib/module/calls/p2p/negotiator.js.map +1 -0
- package/lib/module/calls/p2p/p2pRuntime.js +137 -0
- package/lib/module/calls/p2p/p2pRuntime.js.map +1 -0
- package/lib/module/calls/p2p/signalInbox.js +93 -0
- package/lib/module/calls/p2p/signalInbox.js.map +1 -0
- package/lib/module/calls/p2p/signalStanza.js +135 -0
- package/lib/module/calls/p2p/signalStanza.js.map +1 -0
- package/lib/module/calls/p2p/webrtcRuntime.js +46 -0
- package/lib/module/calls/p2p/webrtcRuntime.js.map +1 -0
- package/lib/module/calls/senderTrust.js +38 -0
- package/lib/module/calls/senderTrust.js.map +1 -0
- package/lib/module/calls/startCall.js +47 -0
- package/lib/module/calls/startCall.js.map +1 -0
- package/lib/module/components/Booking/BookingIcons.js +48 -0
- package/lib/module/components/Booking/BookingIcons.js.map +1 -0
- package/lib/module/components/Booking/ScheduleCallButton.js +59 -0
- package/lib/module/components/Booking/ScheduleCallButton.js.map +1 -0
- package/lib/module/components/Booking/ScheduleCallSheet.js +345 -0
- package/lib/module/components/Booking/ScheduleCallSheet.js.map +1 -0
- package/lib/module/components/Booking/ScheduledCallCard.js +197 -0
- package/lib/module/components/Booking/ScheduledCallCard.js.map +1 -0
- package/lib/module/components/Booking/ScheduledCallHost.js +18 -0
- package/lib/module/components/Booking/ScheduledCallHost.js.map +1 -0
- package/lib/module/components/Booking/ScheduledCallMessage.js +48 -0
- package/lib/module/components/Booking/ScheduledCallMessage.js.map +1 -0
- package/lib/module/components/Booking/ScheduledCallPreJoin.js +229 -0
- package/lib/module/components/Booking/ScheduledCallPreJoin.js.map +1 -0
- package/lib/module/components/Booking/bookingShared.js +291 -0
- package/lib/module/components/Booking/bookingShared.js.map +1 -0
- package/lib/module/components/MainComponents/AlbumGrid.js +6 -2
- package/lib/module/components/MainComponents/AlbumGrid.js.map +1 -1
- package/lib/module/components/MainComponents/ChatHeader.js +20 -14
- package/lib/module/components/MainComponents/ChatHeader.js.map +1 -1
- package/lib/module/components/MainComponents/LanguageSelectorButton.js +5 -2
- package/lib/module/components/MainComponents/LanguageSelectorButton.js.map +1 -1
- package/lib/module/components/MainComponents/LanguageSelectorModal.js +7 -4
- package/lib/module/components/MainComponents/LanguageSelectorModal.js.map +1 -1
- package/lib/module/components/MainComponents/MediaMessage.js +13 -0
- package/lib/module/components/MainComponents/MediaMessage.js.map +1 -1
- package/lib/module/components/MainComponents/MessageContainer.js +13 -0
- package/lib/module/components/MainComponents/MessageContainer.js.map +1 -1
- package/lib/module/components/MainComponents/ReduxWrapper.js +10 -0
- package/lib/module/components/MainComponents/ReduxWrapper.js.map +1 -1
- package/lib/module/components/MainComponents/RoomList.js +7 -16
- package/lib/module/components/MainComponents/RoomList.js.map +1 -1
- package/lib/module/components/MessageBubble/Message.js +27 -1
- package/lib/module/components/MessageBubble/Message.js.map +1 -1
- package/lib/module/components/Modals/ChatProfileModal/ChatMediaGrid.js +154 -0
- package/lib/module/components/Modals/ChatProfileModal/ChatMediaGrid.js.map +1 -0
- package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js +204 -136
- package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
- package/lib/module/components/Modals/ChatProfileModal/LeaveChatModal.js +175 -0
- package/lib/module/components/Modals/ChatProfileModal/LeaveChatModal.js.map +1 -0
- package/lib/module/components/Modals/ChatProfileModal/ReportChatModal.js +21 -15
- package/lib/module/components/Modals/ChatProfileModal/ReportChatModal.js.map +1 -1
- package/lib/module/components/Modals/FilePreviewModal/FilePreviewModal.js +100 -163
- package/lib/module/components/Modals/FilePreviewModal/FilePreviewModal.js.map +1 -1
- package/lib/module/components/Modals/FilePreviewModal/MediaViewer.js +819 -0
- package/lib/module/components/Modals/FilePreviewModal/MediaViewer.js.map +1 -0
- package/lib/module/components/Modals/FilePreviewModal/useSaveFile.js +172 -0
- package/lib/module/components/Modals/FilePreviewModal/useSaveFile.js.map +1 -0
- package/lib/module/components/Modals/MessageSearchModal/MessageSearchModal.js +20 -4
- package/lib/module/components/Modals/MessageSearchModal/MessageSearchModal.js.map +1 -1
- package/lib/module/components/Modals/UserProfileModal/UserProfileModal.js +17 -10
- package/lib/module/components/Modals/UserProfileModal/UserProfileModal.js.map +1 -1
- package/lib/module/components/Modals/UserSettingsModal/LanguageCard.js +1 -1
- package/lib/module/components/Modals/UserSettingsModal/LanguageCard.js.map +1 -1
- package/lib/module/components/VideoCalls/ActiveCallBar.js +3 -2
- package/lib/module/components/VideoCalls/ActiveCallBar.js.map +1 -1
- package/lib/module/components/VideoCalls/CallButtons.js +19 -11
- package/lib/module/components/VideoCalls/CallButtons.js.map +1 -1
- package/lib/module/components/VideoCalls/CallControlBar.js +113 -0
- package/lib/module/components/VideoCalls/CallControlBar.js.map +1 -0
- package/lib/module/components/VideoCalls/CallVideo.js +43 -0
- package/lib/module/components/VideoCalls/CallVideo.js.map +1 -0
- package/lib/module/components/VideoCalls/GroupCallView.js +275 -0
- package/lib/module/components/VideoCalls/GroupCallView.js.map +1 -0
- package/lib/module/components/VideoCalls/P2PCallRunner.js +147 -0
- package/lib/module/components/VideoCalls/P2PCallRunner.js.map +1 -0
- package/lib/module/components/VideoCalls/VideoCallOverlay.js +38 -14
- package/lib/module/components/VideoCalls/VideoCallOverlay.js.map +1 -1
- package/lib/module/components/VideoCalls/VideoCallSession.js +46 -127
- package/lib/module/components/VideoCalls/VideoCallSession.js.map +1 -1
- package/lib/module/components/VideoCalls/callActions.js +3 -0
- package/lib/module/components/VideoCalls/callActions.js.map +1 -1
- package/lib/module/components/VideoCalls/callElapsed.js +33 -0
- package/lib/module/components/VideoCalls/callElapsed.js.map +1 -0
- package/lib/module/components/VideoCalls/callLive.js +10 -0
- package/lib/module/components/VideoCalls/callLive.js.map +1 -0
- package/lib/module/components/VideoCalls/callSessionController.js +80 -24
- package/lib/module/components/VideoCalls/callSessionController.js.map +1 -1
- package/lib/module/components/VideoCalls/callSessionTypes.js +37 -0
- package/lib/module/components/VideoCalls/callSessionTypes.js.map +1 -0
- package/lib/module/components/VideoCalls/groupLayout.js +36 -0
- package/lib/module/components/VideoCalls/groupLayout.js.map +1 -0
- package/lib/module/components/VideoCalls/p2pCallSession.js +256 -0
- package/lib/module/components/VideoCalls/p2pCallSession.js.map +1 -0
- package/lib/module/components/VideoCalls/useCallKeep.js +8 -2
- package/lib/module/components/VideoCalls/useCallKeep.js.map +1 -1
- package/lib/module/components/VideoCalls/useOngoingCallNotification.js +2 -1
- package/lib/module/components/VideoCalls/useOngoingCallNotification.js.map +1 -1
- package/lib/module/components/styled/MessageImage.js +4 -1
- package/lib/module/components/styled/MessageImage.js.map +1 -1
- package/lib/module/components/styled/VideoMessage.js +5 -1
- package/lib/module/components/styled/VideoMessage.js.map +1 -1
- package/lib/module/context/MediaSourceContext.js +13 -0
- package/lib/module/context/MediaSourceContext.js.map +1 -0
- package/lib/module/context/xmppProvider.js +2 -1
- package/lib/module/context/xmppProvider.js.map +1 -1
- package/lib/module/helpers/callPush.js +3 -1
- package/lib/module/helpers/callPush.js.map +1 -1
- package/lib/module/helpers/constants/MODAL_COMPONENTS.js +2 -1
- package/lib/module/helpers/constants/MODAL_COMPONENTS.js.map +1 -1
- package/lib/module/helpers/constants/MODAL_TYPES.js +2 -0
- package/lib/module/helpers/constants/MODAL_TYPES.js.map +1 -1
- package/lib/module/helpers/incomingCallFromPush.js +63 -7
- package/lib/module/helpers/incomingCallFromPush.js.map +1 -1
- package/lib/module/helpers/publicChatsEntry.js +8 -6
- package/lib/module/helpers/publicChatsEntry.js.map +1 -1
- package/lib/module/helpers/pushPayload.js +5 -0
- package/lib/module/helpers/pushPayload.js.map +1 -1
- package/lib/module/helpers/reportRoom.js +70 -0
- package/lib/module/helpers/reportRoom.js.map +1 -0
- package/lib/module/helpers/roomMedia.js +112 -0
- package/lib/module/helpers/roomMedia.js.map +1 -0
- package/lib/module/i18n/strings.js +480 -0
- package/lib/module/i18n/strings.js.map +1 -1
- package/lib/module/main.js +5 -0
- package/lib/module/main.js.map +1 -1
- package/lib/module/networking/api-requests/callState.api.js +66 -0
- package/lib/module/networking/api-requests/callState.api.js.map +1 -0
- package/lib/module/networking/api-requests/push.api.js +29 -6
- package/lib/module/networking/api-requests/push.api.js.map +1 -1
- package/lib/module/networking/api-requests/rooms.api.js +17 -15
- package/lib/module/networking/api-requests/rooms.api.js.map +1 -1
- package/lib/module/networking/api-requests/scheduledCalls.api.js +130 -0
- package/lib/module/networking/api-requests/scheduledCalls.api.js.map +1 -0
- package/lib/module/networking/callTokenStanza.js +210 -50
- package/lib/module/networking/callTokenStanza.js.map +1 -1
- package/lib/module/roomStore/callSlice.js +57 -3
- package/lib/module/roomStore/callSlice.js.map +1 -1
- package/lib/module/services/appBadge.js +74 -0
- package/lib/module/services/appBadge.js.map +1 -0
- package/lib/module/services/languageSettings.js +44 -13
- package/lib/module/services/languageSettings.js.map +1 -1
- package/lib/module/services/pushRegistration.js +21 -5
- package/lib/module/services/pushRegistration.js.map +1 -1
- package/lib/module/version.js +1 -1
- package/lib/module/version.js.map +1 -1
- package/lib/typescript/booking/index.d.ts +3 -0
- package/lib/typescript/booking/index.d.ts.map +1 -0
- package/lib/typescript/booking/pendingScheduledCall.d.ts +80 -0
- package/lib/typescript/booking/pendingScheduledCall.d.ts.map +1 -0
- package/lib/typescript/booking/scheduleForm.d.ts +28 -0
- package/lib/typescript/booking/scheduleForm.d.ts.map +1 -0
- package/lib/typescript/booking/scheduledCall.d.ts +52 -0
- package/lib/typescript/booking/scheduledCall.d.ts.map +1 -0
- package/lib/typescript/booking/scheduledCallActions.d.ts +22 -0
- package/lib/typescript/booking/scheduledCallActions.d.ts.map +1 -0
- package/lib/typescript/booking/scheduledCallLink.d.ts +37 -0
- package/lib/typescript/booking/scheduledCallLink.d.ts.map +1 -0
- package/lib/typescript/booking/scheduledCallStore.d.ts +47 -0
- package/lib/typescript/booking/scheduledCallStore.d.ts.map +1 -0
- package/lib/typescript/booking/startRoomCall.d.ts +12 -0
- package/lib/typescript/booking/startRoomCall.d.ts.map +1 -0
- package/lib/typescript/calls/callBusy.d.ts +9 -0
- package/lib/typescript/calls/callBusy.d.ts.map +1 -0
- package/lib/typescript/calls/callDisplay.d.ts +23 -0
- package/lib/typescript/calls/callDisplay.d.ts.map +1 -0
- package/lib/typescript/calls/callMode.d.ts +106 -0
- package/lib/typescript/calls/callMode.d.ts.map +1 -0
- package/lib/typescript/calls/declineReport.d.ts +11 -0
- package/lib/typescript/calls/declineReport.d.ts.map +1 -0
- package/lib/typescript/calls/p2p/P2PCallController.d.ts +150 -0
- package/lib/typescript/calls/p2p/P2PCallController.d.ts.map +1 -0
- package/lib/typescript/calls/p2p/icePolicy.d.ts +37 -0
- package/lib/typescript/calls/p2p/icePolicy.d.ts.map +1 -0
- package/lib/typescript/calls/p2p/negotiator.d.ts +57 -0
- package/lib/typescript/calls/p2p/negotiator.d.ts.map +1 -0
- package/lib/typescript/calls/p2p/p2pRuntime.d.ts +41 -0
- package/lib/typescript/calls/p2p/p2pRuntime.d.ts.map +1 -0
- package/lib/typescript/calls/p2p/signalInbox.d.ts +35 -0
- package/lib/typescript/calls/p2p/signalInbox.d.ts.map +1 -0
- package/lib/typescript/calls/p2p/signalStanza.d.ts +52 -0
- package/lib/typescript/calls/p2p/signalStanza.d.ts.map +1 -0
- package/lib/typescript/calls/p2p/webrtcRuntime.d.ts +32 -0
- package/lib/typescript/calls/p2p/webrtcRuntime.d.ts.map +1 -0
- package/lib/typescript/calls/senderTrust.d.ts +8 -0
- package/lib/typescript/calls/senderTrust.d.ts.map +1 -0
- package/lib/typescript/calls/startCall.d.ts +17 -0
- package/lib/typescript/calls/startCall.d.ts.map +1 -0
- package/lib/typescript/components/Booking/BookingIcons.d.ts +9 -0
- package/lib/typescript/components/Booking/BookingIcons.d.ts.map +1 -0
- package/lib/typescript/components/Booking/ScheduleCallButton.d.ts +11 -0
- package/lib/typescript/components/Booking/ScheduleCallButton.d.ts.map +1 -0
- package/lib/typescript/components/Booking/ScheduleCallSheet.d.ts +4 -0
- package/lib/typescript/components/Booking/ScheduleCallSheet.d.ts.map +1 -0
- package/lib/typescript/components/Booking/ScheduledCallCard.d.ts +14 -0
- package/lib/typescript/components/Booking/ScheduledCallCard.d.ts.map +1 -0
- package/lib/typescript/components/Booking/ScheduledCallHost.d.ts +10 -0
- package/lib/typescript/components/Booking/ScheduledCallHost.d.ts.map +1 -0
- package/lib/typescript/components/Booking/ScheduledCallMessage.d.ts +20 -0
- package/lib/typescript/components/Booking/ScheduledCallMessage.d.ts.map +1 -0
- package/lib/typescript/components/Booking/ScheduledCallPreJoin.d.ts +8 -0
- package/lib/typescript/components/Booking/ScheduledCallPreJoin.d.ts.map +1 -0
- package/lib/typescript/components/Booking/bookingShared.d.ts +199 -0
- package/lib/typescript/components/Booking/bookingShared.d.ts.map +1 -0
- package/lib/typescript/components/MainComponents/AlbumGrid.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/ChatHeader.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/LanguageSelectorButton.d.ts +3 -1
- package/lib/typescript/components/MainComponents/LanguageSelectorButton.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/LanguageSelectorModal.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/MediaMessage.d.ts +3 -1
- package/lib/typescript/components/MainComponents/MediaMessage.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/MessageContainer.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/ReduxWrapper.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/RoomList.d.ts.map +1 -1
- package/lib/typescript/components/MessageBubble/Message.d.ts.map +1 -1
- package/lib/typescript/components/Modals/ChatProfileModal/ChatMediaGrid.d.ts +16 -0
- package/lib/typescript/components/Modals/ChatProfileModal/ChatMediaGrid.d.ts.map +1 -0
- package/lib/typescript/components/Modals/ChatProfileModal/ChatProfileModal.d.ts.map +1 -1
- package/lib/typescript/components/Modals/ChatProfileModal/LeaveChatModal.d.ts +18 -0
- package/lib/typescript/components/Modals/ChatProfileModal/LeaveChatModal.d.ts.map +1 -0
- package/lib/typescript/components/Modals/ChatProfileModal/ReportChatModal.d.ts.map +1 -1
- package/lib/typescript/components/Modals/FilePreviewModal/FilePreviewModal.d.ts +16 -0
- package/lib/typescript/components/Modals/FilePreviewModal/FilePreviewModal.d.ts.map +1 -1
- package/lib/typescript/components/Modals/FilePreviewModal/MediaViewer.d.ts +27 -0
- package/lib/typescript/components/Modals/FilePreviewModal/MediaViewer.d.ts.map +1 -0
- package/lib/typescript/components/Modals/FilePreviewModal/useSaveFile.d.ts +9 -0
- package/lib/typescript/components/Modals/FilePreviewModal/useSaveFile.d.ts.map +1 -0
- package/lib/typescript/components/Modals/MessageSearchModal/MessageSearchModal.d.ts +8 -0
- package/lib/typescript/components/Modals/MessageSearchModal/MessageSearchModal.d.ts.map +1 -1
- package/lib/typescript/components/Modals/UserProfileModal/UserProfileModal.d.ts.map +1 -1
- package/lib/typescript/components/Modals/UserSettingsModal/LanguageCard.d.ts.map +1 -1
- package/lib/typescript/components/VideoCalls/ActiveCallBar.d.ts.map +1 -1
- package/lib/typescript/components/VideoCalls/CallButtons.d.ts +2 -1
- package/lib/typescript/components/VideoCalls/CallButtons.d.ts.map +1 -1
- package/lib/typescript/components/VideoCalls/CallControlBar.d.ts +17 -0
- package/lib/typescript/components/VideoCalls/CallControlBar.d.ts.map +1 -0
- package/lib/typescript/components/VideoCalls/CallVideo.d.ts +23 -0
- package/lib/typescript/components/VideoCalls/CallVideo.d.ts.map +1 -0
- package/lib/typescript/components/VideoCalls/GroupCallView.d.ts +22 -0
- package/lib/typescript/components/VideoCalls/GroupCallView.d.ts.map +1 -0
- package/lib/typescript/components/VideoCalls/P2PCallRunner.d.ts +2 -0
- package/lib/typescript/components/VideoCalls/P2PCallRunner.d.ts.map +1 -0
- package/lib/typescript/components/VideoCalls/VideoCallOverlay.d.ts.map +1 -1
- package/lib/typescript/components/VideoCalls/VideoCallSession.d.ts +10 -12
- package/lib/typescript/components/VideoCalls/VideoCallSession.d.ts.map +1 -1
- package/lib/typescript/components/VideoCalls/callActions.d.ts.map +1 -1
- package/lib/typescript/components/VideoCalls/callElapsed.d.ts +8 -0
- package/lib/typescript/components/VideoCalls/callElapsed.d.ts.map +1 -0
- package/lib/typescript/components/VideoCalls/callLive.d.ts +9 -0
- package/lib/typescript/components/VideoCalls/callLive.d.ts.map +1 -0
- package/lib/typescript/components/VideoCalls/callSessionController.d.ts +10 -31
- package/lib/typescript/components/VideoCalls/callSessionController.d.ts.map +1 -1
- package/lib/typescript/components/VideoCalls/callSessionTypes.d.ts +60 -0
- package/lib/typescript/components/VideoCalls/callSessionTypes.d.ts.map +1 -0
- package/lib/typescript/components/VideoCalls/groupLayout.d.ts +23 -0
- package/lib/typescript/components/VideoCalls/groupLayout.d.ts.map +1 -0
- package/lib/typescript/components/VideoCalls/p2pCallSession.d.ts +31 -0
- package/lib/typescript/components/VideoCalls/p2pCallSession.d.ts.map +1 -0
- package/lib/typescript/components/VideoCalls/useCallKeep.d.ts.map +1 -1
- package/lib/typescript/components/VideoCalls/useOngoingCallNotification.d.ts.map +1 -1
- package/lib/typescript/components/styled/MessageImage.d.ts.map +1 -1
- package/lib/typescript/components/styled/VideoMessage.d.ts.map +1 -1
- package/lib/typescript/context/MediaSourceContext.d.ts +4 -0
- package/lib/typescript/context/MediaSourceContext.d.ts.map +1 -0
- package/lib/typescript/context/xmppProvider.d.ts.map +1 -1
- package/lib/typescript/helpers/callPush.d.ts +11 -1
- package/lib/typescript/helpers/callPush.d.ts.map +1 -1
- package/lib/typescript/helpers/constants/MODAL_COMPONENTS.d.ts.map +1 -1
- package/lib/typescript/helpers/constants/MODAL_TYPES.d.ts +2 -0
- package/lib/typescript/helpers/constants/MODAL_TYPES.d.ts.map +1 -1
- package/lib/typescript/helpers/incomingCallFromPush.d.ts.map +1 -1
- package/lib/typescript/helpers/publicChatsEntry.d.ts +7 -5
- package/lib/typescript/helpers/publicChatsEntry.d.ts.map +1 -1
- package/lib/typescript/helpers/pushPayload.d.ts +1 -1
- package/lib/typescript/helpers/pushPayload.d.ts.map +1 -1
- package/lib/typescript/helpers/reportRoom.d.ts +19 -0
- package/lib/typescript/helpers/reportRoom.d.ts.map +1 -0
- package/lib/typescript/helpers/roomMedia.d.ts +26 -0
- package/lib/typescript/helpers/roomMedia.d.ts.map +1 -0
- package/lib/typescript/i18n/strings.d.ts.map +1 -1
- package/lib/typescript/main.d.ts +6 -1
- package/lib/typescript/main.d.ts.map +1 -1
- package/lib/typescript/networking/api-requests/callState.api.d.ts +25 -0
- package/lib/typescript/networking/api-requests/callState.api.d.ts.map +1 -0
- package/lib/typescript/networking/api-requests/push.api.d.ts +9 -2
- package/lib/typescript/networking/api-requests/push.api.d.ts.map +1 -1
- package/lib/typescript/networking/api-requests/rooms.api.d.ts +8 -6
- package/lib/typescript/networking/api-requests/rooms.api.d.ts.map +1 -1
- package/lib/typescript/networking/api-requests/scheduledCalls.api.d.ts +86 -0
- package/lib/typescript/networking/api-requests/scheduledCalls.api.d.ts.map +1 -0
- package/lib/typescript/networking/callTokenStanza.d.ts.map +1 -1
- package/lib/typescript/roomStore/callSlice.d.ts +23 -1
- package/lib/typescript/roomStore/callSlice.d.ts.map +1 -1
- package/lib/typescript/services/appBadge.d.ts +3 -0
- package/lib/typescript/services/appBadge.d.ts.map +1 -0
- package/lib/typescript/services/languageSettings.d.ts +7 -0
- package/lib/typescript/services/languageSettings.d.ts.map +1 -1
- package/lib/typescript/services/pushRegistration.d.ts.map +1 -1
- package/lib/typescript/types/models/modal.model.d.ts +18 -0
- package/lib/typescript/types/models/modal.model.d.ts.map +1 -1
- package/lib/typescript/types/types.d.ts +85 -4
- package/lib/typescript/types/types.d.ts.map +1 -1
- package/lib/typescript/version.d.ts +1 -1
- package/lib/typescript/version.d.ts.map +1 -1
- package/package.json +9 -2
- package/src/booking/index.ts +10 -0
- package/src/booking/pendingScheduledCall.ts +272 -0
- package/src/booking/scheduleForm.ts +84 -0
- package/src/booking/scheduledCall.ts +163 -0
- package/src/booking/scheduledCallActions.ts +141 -0
- package/src/booking/scheduledCallLink.ts +145 -0
- package/src/booking/scheduledCallStore.ts +69 -0
- package/src/booking/startRoomCall.ts +103 -0
- package/src/calls/callBusy.ts +10 -0
- package/src/calls/callDisplay.ts +74 -0
- package/src/calls/callMode.ts +286 -0
- package/src/calls/declineReport.ts +16 -0
- package/src/calls/p2p/P2PCallController.ts +813 -0
- package/src/calls/p2p/icePolicy.ts +99 -0
- package/src/calls/p2p/negotiator.ts +186 -0
- package/src/calls/p2p/p2pRuntime.ts +164 -0
- package/src/calls/p2p/signalInbox.ts +117 -0
- package/src/calls/p2p/signalStanza.ts +205 -0
- package/src/calls/p2p/webrtcRuntime.ts +60 -0
- package/src/calls/senderTrust.ts +40 -0
- package/src/calls/startCall.ts +56 -0
- package/src/components/Booking/BookingIcons.tsx +44 -0
- package/src/components/Booking/ScheduleCallButton.tsx +66 -0
- package/src/components/Booking/ScheduleCallSheet.tsx +380 -0
- package/src/components/Booking/ScheduledCallCard.tsx +216 -0
- package/src/components/Booking/ScheduledCallHost.tsx +18 -0
- package/src/components/Booking/ScheduledCallMessage.tsx +62 -0
- package/src/components/Booking/ScheduledCallPreJoin.tsx +230 -0
- package/src/components/Booking/bookingShared.tsx +295 -0
- package/src/components/MainComponents/AlbumGrid.tsx +5 -1
- package/src/components/MainComponents/ChatHeader.tsx +18 -11
- package/src/components/MainComponents/LanguageSelectorButton.tsx +9 -2
- package/src/components/MainComponents/LanguageSelectorModal.tsx +10 -6
- package/src/components/MainComponents/MediaMessage.tsx +13 -2
- package/src/components/MainComponents/MessageContainer.tsx +15 -0
- package/src/components/MainComponents/ReduxWrapper.tsx +10 -0
- package/src/components/MainComponents/RoomList.tsx +8 -19
- package/src/components/MessageBubble/Message.tsx +24 -1
- package/src/components/Modals/ChatProfileModal/ChatMediaGrid.tsx +174 -0
- package/src/components/Modals/ChatProfileModal/ChatProfileModal.tsx +119 -48
- package/src/components/Modals/ChatProfileModal/LeaveChatModal.tsx +191 -0
- package/src/components/Modals/ChatProfileModal/ReportChatModal.tsx +22 -22
- package/src/components/Modals/FilePreviewModal/FilePreviewModal.tsx +115 -185
- package/src/components/Modals/FilePreviewModal/MediaViewer.tsx +880 -0
- package/src/components/Modals/FilePreviewModal/useSaveFile.ts +207 -0
- package/src/components/Modals/MessageSearchModal/MessageSearchModal.tsx +56 -30
- package/src/components/Modals/UserProfileModal/UserProfileModal.tsx +28 -9
- package/src/components/Modals/UserSettingsModal/LanguageCard.tsx +9 -7
- package/src/components/VideoCalls/ActiveCallBar.tsx +6 -5
- package/src/components/VideoCalls/CallButtons.tsx +23 -12
- package/src/components/VideoCalls/CallControlBar.tsx +131 -0
- package/src/components/VideoCalls/CallVideo.tsx +59 -0
- package/src/components/VideoCalls/GroupCallView.tsx +324 -0
- package/src/components/VideoCalls/P2PCallRunner.tsx +192 -0
- package/src/components/VideoCalls/VideoCallOverlay.tsx +62 -17
- package/src/components/VideoCalls/VideoCallSession.tsx +55 -133
- package/src/components/VideoCalls/callActions.ts +3 -0
- package/src/components/VideoCalls/callElapsed.ts +27 -0
- package/src/components/VideoCalls/callLive.ts +13 -0
- package/src/components/VideoCalls/callSessionController.ts +130 -55
- package/src/components/VideoCalls/callSessionTypes.ts +80 -0
- package/src/components/VideoCalls/groupLayout.ts +48 -0
- package/src/components/VideoCalls/p2pCallSession.ts +291 -0
- package/src/components/VideoCalls/useCallKeep.ts +9 -2
- package/src/components/VideoCalls/useOngoingCallNotification.ts +2 -2
- package/src/components/styled/MessageImage.tsx +3 -1
- package/src/components/styled/VideoMessage.tsx +5 -1
- package/src/context/MediaSourceContext.tsx +14 -0
- package/src/context/xmppProvider.tsx +3 -0
- package/src/helpers/callPush.ts +13 -1
- package/src/helpers/constants/MODAL_COMPONENTS.tsx +4 -1
- package/src/helpers/constants/MODAL_TYPES.ts +2 -0
- package/src/helpers/incomingCallFromPush.ts +65 -7
- package/src/helpers/publicChatsEntry.ts +8 -7
- package/src/helpers/pushPayload.ts +9 -1
- package/src/helpers/reportRoom.ts +93 -0
- package/src/helpers/roomMedia.ts +126 -0
- package/src/i18n/strings.ts +480 -0
- package/src/main.ts +33 -0
- package/src/networking/api-requests/callState.api.ts +83 -0
- package/src/networking/api-requests/push.api.ts +28 -3
- package/src/networking/api-requests/rooms.api.ts +25 -15
- package/src/networking/api-requests/scheduledCalls.api.ts +232 -0
- package/src/networking/callTokenStanza.ts +247 -50
- package/src/roomStore/callSlice.ts +86 -2
- package/src/services/appBadge.ts +85 -0
- package/src/services/languageSettings.ts +43 -8
- package/src/services/pushRegistration.ts +34 -3
- package/src/types/models/modal.model.ts +16 -0
- package/src/types/types.ts +86 -4
- package/src/version.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["uniqueMembers","store","addRoom","mergeUsersSet","updateRoom","http","mapApiLastMessage","readApiUnreadCount","readApiUsersCnt","usableImage","value","url","trim","dispatchUsersSetFromRestItems","items","length","ownXmpp","String","getState","chatSettingStore","user","xmppUsername","appId","includes","split","known","rooms","usersSet","members","item","list","Array","isArray","m","before","_id","undefined","entry","firstName","lastName","profileImage","description","role","ban_status","last_active","jid","name","keys","Set","add","forEach","k","Object","dispatch","memberAccount","member","explicit","ownAppId","toRoomMembers","map","toE2eeMembers","filter","memberCount","usersCnt","participants","dispatchRoomsFromRestItems","keepMuted","config","host","xmppSettings","conference","replace","baseUrl","exec","console","warn","apiUnreadCount","preview","keep","fresh","existing","room","id","title","messages","isLoading","roomBg","icon","picture","createdAt","updatedAt","muted","unreadMessages","apiUnreadSeededAt","Date","now","lastMessage","type","e2ee","roomMembers","roomData","ROOM_MEMBERS_TTL_MS","roomMembersLoads","Map","loadRoomMembers","roomJid","options","Promise","resolve","force","Number","running","get","at","done","response","getRoomByName","result","current","updates","Math","max","error","delete","set","GET_ROOMS_CACHE_MS","getRoomsInFlight","getRoomsInFlightToken","lastGetRoomsResponse","lastGetRoomsResponseAt","lastGetRoomsResponseToken","roomsCacheGeneration","invalidateRoomsCache","getRooms","token","requestGeneration","headers","Authorization","data","log","chatName","Error","postRoom","post","postPrivateRoom","username","setRoomMuted","encodeURIComponent","put","postReportRoom","category","text","postAddRoomMember","results","deleteRoomMember","roomId","leaveRoom","me","status","deleteRoom","CALL_CREATE_TIMEOUT_MS","createChatCall","kind","timeout","code","test","message","clearRoomsRestCache","clear"],"sourceRoot":"../../../../src","sources":["networking/api-requests/rooms.api.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["uniqueMembers","store","addRoom","mergeUsersSet","updateRoom","http","parseCallCreateResponse","mapApiLastMessage","readApiUnreadCount","readApiUsersCnt","usableImage","value","url","trim","dispatchUsersSetFromRestItems","items","length","ownXmpp","String","getState","chatSettingStore","user","xmppUsername","appId","includes","split","known","rooms","usersSet","members","item","list","Array","isArray","m","before","_id","undefined","entry","firstName","lastName","profileImage","description","role","ban_status","last_active","jid","name","keys","Set","add","forEach","k","Object","dispatch","memberAccount","member","explicit","ownAppId","toRoomMembers","map","toE2eeMembers","filter","memberCount","usersCnt","participants","dispatchRoomsFromRestItems","keepMuted","config","host","xmppSettings","conference","replace","baseUrl","exec","console","warn","apiUnreadCount","preview","keep","fresh","existing","room","id","title","messages","isLoading","roomBg","icon","picture","createdAt","updatedAt","muted","unreadMessages","apiUnreadSeededAt","Date","now","lastMessage","type","e2ee","roomMembers","roomData","ROOM_MEMBERS_TTL_MS","roomMembersLoads","Map","loadRoomMembers","roomJid","options","Promise","resolve","force","Number","running","get","at","done","response","getRoomByName","result","current","updates","Math","max","error","delete","set","GET_ROOMS_CACHE_MS","getRoomsInFlight","getRoomsInFlightToken","lastGetRoomsResponse","lastGetRoomsResponseAt","lastGetRoomsResponseToken","roomsCacheGeneration","invalidateRoomsCache","getRooms","token","requestGeneration","headers","Authorization","data","log","chatName","Error","postRoom","post","postPrivateRoom","username","setRoomMuted","encodeURIComponent","put","postReportRoom","category","text","postAddRoomMember","results","deleteRoomMember","roomId","leaveRoom","status","deleteRoom","CALL_CREATE_TIMEOUT_MS","createChatCall","kind","timeout","code","test","message","clearRoomsRestCache","clear"],"sourceRoot":"../../../../src","sources":["networking/api-requests/rooms.api.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import http from '../apiClient';
|
|
4
|
+
import { store } from '../../roomStore';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Scheduled calls (booking). Wrappers for `/v1/chats/calls/scheduled`.
|
|
8
|
+
*
|
|
9
|
+
* The backend decides every link: the join link, the .ics download and the
|
|
10
|
+
* Google / Outlook templates come back in `links`, and the client only opens
|
|
11
|
+
* them. No calendar URL is ever built here.
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
export class ScheduledCallApiError extends Error {
|
|
15
|
+
/** The server's own `code` (e.g. `START_IN_PAST`, `CALL_CANCELLED`), when it sent one. */
|
|
16
|
+
|
|
17
|
+
constructor(code, status, message, serverCode) {
|
|
18
|
+
super(message || code);
|
|
19
|
+
this.name = 'ScheduledCallApiError';
|
|
20
|
+
this.code = code;
|
|
21
|
+
this.status = status;
|
|
22
|
+
this.serverCode = serverCode;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
export const isScheduledCallApiError = error => error instanceof ScheduledCallApiError || !!error && error.name === 'ScheduledCallApiError';
|
|
26
|
+
const REQUEST_TIMEOUT_MS = 15000;
|
|
27
|
+
const BASE = '/v1/chats/calls/scheduled';
|
|
28
|
+
const authHeaders = () => ({
|
|
29
|
+
Authorization: store.getState().chatSettingStore.user?.token || ''
|
|
30
|
+
});
|
|
31
|
+
const toApiError = error => {
|
|
32
|
+
const status = error?.response?.status;
|
|
33
|
+
const body = error?.response?.data;
|
|
34
|
+
const reason = String(body?.error || body?.message || '');
|
|
35
|
+
const serverCode = body?.code ? String(body.code) : undefined;
|
|
36
|
+
if (!error?.response) {
|
|
37
|
+
return new ScheduledCallApiError('network', undefined, error?.message);
|
|
38
|
+
}
|
|
39
|
+
if (status === 404) {
|
|
40
|
+
return new ScheduledCallApiError('not-found', status, reason, serverCode);
|
|
41
|
+
}
|
|
42
|
+
if (status === 403) {
|
|
43
|
+
return new ScheduledCallApiError(reason === 'not-a-member' ? 'not-a-member' : 'forbidden', status, reason, serverCode);
|
|
44
|
+
}
|
|
45
|
+
if (status === 400 || status === 422) {
|
|
46
|
+
return new ScheduledCallApiError('invalid', status, reason, serverCode);
|
|
47
|
+
}
|
|
48
|
+
// PATCH on a cancelled call.
|
|
49
|
+
if (status === 409) {
|
|
50
|
+
return new ScheduledCallApiError('conflict', status, reason, serverCode);
|
|
51
|
+
}
|
|
52
|
+
return new ScheduledCallApiError('unknown', status, reason || error?.message, serverCode);
|
|
53
|
+
};
|
|
54
|
+
const pick = data => {
|
|
55
|
+
const scheduledCall = data?.scheduledCall;
|
|
56
|
+
if (!scheduledCall || typeof scheduledCall !== 'object') {
|
|
57
|
+
throw new ScheduledCallApiError('unknown', undefined, 'bad response');
|
|
58
|
+
}
|
|
59
|
+
return {
|
|
60
|
+
scheduledCall,
|
|
61
|
+
links: data?.links || {
|
|
62
|
+
join: ''
|
|
63
|
+
},
|
|
64
|
+
...(data?.chat ? {
|
|
65
|
+
chat: data.chat
|
|
66
|
+
} : {})
|
|
67
|
+
};
|
|
68
|
+
};
|
|
69
|
+
const run = async call => {
|
|
70
|
+
try {
|
|
71
|
+
return await call();
|
|
72
|
+
} catch (error) {
|
|
73
|
+
if (isScheduledCallApiError(error)) {
|
|
74
|
+
throw error;
|
|
75
|
+
}
|
|
76
|
+
throw toApiError(error);
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
/** POST /v1/chats/calls/scheduled */
|
|
81
|
+
export const createScheduledCall = input => run(async () => {
|
|
82
|
+
const response = await http.post(BASE, input, {
|
|
83
|
+
headers: authHeaders(),
|
|
84
|
+
timeout: REQUEST_TIMEOUT_MS
|
|
85
|
+
});
|
|
86
|
+
return pick(response?.data);
|
|
87
|
+
});
|
|
88
|
+
|
|
89
|
+
/** GET /v1/chats/calls/scheduled?chatName=&from=&to= (upcoming first). */
|
|
90
|
+
export const listScheduledCalls = params => run(async () => {
|
|
91
|
+
const response = await http.get(BASE, {
|
|
92
|
+
params,
|
|
93
|
+
headers: authHeaders(),
|
|
94
|
+
timeout: REQUEST_TIMEOUT_MS
|
|
95
|
+
});
|
|
96
|
+
const items = response?.data?.items;
|
|
97
|
+
return Array.isArray(items) ? items.map(pick) : [];
|
|
98
|
+
});
|
|
99
|
+
|
|
100
|
+
/** GET /v1/chats/calls/scheduled/:slug. 404 unknown, 403 not a member. */
|
|
101
|
+
export const getScheduledCall = slug => run(async () => {
|
|
102
|
+
const response = await http.get(`${BASE}/${encodeURIComponent(slug)}`, {
|
|
103
|
+
headers: authHeaders(),
|
|
104
|
+
timeout: REQUEST_TIMEOUT_MS
|
|
105
|
+
});
|
|
106
|
+
return pick(response?.data);
|
|
107
|
+
});
|
|
108
|
+
|
|
109
|
+
/** PATCH /v1/chats/calls/scheduled/:slug (creator or room owner). */
|
|
110
|
+
export const updateScheduledCall = (slug, patch) => run(async () => {
|
|
111
|
+
const response = await http.patch(`${BASE}/${encodeURIComponent(slug)}`, patch, {
|
|
112
|
+
headers: authHeaders(),
|
|
113
|
+
timeout: REQUEST_TIMEOUT_MS
|
|
114
|
+
});
|
|
115
|
+
return pick(response?.data);
|
|
116
|
+
});
|
|
117
|
+
|
|
118
|
+
/** DELETE /v1/chats/calls/scheduled/:slug (creator or room owner). */
|
|
119
|
+
export const cancelScheduledCall = slug => run(async () => {
|
|
120
|
+
const response = await http.delete(`${BASE}/${encodeURIComponent(slug)}`, {
|
|
121
|
+
headers: authHeaders(),
|
|
122
|
+
timeout: REQUEST_TIMEOUT_MS
|
|
123
|
+
});
|
|
124
|
+
const scheduledCall = response?.data?.scheduledCall;
|
|
125
|
+
if (!scheduledCall) {
|
|
126
|
+
throw new ScheduledCallApiError('unknown', undefined, 'bad response');
|
|
127
|
+
}
|
|
128
|
+
return scheduledCall;
|
|
129
|
+
});
|
|
130
|
+
//# sourceMappingURL=scheduledCalls.api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["http","store","ScheduledCallApiError","Error","constructor","code","status","message","serverCode","name","isScheduledCallApiError","error","REQUEST_TIMEOUT_MS","BASE","authHeaders","Authorization","getState","chatSettingStore","user","token","toApiError","response","body","data","reason","String","undefined","pick","scheduledCall","links","join","chat","run","call","createScheduledCall","input","post","headers","timeout","listScheduledCalls","params","get","items","Array","isArray","map","getScheduledCall","slug","encodeURIComponent","updateScheduledCall","patch","cancelScheduledCall","delete"],"sourceRoot":"../../../../src","sources":["networking/api-requests/scheduledCalls.api.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,6 +4,14 @@ import { xml } from '@xmpp/client';
|
|
|
4
4
|
import { store } from '../roomStore';
|
|
5
5
|
import { endCall, setCallKind, setIncomingCallToken, setOutgoingCallToken } from '../roomStore/callSlice';
|
|
6
6
|
import { getGlobalXmppClient } from '../utils/clientRegistry';
|
|
7
|
+
import { decideIncomingWhileBusy, isCallRoomTypeAllowed, parseCallTokenAttrs } from '../calls/callMode';
|
|
8
|
+
import { busySnapshot } from '../calls/callBusy';
|
|
9
|
+
import { isSystemAccountSender } from '../calls/senderTrust';
|
|
10
|
+
import { looksLikeRawRoomName, safeCallName } from '../calls/callDisplay';
|
|
11
|
+
import { P2P_SIGNAL_TYPE } from '../calls/p2p/signalStanza';
|
|
12
|
+
import { handleP2PSignalStanza } from '../calls/p2p/p2pRuntime';
|
|
13
|
+
import { isP2PAvailable } from '../calls/p2p/webrtcRuntime';
|
|
14
|
+
import { reportCallDeclined, reportCallEnded } from './api-requests/callState.api';
|
|
7
15
|
import { callStateHasLogData } from '../helpers/callLogMessage';
|
|
8
16
|
import { pushLog } from '../utils/devLogger';
|
|
9
17
|
|
|
@@ -51,6 +59,30 @@ const consumeKindHint = keys => {
|
|
|
51
59
|
};
|
|
52
60
|
const MAX_CALL_TOKEN_AGE_MS = 5000;
|
|
53
61
|
|
|
62
|
+
// XMPP domain of this session (the client's own JID domain, else the host).
|
|
63
|
+
const sessionXmppDomain = () => {
|
|
64
|
+
const client = getGlobalXmppClient();
|
|
65
|
+
return String(client?.client?.jid?.getDomain?.() || client?.host || '');
|
|
66
|
+
};
|
|
67
|
+
const isTrueishAttr = value => {
|
|
68
|
+
const text = String(value ?? '').trim().toLowerCase();
|
|
69
|
+
return text === 'true' || text === '1';
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
// Display name of a user we only know by xmpp username (p2p tokens carry no
|
|
73
|
+
// JWT, so no caller name), from the enriched usersSet.
|
|
74
|
+
const lookupUserName = xmppUsername => {
|
|
75
|
+
if (!xmppUsername) {
|
|
76
|
+
return '';
|
|
77
|
+
}
|
|
78
|
+
const usersSet = store.getState().rooms.usersSet || {};
|
|
79
|
+
const user = usersSet[xmppUsername] || usersSet[xmppUsername.split('@')[0]];
|
|
80
|
+
if (!user) {
|
|
81
|
+
return '';
|
|
82
|
+
}
|
|
83
|
+
return `${user.firstName || ''} ${user.lastName || ''}`.trim() || String(user.name || '').trim();
|
|
84
|
+
};
|
|
85
|
+
|
|
54
86
|
// Dev-only trace of call signalling: which `<data type="call-*">` frames
|
|
55
87
|
// arrive and why a call-token was dropped. A dropped token is silent
|
|
56
88
|
// otherwise: the caller sits on "Calling..." and the callee never rings.
|
|
@@ -273,15 +305,16 @@ const handleCallStateData = (data, fallbackRoomAttr) => {
|
|
|
273
305
|
}
|
|
274
306
|
const roomMatches = !!stanzaRoomAttr && (currentCall.roomJid === stanzaRoomAttr || currentCall.roomName === stanzaRoomAttr || currentCall.roomBareName === stanzaRoomAttr || (currentCall.roomJid || '').split('@')[0] === stanzaRoomAttr);
|
|
275
307
|
const callIdMatches = !!stanzaCallId && !!currentCall.callId && currentCall.callId === stanzaCallId;
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
308
|
+
// A signal that names a DIFFERENT call than the one on screen (e.g. the
|
|
309
|
+
// server log of the previous call in the same room arriving late) must not
|
|
310
|
+
// tear down the current one just because the room matches.
|
|
311
|
+
const callIdConflicts = !!stanzaCallId && !!currentCall.callId && currentCall.callId !== stanzaCallId;
|
|
279
312
|
const isTerminalState = state === 'ended' || state === 'declined' || state === 'cancelled' || state === 'canceled' || state === 'timeout' || state === 'rejected';
|
|
280
313
|
|
|
281
314
|
// A server call-log (no explicit state, but with callId/duration) is
|
|
282
315
|
// itself a "session concluded" signal.
|
|
283
316
|
const isServerCallLog = !state && callStateHasLogData(data.attrs || {});
|
|
284
|
-
if ((
|
|
317
|
+
if ((callIdMatches || roomMatches && !callIdConflicts) && (isTerminalState || isServerCallLog)) {
|
|
285
318
|
store.dispatch(endCall());
|
|
286
319
|
}
|
|
287
320
|
};
|
|
@@ -335,7 +368,13 @@ export const onCallTokenMessage = stanza => {
|
|
|
335
368
|
// The server call-log doesn't put `room` on the <data>; derive it
|
|
336
369
|
// from the message's `from` MUC JID localpart instead.
|
|
337
370
|
const fromRoom = String(stanza.attrs?.from || '').split('/')[0].split('@')[0].trim();
|
|
338
|
-
|
|
371
|
+
const declinedInGroup = String(data.attrs?.state || '').toLowerCase() === 'declined' && isTrueishAttr(data.attrs?.group);
|
|
372
|
+
if (!declinedInGroup) {
|
|
373
|
+
// The state / callId / room live on the <data> element, not on the
|
|
374
|
+
// <message> wrapper. This used to be handed `inner`, which made every
|
|
375
|
+
// client call-state signal and server call-log a no-op here.
|
|
376
|
+
handleCallStateData(data, fromRoom);
|
|
377
|
+
}
|
|
339
378
|
|
|
340
379
|
// Server call-logs (carry callerXmppUsername / durationMs) should
|
|
341
380
|
// flow on to onRealtimeMessage / onMessageHistory where they become
|
|
@@ -347,15 +386,6 @@ export const onCallTokenMessage = stanza => {
|
|
|
347
386
|
}
|
|
348
387
|
return true;
|
|
349
388
|
}
|
|
350
|
-
if (dataType === 'call-state-declined') {
|
|
351
|
-
handleCallStateData({
|
|
352
|
-
attrs: {
|
|
353
|
-
...data.attrs,
|
|
354
|
-
state: 'declined'
|
|
355
|
-
}
|
|
356
|
-
});
|
|
357
|
-
return true;
|
|
358
|
-
}
|
|
359
389
|
if (dataType === 'call-invite') {
|
|
360
390
|
const inviteKind = String(data.attrs?.kind || '').toLowerCase();
|
|
361
391
|
const normalized = inviteKind === 'audio' ? 'audio' : 'video';
|
|
@@ -373,6 +403,34 @@ export const onCallTokenMessage = stanza => {
|
|
|
373
403
|
}
|
|
374
404
|
return true;
|
|
375
405
|
}
|
|
406
|
+
if (dataType === P2P_SIGNAL_TYPE) {
|
|
407
|
+
// Peer to peer WebRTC signalling (offer / answer / candidate / end).
|
|
408
|
+
// Routed to the p2p runtime, never to the chat pipeline.
|
|
409
|
+
if (store.getState().chatSettingStore.config?.videoCalls?.enabled === true) {
|
|
410
|
+
handleP2PSignalStanza(inner);
|
|
411
|
+
}
|
|
412
|
+
return true;
|
|
413
|
+
}
|
|
414
|
+
if (dataType === 'call-state-declined') {
|
|
415
|
+
// Server relay of a callee's decline. In a group call one member
|
|
416
|
+
// declining must not end the call for everybody, so it is ignored there.
|
|
417
|
+
// For 1:1 it is a terminal state, same as the client-sent `declined`.
|
|
418
|
+
if (isTrueishAttr(data.attrs?.group)) {
|
|
419
|
+
callTrace('group member declined', {
|
|
420
|
+
by: data.attrs?.by,
|
|
421
|
+
callId: data.attrs?.callId
|
|
422
|
+
});
|
|
423
|
+
return true;
|
|
424
|
+
}
|
|
425
|
+
const fromRoom = String(stanza.attrs?.from || '').split('/')[0].split('@')[0].trim();
|
|
426
|
+
handleCallStateData({
|
|
427
|
+
attrs: {
|
|
428
|
+
...(data.attrs || {}),
|
|
429
|
+
state: 'declined'
|
|
430
|
+
}
|
|
431
|
+
}, fromRoom);
|
|
432
|
+
return true;
|
|
433
|
+
}
|
|
376
434
|
if (dataType === 'call-token') {
|
|
377
435
|
const videoCallsConfig = store.getState().chatSettingStore.config?.videoCalls;
|
|
378
436
|
if (videoCallsConfig?.enabled !== true) {
|
|
@@ -383,56 +441,102 @@ export const onCallTokenMessage = stanza => {
|
|
|
383
441
|
callTrace('drop call-token: not fresh');
|
|
384
442
|
return true;
|
|
385
443
|
}
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
const
|
|
444
|
+
|
|
445
|
+
// Old servers send neither `mode` nor `group`: parseCallTokenAttrs maps
|
|
446
|
+
// that to a plain LiveKit 1:1 call, exactly the legacy behaviour.
|
|
447
|
+
const attrs = parseCallTokenAttrs(data.attrs);
|
|
448
|
+
// livekitUrl and ice decide where the media goes, and callerName /
|
|
449
|
+
// caller decide who the ring screen says is calling, so they are
|
|
450
|
+
// honoured only from the app's system account (see calls/senderTrust).
|
|
451
|
+
// Anything else keeps the stanza but loses those attributes: the callee
|
|
452
|
+
// then uses config.videoCalls.livekitUrl, GET /v1/calls/ice-servers and
|
|
453
|
+
// the name it can work out locally.
|
|
454
|
+
if ((attrs.livekitUrl || attrs.iceServers || attrs.callerName || attrs.caller) && !isSystemAccountSender(inner.attrs?.from, sessionXmppDomain())) {
|
|
455
|
+
callTrace('ignoring livekitUrl/ice/callerName/caller on a call-token not sent by the system account', {
|
|
456
|
+
from: inner.attrs?.from
|
|
457
|
+
});
|
|
458
|
+
attrs.livekitUrl = null;
|
|
459
|
+
attrs.iceServers = null;
|
|
460
|
+
attrs.callerName = '';
|
|
461
|
+
attrs.caller = null;
|
|
462
|
+
}
|
|
463
|
+
const {
|
|
464
|
+
token,
|
|
465
|
+
mode,
|
|
466
|
+
group,
|
|
467
|
+
room: stanzaRoom
|
|
468
|
+
} = attrs;
|
|
469
|
+
const isP2P = mode === 'p2p';
|
|
470
|
+
const stanzaCallId = attrs.callId;
|
|
390
471
|
// Server doesn't propagate `kind` on the broadcast stanza, so first
|
|
391
472
|
// look for a client-side `call-invite` hint we stashed when the
|
|
392
473
|
// dialer signaled us directly. Falls back to whatever the server
|
|
393
474
|
// happens to attach, finally to video (legacy default).
|
|
394
475
|
const hintedKind = consumeKindHint([stanzaRoom, stanzaCallId]);
|
|
395
|
-
const kind = hintedKind || (
|
|
396
|
-
|
|
476
|
+
const kind = hintedKind || (attrs.kind === 'audio' ? 'audio' : 'video');
|
|
477
|
+
// A p2p token is intentionally empty (the media never touches LiveKit);
|
|
478
|
+
// it needs the callId instead, to correlate the signalling.
|
|
479
|
+
if (!stanzaRoom || (isP2P ? !stanzaCallId : !token)) {
|
|
397
480
|
callTrace('drop call-token: no token or room');
|
|
398
481
|
return true;
|
|
399
482
|
}
|
|
400
483
|
const resolvedRoom = resolveRoomByStanzaRoom(stanzaRoom);
|
|
401
|
-
const allowedRoomTypes = videoCallsConfig.allowedRoomTypes || ['private'];
|
|
402
484
|
const usersCnt = Number(resolvedRoom?.usersCnt || 0);
|
|
403
485
|
const isOneToOneLikeRoom = usersCnt > 0 && usersCnt <= 2;
|
|
404
|
-
const
|
|
405
|
-
if (
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
486
|
+
const allowedRoomTypes = videoCallsConfig.allowedRoomTypes;
|
|
487
|
+
if (group) {
|
|
488
|
+
// Group room call (always LiveKit). The host may opt out through
|
|
489
|
+
// allowedRoomTypes; a room we know to be private contradicts `group`.
|
|
490
|
+
if (!isCallRoomTypeAllowed('group', allowedRoomTypes)) {
|
|
491
|
+
callTrace('drop call-token: group calls not allowed');
|
|
492
|
+
return true;
|
|
493
|
+
}
|
|
494
|
+
if (resolvedRoom?.type === 'private') {
|
|
495
|
+
callTrace('drop call-token: group flag on a private room');
|
|
496
|
+
return true;
|
|
497
|
+
}
|
|
498
|
+
} else {
|
|
499
|
+
const isPrivateAllowed = isCallRoomTypeAllowed('private', allowedRoomTypes);
|
|
500
|
+
if (resolvedRoom?.type && resolvedRoom.type !== 'private' && !isOneToOneLikeRoom) {
|
|
501
|
+
callTrace('drop call-token: room type', {
|
|
502
|
+
type: resolvedRoom.type,
|
|
503
|
+
usersCnt
|
|
504
|
+
});
|
|
505
|
+
return true;
|
|
506
|
+
}
|
|
507
|
+
if (resolvedRoom?.type === 'private' && !isPrivateAllowed) {
|
|
508
|
+
callTrace('drop call-token: private not allowed');
|
|
509
|
+
return true;
|
|
510
|
+
}
|
|
511
|
+
if (!resolvedRoom?.type && !stanzaRoom.includes('@') && !isOneToOneLikeRoom) {
|
|
512
|
+
callTrace('drop call-token: room unknown', {
|
|
513
|
+
stanzaRoom
|
|
514
|
+
});
|
|
515
|
+
return true;
|
|
516
|
+
}
|
|
421
517
|
}
|
|
422
518
|
const roomJid = resolvedRoom?.jid || (stanzaRoom.includes('@') ? stanzaRoom : '');
|
|
423
519
|
// Prefer the JWT `sub` claim as the display name on the incoming
|
|
424
520
|
// ring screen, the server populates it with the caller's full name
|
|
425
521
|
// ("Roman Test") which is far more useful than the resolved room
|
|
426
522
|
// title (which for stale / deleted-peer chats reads "deleted").
|
|
427
|
-
|
|
428
|
-
const
|
|
523
|
+
// A p2p token has no JWT, and in a group the ring should name the room.
|
|
524
|
+
const jwtPayload = isP2P ? null : decodeJwtPayload(token);
|
|
525
|
+
const jwtName = group ? '' : safeCallName(extractCallerDisplayName(jwtPayload)) || '';
|
|
429
526
|
// `title` is the display name; on new-arch private rooms `name` is the
|
|
430
527
|
// bare room id ("${appId}_<a>-${appId}_<b>"), never something to show.
|
|
431
528
|
const resolvedTitle = String(resolvedRoom?.title || resolvedRoom?.name || '').trim();
|
|
432
|
-
const titleLooksBad = !resolvedTitle || resolvedTitle === stanzaRoom || ['deleted', 'deleted user', 'unknown', 'null'].includes(resolvedTitle.toLowerCase());
|
|
433
|
-
|
|
434
|
-
//
|
|
435
|
-
const
|
|
529
|
+
const titleLooksBad = !resolvedTitle || resolvedTitle === stanzaRoom || ['deleted', 'deleted user', 'unknown', 'null'].includes(resolvedTitle.toLowerCase()) || looksLikeRawRoomName(resolvedTitle);
|
|
530
|
+
const selfXmpp = store.getState().chatSettingStore.user?.xmppUsername || '';
|
|
531
|
+
// Group rooms have no single peer; a "<a>-<b>" name there is a coincidence.
|
|
532
|
+
const peerXmppUsername = group ? null : derivePeerXmppUsername(stanzaRoom, selfXmpp) || attrs.caller;
|
|
533
|
+
const peerName = titleLooksBad ? lookupUserName(peerXmppUsername) : '';
|
|
534
|
+
// What the call is called on screen. A person's name is preferred; a
|
|
535
|
+
// raw chat name (two joined JIDs) is never used, an empty result makes
|
|
536
|
+
// the UI show a neutral label. In a group the call is the ROOM, and the
|
|
537
|
+
// caller is carried separately (callerName) for the "X is calling in Y"
|
|
538
|
+
// line.
|
|
539
|
+
const incomingRoomName = group ? (titleLooksBad ? '' : resolvedTitle) || safeCallName(stanzaRoom) || '' : attrs.callerName || jwtName || (titleLooksBad ? '' : resolvedTitle) || safeCallName(peerName) || safeCallName(stanzaRoom) || '';
|
|
436
540
|
if (!roomJid) {
|
|
437
541
|
callTrace('drop call-token: no room jid', {
|
|
438
542
|
stanzaRoom
|
|
@@ -440,20 +544,70 @@ export const onCallTokenMessage = stanza => {
|
|
|
440
544
|
return true;
|
|
441
545
|
}
|
|
442
546
|
const callId = extractCallId(data, jwtPayload);
|
|
443
|
-
|
|
444
|
-
|
|
547
|
+
if (isP2P && !callId) {
|
|
548
|
+
return true;
|
|
549
|
+
}
|
|
445
550
|
const callState = store.getState().call;
|
|
446
|
-
|
|
551
|
+
if (isP2P || callState.mode === 'p2p') {
|
|
552
|
+
// Peer to peer (or an active p2p call): one call at a time, decided
|
|
553
|
+
// by callId. The legacy LiveKit-over-LiveKit path below is untouched.
|
|
554
|
+
if (isP2P && !isP2PAvailable()) {
|
|
555
|
+
// This device cannot take the call (the WebRTC package is not
|
|
556
|
+
// installed); tell the caller instead of leaving them ringing.
|
|
557
|
+
callTrace('decline p2p call-token: WebRTC unavailable', {
|
|
558
|
+
callId
|
|
559
|
+
});
|
|
560
|
+
reportCallDeclined(callId);
|
|
561
|
+
return true;
|
|
562
|
+
}
|
|
563
|
+
const decision = decideIncomingWhileBusy(busySnapshot(callState), {
|
|
564
|
+
mode,
|
|
565
|
+
callId,
|
|
566
|
+
roomBareName: stanzaRoom
|
|
567
|
+
});
|
|
568
|
+
if (decision === 'duplicate' || decision === 'glare-keep') {
|
|
569
|
+
callTrace(`drop call-token: ${decision}`, {
|
|
570
|
+
callId
|
|
571
|
+
});
|
|
572
|
+
return true;
|
|
573
|
+
}
|
|
574
|
+
if (decision === 'busy') {
|
|
575
|
+
callTrace('decline call-token: busy', {
|
|
576
|
+
callId
|
|
577
|
+
});
|
|
578
|
+
if (isP2P) {
|
|
579
|
+
reportCallDeclined(callId);
|
|
580
|
+
if (peerXmppUsername) {
|
|
581
|
+
sendCallStateSignal('declined', {
|
|
582
|
+
peerXmppUsername,
|
|
583
|
+
callId,
|
|
584
|
+
roomBareName: stanzaRoom
|
|
585
|
+
});
|
|
586
|
+
}
|
|
587
|
+
}
|
|
588
|
+
return true;
|
|
589
|
+
}
|
|
590
|
+
if (decision === 'glare-yield') {
|
|
591
|
+
// We both dialled at once and the other call has the smaller id:
|
|
592
|
+
// drop ours (the other side keeps theirs and ignores our token).
|
|
593
|
+
sendCallStateSignal('cancelled');
|
|
594
|
+
reportCallEnded(callState.callId);
|
|
595
|
+
}
|
|
596
|
+
}
|
|
597
|
+
const isOutgoingRoomMatch = !isP2P && callState.direction === 'outgoing' && (callState.roomJid === roomJid || callState.roomName === incomingRoomName || callState.roomBareName === stanzaRoom);
|
|
447
598
|
callTrace('accept call-token', {
|
|
448
599
|
outgoing: isOutgoingRoomMatch,
|
|
449
600
|
roomJid,
|
|
450
|
-
callId
|
|
601
|
+
callId,
|
|
602
|
+
mode,
|
|
603
|
+
group
|
|
451
604
|
});
|
|
452
605
|
if (isOutgoingRoomMatch) {
|
|
453
606
|
store.dispatch(setOutgoingCallToken({
|
|
454
607
|
roomJid,
|
|
455
608
|
token,
|
|
456
|
-
callId: callId || null
|
|
609
|
+
callId: callId || null,
|
|
610
|
+
livekitUrl: attrs.livekitUrl
|
|
457
611
|
}));
|
|
458
612
|
return true;
|
|
459
613
|
}
|
|
@@ -470,7 +624,13 @@ export const onCallTokenMessage = stanza => {
|
|
|
470
624
|
token,
|
|
471
625
|
kind,
|
|
472
626
|
callId: callId || null,
|
|
473
|
-
peerXmppUsername: peerXmppUsername || null
|
|
627
|
+
peerXmppUsername: peerXmppUsername || null,
|
|
628
|
+
mode,
|
|
629
|
+
isGroup: group,
|
|
630
|
+
iceServers: attrs.iceServers,
|
|
631
|
+
livekitUrl: attrs.livekitUrl,
|
|
632
|
+
callerName: attrs.callerName || null,
|
|
633
|
+
callerXmppUsername: attrs.caller
|
|
474
634
|
}));
|
|
475
635
|
return true;
|
|
476
636
|
}
|