From 71a8005f55aef04db31a3ec0924069639ca0ac27 Mon Sep 17 00:00:00 2001 From: Brieuc Viel Date: Wed, 11 Oct 2017 12:13:17 +0200 Subject: [PATCH] [DoubleCall] fix GSM/SIP double call behavior --- src/android/org/linphone/LinphoneService.java | 3 ++- src/android/org/linphone/PhoneStateChangedReceiver.java | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/android/org/linphone/LinphoneService.java b/src/android/org/linphone/LinphoneService.java index 6f27440df..67b86a5ff 100644 --- a/src/android/org/linphone/LinphoneService.java +++ b/src/android/org/linphone/LinphoneService.java @@ -345,7 +345,8 @@ public final class LinphoneService extends Service { } if (state == LinphoneCall.State.IncomingReceived) { - onIncomingReceived(); + if(! LinphoneManager.getInstance().getCallGsmON()) + onIncomingReceived(); } if (state == State.CallEnd || state == State.CallReleased || state == State.Error) { diff --git a/src/android/org/linphone/PhoneStateChangedReceiver.java b/src/android/org/linphone/PhoneStateChangedReceiver.java index e266374a8..c20fdae7f 100644 --- a/src/android/org/linphone/PhoneStateChangedReceiver.java +++ b/src/android/org/linphone/PhoneStateChangedReceiver.java @@ -35,7 +35,7 @@ public class PhoneStateChangedReceiver extends BroadcastReceiver { if (!LinphoneManager.isInstanciated()) return; - if (TelephonyManager.EXTRA_STATE_OFFHOOK.equals(extraState)) { + if (TelephonyManager.EXTRA_STATE_OFFHOOK.equals(extraState) || TelephonyManager.EXTRA_STATE_RINGING.equals(extraState)) { LinphoneManager.getInstance().setCallGsmON(true); LinphoneManager.getLc().pauseAllCalls(); } else if (TelephonyManager.EXTRA_STATE_IDLE.equals(extraState)) {