Open multiple calls in the same screen

Hello to everybody,

i’m an university student who just integrated Jitsi Meet in an existing project (following the Developer Mobile Guide) in order to create an application capable of making video calls.

I just tried to build/edit my own SDK, and the base project works perfectly: i made my local repo as Jitsi SDK.

The main goal, which I have not yet managed to achieve, is to open two different calls on the same screen at once, perhaps with the ability to scroll down, if they exceed the space of the phone.
In detail, I would like to create the possibility of opening two calls in two different rooms, in the same server.

At the moment, I can’t find a solution, because in the “Join the meeting” part of the script, the phone screen enters full screen mode, without the possibility to interact any further.

Can someone help me out? Anything helps.

Thanks in advance.

The full-screen bit cannot currently be disabled. That said, I’d take a PR that adds a feature flag which allows disabling it.

In terms of running 2 meetings on the same app, that’s not a scenario we support. The audio device and camera for example can only be used by a single meeting. Then there is CallKit on iOS too, I don’t see a way to make that work TBH.

1 Like

@saghul I understand. Thank you so much for your reply and for your kindness.

What if i open the same application with another istance?

Do the audio of the second overwrites the first one? I need the second one to work in the background as well, even if i go back to the first one (i need to hear both room audios).

Thanks in advance, i really appreciate your help.

Sorry, I forgot we did add a flag to disable full-screen: feat(rn,flags) add fullscreen.enabled flag · jitsi/jitsi-meet@407021e · GitHub you can use it with the just released SDK 3.3.0.

What do you mean? From the SDK perspective there is a single React Native bridge, so even if you open multiple views / activities, things will be messed up.

If you open multiple apps, things won’t work either, because only one app can have the audio focus, similar to FaceTime or WhatsApp. Mixing with other audio is not allowed.

1 Like

Yes, I have already modified the SDK from that point of view, and i was able to disable fullscreen mode correctly. The appbar and the system settings are visible in the calling interface.

Let me explain in a better way: i was trying to disable the fullscreen mode to be able to open a new call under the main, in order to have the two calls on the same screen (graphically, it’s not pretty to look at, but at first I cared that it worked).

I wanted only the second audio to be heard, without the video, so that the user can see the video of the main one, and hear the audio of the second.

From what I understand, however, you told me that it is not possible, because only one app can have the audio focus (even if the second call is in the background, i couldn’t hear the audio).

I tried anyway to open two call instances via the joinMeeting function, but the second room overrides the first, closing it.

Correct, the SDK does 1 call at a time.

What exactly are you trying to do? I wonder if there is a different way to accomplish your goal.

1 Like

I’m looking for a way to create two rooms (belonging to the same server), and give the user the possibility to hear the audio of both, but the video only of the main one.

May I ask you if there is a way to create the room and hear only the audio? So that the system enters fullscreen mode for the main room, but also hears the audio of the second.

The user does not need to take any action for the second room created.

I know there is the variable audioOnly, which allows you to initiate the call with video turned off, but this creates the fullscreen room, as by default.

Full-screen can be disabled, I forgot we added support for that. You can set the fullscreen.enabled feature flag to false and it won’t enter the full-screen mode.

What you ask for is not possible with our SDK, sorry. It’s designed to handle a single conference at a time.

1 Like

I’m trying one last try: i created a web application to bypass the SDK problem, that allows one call at a time.
It looks like this:

I’m programming the code in Flutter Dart, and i added the plugins needed to debug on the web.

Debugging on the web allows me to create multiple call (multiple call instances of the joinMeeting function), and the system works perfectly: both audio of the two rooms can be heard by the user.

The only problem is the following: the system recognizes in which platform i’m running the project, and if i run the project on the emulator the page looks like the default SDK call, that is the main full screen call.
Otherwise, if i run the project on Chrome, the page looks like in the image above, and this is the result I want to obtain (but in the emulator).

Is there a way to integrate the web application into my project, in such a way as to open it inside the emulator and not in the web? I want to open the page in the web version, but from the phone.

Thank you very much for your help and for the time you spend.

You can use the disableDeepLinking config override. Set it to true and the meeting will open in the web browser mode.

I downloaded the jitsi 3.2.0 version (Release android-sdk-3.2.0 · jitsi/jitsi-meet · GitHub).

I built my own SDK as the developer guide said, and i added the jitsi plugin into my project (jitsi_meet | Flutter Package), and i made it local (the last jitsi flutter version is the 3.0.0,
it is configured with version 3.0.2 files).
In the build.gradle of the jitsi flutter plugin, i set my local repo instead of the online repo.

Whenever I need to make changes to the SDK (like disabling the fullscreen or disabling the deepLinking you told me), i make the changes to the library i downloaded, then rebuild it and publish the changes to my local repo.

I modified the config.js file and rebuild the library, but when i click the joinMeeting button of my app, the call remains fullscreen as default, and does not open on the web.

Where am i doing wrong?

Sorry, let’s take a step back here. disableDeepLinking is an option you pass when using the iframe API. As I mentioned earlier the native SDK is not going to work on your use case. Your only choice is to use 2 webviews.

I apologize, what do you mean with 2 webviews?

Do you mean that the only way to make the double call is on the web, and there is no way to integrate it into a mobile device from the project?

Any advice to succeed in my intent is welcome.

Yes, correct.

1 Like

I understand.

Thank you anyway for your help, really appreciate it.

1 Like