Network traffic stops flowing only while connected to CarPlay.
We have developed our own CarPlay UI for our Jitsi client. We use our own because we don’t like the limited capability of the CallKit framework. With our own UI, we can display things like the dominantSpeaker, number of participants, participant role, etc…
If we start or join a meeting from CarPlay, then let the phone lock, the network traffic from Jitsi stops flowing. As I watch the meeting from our web client, after 2 minutes, I can see the CarPlay participant leave the meeting. Then if I “wake” the phone, network traffic begins to flow again and we receive the conferenceTerminated callback, so we tear down our meeting on CarPlay. But, a few seconds later, we are automatically rejoined into the meeting. Everyone else in the meeting sees them re-appear. Because we received the conferenceTerminated event, we’ve already torn down the jitsiMeetView object, so we have no way of rejoining the meeting from the client.
Is there something in the network layer that is looking for a connection to CarPlay?
I think it’s very likely that iOS is dropping network connections and/or stopping scheduling your app after 2 minutes of the app being in the background, since the app doesn’t use CallKit.
It’s been a little while since I worked with these frameworks, but to my knowledge the legacy VoIP background mode was deprecated around iOS 9/10 and calls must be reported to CallKit now in order for the app to continue to get scheduled & network connections to be allowed to remain open.
We’ve tested using CallKit from CarPlay and we get the same result. The Jitsi network stops after 2 minutes. Our own network calls continue as normal. We’ve also tested with setting the “keepAwake”. CarPlay is just a UI extension of the device, so if Jitsi works when you put the phone in a locked state (which it does), then CarPlay should as well.
We did find one scenario that works. If I join the jitsi meeting from our phone client, then put the phone in the locked mode, then hook into CarPlay and launch our CarPlay app, the meeting continues just fine.
@saghul have you had any further thoughts on this topic? I know we discussed this a little bit in the other thread: Android - can I prevent screen timeout during the meeting?
@saghul I have some new data points for this issue. We are using the mobile SDK 5.1.0. If I start a meeting on my phone, then put the app in the background, then press the power button to lock the phone, the meeting continues to run no problem. If however, I’m hooked into CarPlay, I start the meeting, as long as the phone screen stays awake, the meeting runs no problem. If while running on CarPlay, the phone is locked, the participant will get kicked out of the meeting after 2 minutes. We have no idea of this happening on the mobile SDK side because network traffic has stopped. I don’t understand why this would be happening. One more test I did, connected with CarPlay, meeting is running, phone is locked, if I then put the CarPlay app in the background, the meeting will continue to run no problem. Do you have any thoughts here?