From 649b3d5715721ec2baf687eab918e120986969b0 Mon Sep 17 00:00:00 2001 From: Dave Horton Date: Tue, 10 Aug 2021 11:00:47 -0400 Subject: [PATCH] race condition: dial call killed just as called party picks up --- lib/utils/place-outdial.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/lib/utils/place-outdial.js b/lib/utils/place-outdial.js index b7786217..7e6017e0 100644 --- a/lib/utils/place-outdial.js +++ b/lib/utils/place-outdial.js @@ -181,6 +181,15 @@ class SingleDialer extends Emitter { this.logger.debug(`SingleDialer:exec call connected: ${this.callSid}`); const connectTime = this.dlg.connectTime = moment(); + /* race condition: we were killed just as call was answered */ + if (this.killed) { + this.logger.info(`SingleDialer:exec race condition - we were killed as call connected: ${this.callSid}`); + const duration = moment().diff(connectTime, 'seconds'); + this.emit('callStatusChange', {callStatus: CallStatus.Completed, duration}); + if (this.ep) this.ep.destroy(); + return; + } + this.dlg .on('destroy', () => { const duration = moment().diff(connectTime, 'seconds');