diff --git a/lib/session/adulting-call-session.js b/lib/session/adulting-call-session.js index 6237b791..0b9396f4 100644 --- a/lib/session/adulting-call-session.js +++ b/lib/session/adulting-call-session.js @@ -1,4 +1,6 @@ const CallSession = require('./call-session'); +const {CallStatus} = require('../utils/constants'); +const moment = require('moment'); /** * @classdesc Subclass of CallSession. Represents a CallSession @@ -26,6 +28,7 @@ class AdultingCallSession extends CallSession { this._callReleased(); }); this.sd.emit('adulting'); + this.on('callStatusChange', this._notifyCallStatusChange.bind(this)); } get dlg() { @@ -50,6 +53,18 @@ class AdultingCallSession extends CallSession { } _callerHungup() { + if (this.dlg.connectTime) { + const duration = moment().diff(this.dlg.connectTime, 'seconds'); + this.rootSpan.setAttributes({'call.termination': 'hangup by caller'}); + this.callInfo.callTerminationBy = 'caller'; + this.emit('callStatusChange', { + callStatus: CallStatus.Completed, + duration + }); + } + this.logger.info('InboundCallSession: caller hung up'); + this._callReleased(); + this.req.removeAllListeners('cancel'); } }