fix: only send call reject event when needed

This is fixes rejects by missed calls, which should only reject a new call locally and not send a event if they are already in a call
This commit is contained in:
td 2023-01-27 17:16:41 +05:30
parent 07b0c3fe4d
commit ce0bdd9dc6
No known key found for this signature in database
GPG Key ID: F6D9E9BF14C7D103
3 changed files with 8 additions and 4 deletions

View File

@ -133,6 +133,8 @@ newCall.answer();
newCall.reject();
```
To reject a call locally but not send a event, use `newCall.reject(shouldEmit: false)`
### 5.Render media stream
The basic process of rendering a video stream is as follow code.

View File

@ -1022,8 +1022,10 @@ class CallSession {
}
Logs().d('[VOIP] Rejecting call: $callId');
await terminate(CallParty.kLocal, CallErrorCode.UserHangup, shouldEmit);
await sendCallReject(
room, callId, Timeouts.lifetimeMs, localPartyId, reason);
if (shouldEmit) {
await sendCallReject(
room, callId, Timeouts.lifetimeMs, localPartyId, reason);
}
}
Future<void> hangup([String? reason, bool suppressEvent = false]) async {

View File

@ -224,8 +224,8 @@ class VoIP {
if (!delegate.canHandleNewCall &&
(confId == null || confId != currentGroupCID)) {
Logs().v(
'[glare] [VOIP] onCallInvite: Unable to handle new calls, maybe user is busy.');
await newCall.reject(reason: 'busy', shouldEmit: false);
'[VOIP] onCallInvite: Unable to handle new calls, maybe user is busy.');
await newCall.reject(reason: CallErrorCode.UserBusy, shouldEmit: false);
delegate.handleMissedCall(newCall);
return;
}