mirror of
https://github.com/jambonz/jambonz-feature-server.git
synced 2025-12-20 08:40:38 +00:00
fixed does not send final status call back if call canceled quickly (#1393)
* fixed callsession should cleanup resource if call was canceled while fetching app * wip * wip * wip * wip * wip
This commit is contained in:
@@ -112,6 +112,14 @@ module.exports = function(srf, logger) {
|
|||||||
req.locals.callingNumber = sipURIs[1];
|
req.locals.callingNumber = sipURIs[1];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Feature server INVITE request pipelines taking time to finish,
|
||||||
|
// while connecting and fetch application from db and invoking webhook.
|
||||||
|
// call can be canceled without any handling, so we add a listener here
|
||||||
|
req.once('cancel', (sipMsg) => {
|
||||||
|
logger.info(`${callId} got CANCEL request`);
|
||||||
|
req.locals.canceled = true;
|
||||||
|
});
|
||||||
next();
|
next();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -22,6 +22,12 @@ class InboundCallSession extends CallSession {
|
|||||||
this.req = req;
|
this.req = req;
|
||||||
this.res = res;
|
this.res = res;
|
||||||
|
|
||||||
|
// if the call was canceled before we got here, handle it
|
||||||
|
if (this.req.locals.canceled) {
|
||||||
|
req.locals.logger.info('InboundCallSession: constructor - call was already canceled');
|
||||||
|
this._onCancel();
|
||||||
|
}
|
||||||
|
|
||||||
req.once('cancel', this._onCancel.bind(this));
|
req.once('cancel', this._onCancel.bind(this));
|
||||||
|
|
||||||
this.on('callStatusChange', this._notifyCallStatusChange.bind(this));
|
this.on('callStatusChange', this._notifyCallStatusChange.bind(this));
|
||||||
|
|||||||
Reference in New Issue
Block a user