Merge pull request #8660 from vector-im/feature/bma/stopInfiniteRingingCall

Ensure the incoming call will not ring forever, in case the call is not ended by another way
This commit is contained in:
Benoit Marty 2023-10-06 17:45:46 +02:00 committed by GitHub
commit ebc81e24af
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 0 deletions

1
changelog.d/8178.bugfix Normal file
View File

@ -0,0 +1 @@
Ensure the incoming call will not ring forever, in case the call is not ended by another way.

View File

@ -34,6 +34,8 @@ import im.vector.app.features.call.vectorCallService
import im.vector.app.features.session.coroutineScope
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.asCoroutineDispatcher
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
import org.matrix.android.sdk.api.extensions.orFalse
import org.matrix.android.sdk.api.extensions.tryOrNull
import org.matrix.android.sdk.api.logger.LoggerTag
@ -386,6 +388,14 @@ class WebRtcCallManager @Inject constructor(
// Maybe increase sync freq? but how to set back to default values?
}
}
// ensure the incoming call will not ring forever
sessionScope?.launch {
delay(2 * 60 * 1000 /* 2 minutes */)
if (mxCall.state is CallState.LocalRinging) {
onCallEnded(mxCall.callId, EndCallReason.INVITE_TIMEOUT, rejected = false)
}
}
}
override fun onCallAnswerReceived(callAnswerContent: CallAnswerContent) {