diff --git a/ring-android/app/src/withFirebase/java/cx/ring/services/JamiFirebaseMessagingService.java b/ring-android/app/src/withFirebase/java/cx/ring/services/JamiFirebaseMessagingService.java
index 87d7101f4e0412e7451407c4c19ce281c6d82f2e..ded31b94a1d19e6329867cfa635c387eac999ba3 100644
--- a/ring-android/app/src/withFirebase/java/cx/ring/services/JamiFirebaseMessagingService.java
+++ b/ring-android/app/src/withFirebase/java/cx/ring/services/JamiFirebaseMessagingService.java
@@ -18,6 +18,10 @@
  */
 package cx.ring.services;
 
+import android.content.Context;
+import android.os.PowerManager;
+import android.util.Log;
+
 import androidx.annotation.NonNull;
 
 import com.google.firebase.messaging.FirebaseMessagingService;
@@ -29,6 +33,17 @@ import cx.ring.application.JamiApplicationFirebase;
 public class JamiFirebaseMessagingService extends FirebaseMessagingService {
     @Override
     public void onMessageReceived(@NonNull RemoteMessage remoteMessage) {
+        try {
+            // Even if wakeLock is deprecated, without this part, some devices are blocking
+            // during the call negotiation. So, re-add this code to avoid to block here.
+            PowerManager pm = (PowerManager)getSystemService(Context.POWER_SERVICE);
+            PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "wake:push");
+            wl.setReferenceCounted(false);
+            wl.acquire(20 * 1000);
+        } catch (Exception e) {
+            Log.w("JamiFirebaseMessaging", "Can't acquire wake lock", e);
+        }
+
         JamiApplicationFirebase app = (JamiApplicationFirebase)JamiApplication.getInstance();
         if (app != null)
             app.onMessageReceived(remoteMessage);