From 485fd47b0e055c768fa4658d68267e7f14f31f6e Mon Sep 17 00:00:00 2001 From: Martin Date: Mon, 22 Nov 2021 10:31:40 -0300 Subject: [PATCH] [NEW] Audio and Video calling in Livechat using WebRTC #646 * add callnotification,msg,iframe code * fix eslint issues * fix eslint file path issues * fix stylelint issues * done ui changes * add icons and improve ui * fix error * remove-icons * add icons * add i18n.t, change classname, improve ui * remove font-family * change iframe link * add check for jitsi * add jitsi link * add time message in system message and add catch * display alert, change function name * Improve overall codebase * Convert tabs to spaces for translation file * Accept jitsi url info from the message and remove dependency from Livechat.videoCall endpoint * Update index.js * add message in i18n file Co-authored-by: Murtaza Patrawala <34130764+murtaza98@users.noreply.github.com> add joinCallBtn, endCall message, callRing functionalities. (#618) * add callnotification,msg,iframe code * fix eslint issues * fix eslint file path issues * fix stylelint issues * done ui changes * add join call button * add icons and improve ui * fix error * remove-icons * add icons * ui changes * add icon and timeout functionality * add I18n.t * add i18n.t, change classname, improve ui * remove font-family * change iframe link * add check for jitsi * add jitsi link * add time message in system message and add catch * display alert, change function name * Improve overall codebase * Convert tabs to spaces for translation file * Accept jitsi url info from the message and remove dependency from Livechat.videoCall endpoint * Update index.js * add message in i18n file * add joincall btn, call time, timeout * fix lint error * Update ShowJoinCallButton.js * fix conflicts * improve codebase * fix bugs * update some files * improve css, codebase and change condition * add correct link for iframe and joinCallBtn, show correct time * update call status at rc-core * update api file * rebase file * change link, use store class * update callIframe file * handle corner cases * remove file * Update room.js file Co-authored-by: Murtaza Patrawala <34130764+murtaza98@users.noreply.github.com> * update one file * revert roomjs file * add common condition in room.js file Co-authored-by: Murtaza Patrawala <34130764+murtaza98@users.noreply.github.com> [NEW] Handle endCall and expandView control buttons (#633) * [NEW] Handle endCall and expandView control buttons * [FIX] Lint errors * [FIX] Join Call Button giving call ended even when call inProgress * [FIX] slash omitted in the url * [REF] Remove redundant async keyword * [REF] Use spread operator, set ongoingCall status when expanding * [FIX] String enclosed within double quotes Co-authored-by: Murtaza Patrawala <34130764+murtaza98@users.noreply.github.com> * [FIX] ongoingCall variable not destructured but used Co-authored-by: Murtaza Patrawala <34130764+murtaza98@users.noreply.github.com> [FIX] Notify agent on call decline (#634) [NEW] WebRTC-call in new tab for mobile devices (#629) * open webrtc call in new tab for mobile devices * improve codebase * add helper function * update one file * checking call status from room object * update one file * handle refresh case * change message filter condition Co-authored-by: Murtaza Patrawala <34130764+murtaza98@users.noreply.github.com> [NEW] add-jitsi-call-support Co-Authored-By: Deepak Agarwal <56799414+Deepak-learner@users.noreply.github.com> Improve overall codebase - Define an enum like structure for call statuses - Fix formatting and spelling issues - General refactoring update Rocket.Chat.js.SDK version to 1.0.0-alpha.42 Fix Join call button layout Fix typo Apply review suggestions - Use date-fns library to calculate call duration Refactor Call Statuses to remove redundancy Rename endTs property on Message to webRtcCallEndTs --- .../reference/chrome_Components_Icons_all.png | Bin 13859 -> 13853 bytes .../chrome_Components_Icons_phone.png | Bin 0 -> 10166 bytes .../chrome_Components_Icons_phoneOff.png | Bin 0 -> 5814 bytes .../chrome_Components_Icons_video.png | Bin 0 -> 5421 bytes .../chrome_Components_Icons_videoIcon.png | Bin 0 -> 5421 bytes package.json | 2 +- src/components/Calls/CallIFrame.js | 32 +++++ src/components/Calls/CallNotification.js | 111 +++++++++++++++ src/components/Calls/CallStatus.js | 12 ++ src/components/Calls/JoinCallButton.js | 50 +++++++ src/components/Calls/styles.scss | 128 ++++++++++++++++++ src/components/Messages/Message/index.js | 23 +++- src/components/Messages/MessageList/index.js | 18 ++- src/components/Messages/constants.js | 2 + src/components/helpers.js | 22 ++- src/i18n/en.json | 5 +- src/icons/phone.svg | 6 + src/icons/phoneOff.svg | 5 + src/icons/video.svg | 5 + src/icons/videoIcon.svg | 5 + src/lib/constants.js | 2 + src/lib/room.js | 84 +++++++++++- src/routes/Chat/component.js | 8 ++ src/routes/Chat/container.js | 4 + src/store/index.js | 4 +- yarn.lock | 8 +- 26 files changed, 519 insertions(+), 17 deletions(-) create mode 100644 .loki/reference/chrome_Components_Icons_phone.png create mode 100644 .loki/reference/chrome_Components_Icons_phoneOff.png create mode 100644 .loki/reference/chrome_Components_Icons_video.png create mode 100644 .loki/reference/chrome_Components_Icons_videoIcon.png create mode 100644 src/components/Calls/CallIFrame.js create mode 100644 src/components/Calls/CallNotification.js create mode 100644 src/components/Calls/CallStatus.js create mode 100644 src/components/Calls/JoinCallButton.js create mode 100644 src/components/Calls/styles.scss create mode 100644 src/icons/phone.svg create mode 100644 src/icons/phoneOff.svg create mode 100644 src/icons/video.svg create mode 100644 src/icons/videoIcon.svg diff --git a/.loki/reference/chrome_Components_Icons_all.png b/.loki/reference/chrome_Components_Icons_all.png index 9ee15f4ff5110a665b6e9d1202ff7b777faba007..3f27dfcbc6b2eadd969fb1ada47c02b7f9a54559 100644 GIT binary patch literal 13853 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 literal 0 HcmV?d00001 diff --git a/.loki/reference/chrome_Components_Icons_phoneOff.png b/.loki/reference/chrome_Components_Icons_phoneOff.png new file mode 100644 index 0000000000000000000000000000000000000000..d621a0f3a2673214a9b1b06345f1fe9d12a020b0 GIT binary patch literal 5814 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 bHYEN&H)V3+e$j65?ODv)(jHc6em(ZT71irr literal 0 HcmV?d00001 diff --git a/.loki/reference/chrome_Components_Icons_video.png b/.loki/reference/chrome_Components_Icons_video.png new file mode 100644 index 0000000000000000000000000000000000000000..5c8c71d51daa7d459a4c6b3e7196d9461a6102c7 GIT binary patch literal 5421 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 ZqP720$?ruMfWJKDPQpB(q!SnJ{ugLN^j!b| literal 0 HcmV?d00001 diff --git a/.loki/reference/chrome_Components_Icons_videoIcon.png b/.loki/reference/chrome_Components_Icons_videoIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..5c8c71d51daa7d459a4c6b3e7196d9461a6102c7 GIT binary patch literal 5421 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 ZqP720$?ruMfWJKDPQpB(q!SnJ{ugLN^j!b| literal 0 HcmV?d00001 diff --git a/package.json b/package.json index eea0f8041..6db73a542 100644 --- a/package.json +++ b/package.json @@ -85,7 +85,7 @@ }, "dependencies": { "@kossnocorp/desvg": "^0.2.0", - "@rocket.chat/sdk": "^1.0.0-alpha.41", + "@rocket.chat/sdk": "^1.0.0-alpha.42", "@rocket.chat/ui-kit": "^0.14.1", "css-vars-ponyfill": "^2.3.2", "date-fns": "^2.15.0", diff --git a/src/components/Calls/CallIFrame.js b/src/components/Calls/CallIFrame.js new file mode 100644 index 000000000..cc943eb39 --- /dev/null +++ b/src/components/Calls/CallIFrame.js @@ -0,0 +1,32 @@ +import { h } from 'preact'; + +import { Livechat } from '../../api'; +import store from '../../store'; +import { createClassName } from '../helpers'; +import { CallStatus } from './CallStatus'; +import styles from './styles.scss'; + + +export const CallIframe = () => { + const { token, room, incomingCallAlert, ongoingCall } = store.state; + const url = `${ Livechat.client.host }/meet/${ room._id }?token=${ token }&layout=embedded`; + window.handleIframeClose = () => store.setState({ incomingCallAlert: { ...incomingCallAlert, show: false } }); + window.expandCall = () => { + window.open( + `${ Livechat.client.host }/meet/${ room._id }?token=${ token }`, + room._id, + ); + return store.setState({ + incomingCallAlert: { ...incomingCallAlert, show: false }, + ongoingCall: { + ...ongoingCall, + callStatus: CallStatus.IN_PROGRESS_DIFFERENT_TAB, + }, + }); + }; + return ( +

+