From 6f804090862bdb67c5cb71a9e15b9ee13a8b6518 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Thu, 19 Jun 2025 13:22:08 +0200 Subject: [PATCH] Trying to prevent BT not being used automatically when it connects during a call + improved AudioUtils logs --- .../org/linphone/telecom/TelecomCallControlCallback.kt | 6 ++++-- app/src/main/java/org/linphone/utils/AudioUtils.kt | 7 +++++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/org/linphone/telecom/TelecomCallControlCallback.kt b/app/src/main/java/org/linphone/telecom/TelecomCallControlCallback.kt index 9590fbb43..0ecb7323c 100644 --- a/app/src/main/java/org/linphone/telecom/TelecomCallControlCallback.kt +++ b/app/src/main/java/org/linphone/telecom/TelecomCallControlCallback.kt @@ -48,6 +48,8 @@ class TelecomCallControlCallback( ) { companion object { private const val TAG = "[Telecom Call Control Callback]" + + private const val DELAY_BEFORE_RELOADING_SOUND_DEVICES_MS = 100L } private var availableEndpoints: List = arrayListOf() @@ -124,12 +126,12 @@ class TelecomCallControlCallback( Log.i("$TAG New available audio endpoints list") if (availableEndpoints != list) { Log.i( - "$TAG List size of available audio endpoints has changed, reload sound devices in SDK in 500ms" + "$TAG List size of available audio endpoints has changed, reload sound devices in SDK in [$DELAY_BEFORE_RELOADING_SOUND_DEVICES_MS] ms" ) coreContext.postOnCoreThreadDelayed({ core -> core.reloadSoundDevices() Log.i("$TAG Sound devices reloaded") - }, 500) + }, DELAY_BEFORE_RELOADING_SOUND_DEVICES_MS) } availableEndpoints = list diff --git a/app/src/main/java/org/linphone/utils/AudioUtils.kt b/app/src/main/java/org/linphone/utils/AudioUtils.kt index 70175686f..e125b51bc 100644 --- a/app/src/main/java/org/linphone/utils/AudioUtils.kt +++ b/app/src/main/java/org/linphone/utils/AudioUtils.kt @@ -92,16 +92,19 @@ class AudioUtils { if (!skipTelecom) { val callId = currentCall?.callLog?.callId.orEmpty() + Log.i("$TAG Trying to change audio endpoint using Telecom Manager APIs") val success = coreContext.telecomManager.applyAudioRouteToCallWithId(types, callId) if (!success) { Log.w("$TAG Failed to change audio endpoint to [$types] for call ID [$callId]") applyAudioRouteChange(currentCall, types, output, skipTelecom = true) } else { + Log.i("$TAG It seems audio endpoint update using Telecom Manager was successful") return } + } else { + Log.i("$TAG Trying to change audio endpoint directly in Linphone SDK") + applyAudioRouteChangeInLinphone(currentCall, types, output) } - - applyAudioRouteChangeInLinphone(currentCall, types, output) } fun applyAudioRouteChangeInLinphone(