Skip to content

Commit 29d61f9

Browse files
committed
feature: configurable bbb mobile using direct link
1 parent 81c99c7 commit 29d61f9

File tree

6 files changed

+19
-3
lines changed

6 files changed

+19
-3
lines changed

docker-compose.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,8 @@ services:
123123
FEATURE_FLAG_BROADCAST_AREAS: "true"
124124
PEER_VIDEO_MAX_BANDWIDTH_KBITS_PS: "$PEER_VIDEO_MAX_BANDWIDTH_KBITS_PS"
125125
PEER_SCREENSHARE_MAX_BANDWIDTH_KBITS_PS: "$PEER_SCREENSHARE_MAX_BANDWIDTH_KBITS_PS"
126+
BBB_MOBILE_ENABLED: "$BBB_MOBILE_ENABLED"
127+
BBB_MOBILE_DIRECT_JOIN_PREFIX: "$BBB_MOBILE_DIRECT_JOIN_PREFIX"
126128
labels:
127129
- "traefik.enable=true"
128130
- "traefik.http.routers.front.rule=Host(`front.workadventure.localhost`)"

play/src/common/FrontConfigurationInterface.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,4 +44,6 @@ export interface FrontConfigurationInterface {
4444
FEATURE_FLAG_BROADCAST_AREAS: boolean;
4545
PEER_VIDEO_MAX_BANDWIDTH_KBITS_PS: number;
4646
PEER_SCREENSHARE_MAX_BANDWIDTH_KBITS_PS: number;
47+
BBB_MOBILE_ENABLED: boolean;
48+
BBB_MOBILE_DIRECT_JOIN_PREFIX: string | undefined;
4749
}

play/src/front/Enum/EnvironmentVariable.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@ export const ENABLE_REPORT_ISSUES_MENU = env.ENABLE_REPORT_ISSUES_MENU;
4040
export const REPORT_ISSUES_URL = env.REPORT_ISSUES_URL;
4141
export const PEER_VIDEO_MAX_BANDWIDTH_KBITS_PS = env.PEER_VIDEO_MAX_BANDWIDTH_KBITS_PS;
4242
export const PEER_SCREENSHARE_MAX_BANDWIDTH_KBITS_PS = env.PEER_SCREENSHARE_MAX_BANDWIDTH_KBITS_PS;
43+
export const BBB_MOBILE_ENABLED = env.BBB_MOBILE_ENABLED;
44+
export const BBB_MOBILE_DIRECT_JOIN_PREFIX = env.BBB_MOBILE_DIRECT_JOIN_PREFIX;
4345

4446
export const POSITION_DELAY = 200; // Wait 200ms between sending position events
4547
export const MAX_EXTRAPOLATION_TIME = 100; // Extrapolate a maximum of 250ms if no new movement is sent by the player

play/src/front/Phaser/Game/GameMapPropertiesListener.ts

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,12 @@ import { ON_ACTION_TRIGGER_BUTTON, ON_ICON_TRIGGER_BUTTON } from "../../WebRtc/L
1212
import type { CoWebsite } from "../../WebRtc/CoWebsite/CoWebsite";
1313
import { SimpleCoWebsite } from "../../WebRtc/CoWebsite/SimpleCoWebsite";
1414
import { bbbFactory } from "../../WebRtc/BBBFactory";
15-
import { JITSI_PRIVATE_MODE, JITSI_URL } from "../../Enum/EnvironmentVariable";
15+
import {
16+
JITSI_PRIVATE_MODE,
17+
JITSI_URL,
18+
BBB_MOBILE_ENABLED,
19+
BBB_MOBILE_DIRECT_JOIN_PREFIX
20+
} from "../../Enum/EnvironmentVariable";
1621
import { JitsiCoWebsite } from "../../WebRtc/CoWebsite/JitsiCoWebsite";
1722
import { audioManagerFileStore, audioManagerVisibilityStore } from "../../Stores/AudioManagerStore";
1823
import { iframeListener } from "../../Api/IframeListener";
@@ -216,7 +221,7 @@ export class GameMapPropertiesListener {
216221
bbbFactory.setStopped(false);
217222

218223
let isMobile = isMediaBreakpointUp("md");
219-
if (isMobile) {
224+
if (BBB_MOBILE_ENABLED && isMobile) {
220225
let message = allProps.get(GameMapProperties.OPEN_WEBSITE_TRIGGER_MESSAGE);
221226
if (message === undefined) {
222227
message = get(LL).trigger.newTab();
@@ -234,7 +239,7 @@ export class GameMapPropertiesListener {
234239
return this.scene.connection.queryBBBMeetingUrl(hashedMeetingId, allProps);
235240
})
236241
.then((bbbAnswer) => {
237-
scriptUtils.openTab("br.rnp.conferenciawebmobile://direct-join/" + bbbAnswer.clientURL.replace(/^https?:\/\//, ''));
242+
scriptUtils.openTab(BBB_MOBILE_DIRECT_JOIN_PREFIX + bbbAnswer.clientURL.replace(/^https?:\/\//, ''));
238243
})
239244
.catch((e) => console.error(e)),
240245
userInputManager: this.scene.userInputManager,

play/src/pusher/enums/EnvironmentVariable.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,4 +135,6 @@ export const FRONT_ENVIRONMENT_VARIABLES: FrontConfigurationInterface = {
135135
FEATURE_FLAG_BROADCAST_AREAS: env.FEATURE_FLAG_BROADCAST_AREAS,
136136
PEER_VIDEO_MAX_BANDWIDTH_KBITS_PS: parseInt(env.PEER_VIDEO_MAX_BANDWIDTH_KBITS_PS || "0"),
137137
PEER_SCREENSHARE_MAX_BANDWIDTH_KBITS_PS: parseInt(env.PEER_SCREENSHARE_MAX_BANDWIDTH_KBITS_PS || "0"),
138+
BBB_MOBILE_ENABLED: env.BBB_MOBILE_ENABLED,
139+
BBB_MOBILE_DIRECT_JOIN_PREFIX: env.BBB_MOBILE_DIRECT_JOIN_PREFIX,
138140
};

play/src/pusher/enums/EnvironmentVariableValidator.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,9 @@ export const EnvironmentVariables = z.object({
108108
// Limit bandwidth environment variables
109109
PEER_VIDEO_MAX_BANDWIDTH_KBITS_PS: PositiveIntAsString.optional(),
110110
PEER_SCREENSHARE_MAX_BANDWIDTH_KBITS_PS: PositiveIntAsString.optional(),
111+
112+
BBB_MOBILE_ENABLED: BoolAsString.optional().transform((val) => toBool(val, false)),
113+
BBB_MOBILE_DIRECT_JOIN_PREFIX: z.string().optional(),
111114
});
112115

113116
export type EnvironmentVariables = z.infer<typeof EnvironmentVariables>;

0 commit comments

Comments
 (0)