From c3ce265c7826959514a8f608a62bd59ed4ef01c3 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Fri, 20 May 2022 16:25:17 +0200 Subject: [PATCH] Prevent incoming group call to start in audio-only layout if video auto accept policy is disabled, instead enable video with receive only direction --- .../java/org/linphone/core/CoreContext.kt | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/linphone/core/CoreContext.kt b/app/src/main/java/org/linphone/core/CoreContext.kt index 820992a18..642334fd0 100644 --- a/app/src/main/java/org/linphone/core/CoreContext.kt +++ b/app/src/main/java/org/linphone/core/CoreContext.kt @@ -565,11 +565,27 @@ class CoreContext( fun answerCall(call: Call) { Log.i("[Context] Answering call $call") val params = core.createCallParams(call) - params?.recordFile = LinphoneUtils.getRecordingFilePathForAddress(call.remoteAddress) + if (params == null) { + Log.w("[Context] Answering call without params!") + call.accept() + return + } + + params.recordFile = LinphoneUtils.getRecordingFilePathForAddress(call.remoteAddress) + if (LinphoneUtils.checkIfNetworkHasLowBandwidth(context)) { Log.w("[Context] Enabling low bandwidth mode!") - params?.isLowBandwidthEnabled = true + params.isLowBandwidthEnabled = true } + + if (call.callLog.wasConference()) { + // Prevent incoming group call to start in audio only layout + // Do the same as the conference waiting room + params.isVideoEnabled = true + params.videoDirection = if (core.videoActivationPolicy.automaticallyInitiate) MediaDirection.SendRecv else MediaDirection.RecvOnly + Log.i("[Context] Enabling video on call params to prevent audio-only layout when answering") + } + call.acceptWithParams(params) }