From 81be082fe7df6d69d72b4c777d090bcdc3c68fd6 Mon Sep 17 00:00:00 2001 From: Daniel Ornelas Date: Fri, 8 Jun 2018 09:40:55 -0500 Subject: [PATCH] [RN] Allow to override callHandle for CallKit --- react/features/base/config/functions.js | 15 +++++++++++++++ react/features/mobile/callkit/middleware.js | 6 ++++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/react/features/base/config/functions.js b/react/features/base/config/functions.js index f6baf26d8..abbfabe38 100644 --- a/react/features/base/config/functions.js +++ b/react/features/base/config/functions.js @@ -43,6 +43,21 @@ const WHITELISTED_KEYS = [ */ 'callDisplayName', + /** + * The call handle of the CallKit call representing the conference/meeting + * associated with this config.js. The property is meant for use cases in + * which Jitsi Meet is to work with a CallKit call created outside of Jitsi + * Meet and to be adopted by Jitsi Meet such as, for example, an incoming + * and/or outgoing CallKit call created by Jitsi Meet SDK for iOS + * clients/consumers prior to giving control to Jitsi Meet. As the value is + * associated with a conference/meeting, the value makes sense not as a + * deployment-wide configuration, only as a runtime configuration + * override/overwrite provided by, for example, Jitsi Meet SDK for iOS. + * + * @type string + */ + 'callHandle', + /** * The UUID of the CallKit call representing the conference/meeting * associated with this config.js. The property is meant for use cases in diff --git a/react/features/mobile/callkit/middleware.js b/react/features/mobile/callkit/middleware.js index 2fa957c24..d47663c6d 100644 --- a/react/features/mobile/callkit/middleware.js +++ b/react/features/mobile/callkit/middleware.js @@ -227,7 +227,7 @@ function _conferenceWillJoin({ getState }, next, action) { const { conference } = action; const state = getState(); - const { callUUID } = state['features/base/config']; + const { callUUID, callHandle } = state['features/base/config']; const url = getInviteURL(state); const hasVideo = !isVideoMutedByAudioOnly(state); @@ -235,7 +235,9 @@ function _conferenceWillJoin({ getState }, next, action) { // it upper cased. conference.callUUID = (callUUID || uuid.v4()).toUpperCase(); - CallKit.startCall(conference.callUUID, url.toString(), hasVideo) + const handleURL = callHandle || url.toString(); + + CallKit.startCall(conference.callUUID, handleURL, hasVideo) .then(() => { const { callee } = state['features/base/jwt']; const displayName