From afc1fd36396697bad95c8b4e8788e480c40ec9da Mon Sep 17 00:00:00 2001 From: Dave Horton Date: Mon, 9 Mar 2020 22:17:44 +0000 Subject: [PATCH] prevent calling dlg.destroy twice --- lib/session/call-session.js | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/session/call-session.js b/lib/session/call-session.js index f27cc80b..6d45f4d3 100644 --- a/lib/session/call-session.js +++ b/lib/session/call-session.js @@ -567,10 +567,14 @@ class CallSession extends Emitter { dlg.connectTime = moment(); const origDestroy = dlg.destroy.bind(dlg); dlg.destroy = () => { - const duration = moment().diff(this.dlg.connectTime, 'seconds'); - this.emit('callStatusChange', {callStatus: CallStatus.Completed, duration}); - this.logger.debug('CallSession: call terminated by jambones'); - if (dlg.connected) origDestroy(); + if (dlg.connected) { + dlg.connected = false; + dlg.destroy = origDestroy; + const duration = moment().diff(this.dlg.connectTime, 'seconds'); + this.emit('callStatusChange', {callStatus: CallStatus.Completed, duration}); + this.logger.debug('CallSession: call terminated by jambones'); + origDestroy(); + } }; }