fix conference end is not sent when moderator leave conference (#825)

* fix conference end is not sent when moderator leave conference

* wip

* fix review comment
This commit is contained in:
Hoan Luu Huu
2024-07-30 18:32:07 +07:00
committed by GitHub
parent 4b4807e4cf
commit cc33ac1d51
2 changed files with 6 additions and 2 deletions

View File

@@ -2067,6 +2067,9 @@ Duration=${duration} `
this.logger.error('CallSession:replaceEndpoint cannot be called without stable dlg'); this.logger.error('CallSession:replaceEndpoint cannot be called without stable dlg');
return; return;
} }
// When this call kicked out from conference, session need to replace endpoint
// but this.ms might be undefined/null at this case.
this.ms = this.ms || this.getMS();
this.ep = await this.ms.createEndpoint({remoteSdp: this.dlg.remote.sdp}); this.ep = await this.ms.createEndpoint({remoteSdp: this.dlg.remote.sdp});
this._configMsEndpoint(); this._configMsEndpoint();

View File

@@ -604,7 +604,7 @@ class Conference extends Task {
* when we hang up as the last member, the current member count = 1 * when we hang up as the last member, the current member count = 1
* when we are kicked out of the call when the moderator leaves, the member count = 0 * when we are kicked out of the call when the moderator leaves, the member count = 0
*/ */
if (this.participantCount === 0) { if (this.participantCount === 0 || this.endConferenceOnExit) {
const {deleteKey} = cs.srf.locals.dbHelpers; const {deleteKey} = cs.srf.locals.dbHelpers;
try { try {
this._notifyConferenceEvent(cs, 'end'); this._notifyConferenceEvent(cs, 'end');
@@ -612,7 +612,8 @@ class Conference extends Task {
this.logger.info(`conf ${this.confName} deprovisioned: ${removed ? 'success' : 'failure'}`); this.logger.info(`conf ${this.confName} deprovisioned: ${removed ? 'success' : 'failure'}`);
} }
catch (err) { catch (err) {
this.logger.error(err, `Error deprovisioning conference ${this.confName}`); this.logger.error(err, `Error deprovisioning conference ${this.confName},
might be the conference already cleaned by another moderator`);
} }
} }
} }