diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/RoomService.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/RoomService.kt
index 65383f1007b1874da82cc0c99e2d4eff3077834f..a509533c8ff452c4fc42ac22f773b9d28352d6a4 100644
--- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/RoomService.kt
+++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/RoomService.kt
@@ -293,4 +293,7 @@ interface RoomService {
      * This is useful for refreshing summary content with encrypted messages after receiving new room keys.
      */
     fun refreshJoinedRoomSummaryPreviews(roomId: String?)
+
+    //Ask permission to join the room.
+    suspend fun knock(roomId: String, reason: String? = null)
 }
diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/members/MembershipService.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/members/MembershipService.kt
index 7ea4ba3cfb3543fcd202095a1d7d61c8cd5fb617..144cfeb3b81b6dd57bc50313f9c55efb45ee8cd2 100644
--- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/members/MembershipService.kt
+++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/members/MembershipService.kt
@@ -95,7 +95,4 @@ interface MembershipService {
 
     @Deprecated("Use remove instead", ReplaceWith("remove(userId, reason)"))
     suspend fun kick(userId: String, reason: String? = null) = remove(userId, reason)
-
-    //Ask permission to join the room.
-    suspend fun knock(userId: String, reason: String? = null)
 }
diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/DefaultRoomService.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/DefaultRoomService.kt
index 6d72b8ef2062aeaca73787a3eedebe28019616cf..926659be281c92f924c530c371388c27555dd3d5 100644
--- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/DefaultRoomService.kt
+++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/DefaultRoomService.kt
@@ -51,6 +51,7 @@ import org.matrix.android.sdk.internal.session.room.delete.DeleteLocalRoomTask
 import org.matrix.android.sdk.internal.session.room.membership.RoomChangeMembershipStateDataSource
 import org.matrix.android.sdk.internal.session.room.membership.RoomMemberHelper
 import org.matrix.android.sdk.internal.session.room.membership.joining.JoinRoomTask
+import org.matrix.android.sdk.internal.session.room.membership.joining.KnockTask
 import org.matrix.android.sdk.internal.session.room.membership.leaving.LeaveRoomTask
 import org.matrix.android.sdk.internal.session.room.peeking.PeekRoomTask
 import org.matrix.android.sdk.internal.session.room.peeking.ResolveRoomStateTask
@@ -77,8 +78,9 @@ internal class DefaultRoomService @Inject constructor(
         private val roomSummaryDataSource: RoomSummaryDataSource,
         private val roomChangeMembershipStateDataSource: RoomChangeMembershipStateDataSource,
         private val leaveRoomTask: LeaveRoomTask,
-        private val roomSummaryUpdater: RoomSummaryUpdater
-) : RoomService {
+        private val roomSummaryUpdater: RoomSummaryUpdater,
+        private val knockTask: KnockTask
+        ) : RoomService {
 
     override suspend fun createRoom(createRoomParams: CreateRoomParams): String {
         return createRoomTask.executeRetry(createRoomParams, 3)
@@ -262,4 +264,8 @@ internal class DefaultRoomService @Inject constructor(
         }
         return roomSummaryDataSource.getAllRoomSummaryChildOfLive(spaceId, memberships)
     }
+
+    override suspend fun knock(roomId: String, reason: String?) {
+        knockTask.execute(KnockTask.Params(roomId, reason))
+    }
 }
diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/membership/DefaultMembershipService.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/membership/DefaultMembershipService.kt
index ae7f624669e8359137a438c50f5a0d6fa928b56f..0baf6a83efee63fa06054c4c2ba24aea003ba6f4 100644
--- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/membership/DefaultMembershipService.kt
+++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/membership/DefaultMembershipService.kt
@@ -55,7 +55,6 @@ internal class DefaultMembershipService @AssistedInject constructor(
         private val inviteTask: InviteTask,
         private val inviteThreePidTask: InviteThreePidTask,
         private val membershipAdminTask: MembershipAdminTask,
-        private val knockTask: KnockTask,
         private val roomDataSource: RoomDataSource,
         private val cryptoService: CryptoService,
         @UserId
@@ -166,9 +165,4 @@ internal class DefaultMembershipService @AssistedInject constructor(
         val params = InviteThreePidTask.Params(roomId, threePid)
         return inviteThreePidTask.execute(params)
     }
-
-    override suspend fun knock(userId: String, reason: String?) {
-        val params = KnockTask.Params(roomId, reason)
-        knockTask.execute(params)
-    }
 }