send hangup when leaving the call
but not when somebody else leaves the call through a member event
This commit is contained in:
parent
ff856d843c
commit
021b8cdcdc
2 changed files with 8 additions and 4 deletions
|
@ -269,7 +269,7 @@ export class GroupCall extends EventEmitter<{change: never}> {
|
|||
if (this._state === GroupCallState.Joined) {
|
||||
log.set("leave_own", true);
|
||||
for (const [,member] of this._members) {
|
||||
member.disconnect();
|
||||
member.disconnect(true);
|
||||
}
|
||||
this._localMedia?.dispose();
|
||||
this._localMedia = undefined;
|
||||
|
@ -286,7 +286,7 @@ export class GroupCall extends EventEmitter<{change: never}> {
|
|||
if (member) {
|
||||
log.set("leave", true);
|
||||
this._members.remove(memberKey);
|
||||
member.disconnect();
|
||||
member.disconnect(false);
|
||||
}
|
||||
this.emitChange();
|
||||
});
|
||||
|
|
|
@ -99,9 +99,13 @@ export class Member {
|
|||
}
|
||||
|
||||
/** @internal */
|
||||
disconnect() {
|
||||
disconnect(hangup: boolean) {
|
||||
this.logItem.wrap("disconnect", log => {
|
||||
this.peerCall?.close(undefined, log);
|
||||
if (hangup) {
|
||||
this.peerCall?.hangup(CallErrorCode.UserHangup);
|
||||
} else {
|
||||
this.peerCall?.close(undefined, log);
|
||||
}
|
||||
this.peerCall?.dispose();
|
||||
this.peerCall = undefined;
|
||||
this.localMedia?.dispose();
|
||||
|
|
Reference in a new issue