From 2b9cb5105fb03f60222d11410d9711502a013181 Mon Sep 17 00:00:00 2001 From: Dave Horton Date: Wed, 15 Dec 2021 19:33:31 -0500 Subject: [PATCH] clean up handlers --- lib/tasks/dial.js | 9 +++++++++ lib/tasks/listen.js | 5 +++++ 2 files changed, 14 insertions(+) diff --git a/lib/tasks/dial.js b/lib/tasks/dial.js index 6467269a..09551d17 100644 --- a/lib/tasks/dial.js +++ b/lib/tasks/dial.js @@ -235,10 +235,19 @@ class TaskDial extends Task { } } + _removeHandlers(sd) { + sd.removeAllListeners('accept'); + sd.removeAllListeners('decline'); + sd.removeAllListeners('adulting'); + sd.removeAllListeners('callStatusChange'); + sd.removeAllListeners('callCreateFail'); + } + _killOutdials() { for (const [callSid, sd] of Array.from(this.dials)) { this.logger.debug(`Dial:_killOutdials killing callSid ${callSid}`); sd.kill().catch((err) => this.logger.info(err, `Dial:_killOutdials Error killing ${callSid}`)); + this._removeHandlers(sd); } this.dials.clear(); } diff --git a/lib/tasks/listen.js b/lib/tasks/listen.js index e3d8ad58..c7bd10b0 100644 --- a/lib/tasks/listen.js +++ b/lib/tasks/listen.js @@ -64,6 +64,7 @@ class TaskListen extends Task { this.results.dialCallDuration = duration; } if (this.transcribeTask) await this.transcribeTask.kill(cs); + this.ep && this._removeListeners(this.ep); this.notifyTaskDone(); } @@ -136,6 +137,10 @@ class TaskListen extends Task { if (this.finishOnKey || this.passDtmf) { ep.removeListener('dtmf', this._dtmfHandler); } + ep.removeCustomEventListener(ListenEvents.PlayAudio); + ep.removeCustomEventListener(ListenEvents.KillAudio); + ep.removeCustomEventListener(ListenEvents.Disconnect); + } _onDtmf(evt) {