mirror of
https://github.com/jambonz/jambonz-feature-server.git
synced 2025-12-20 16:50:39 +00:00
36 lines
874 B
JavaScript
36 lines
874 B
JavaScript
const Task = require('./task');
|
|
const {TaskName, TaskPreconditions, CallStatus} = require('../utils/constants');
|
|
|
|
/**
|
|
* Rejects an incoming call with user-specified status code and reason
|
|
*/
|
|
class TaskSipDecline extends Task {
|
|
constructor(logger, opts) {
|
|
super(logger, opts);
|
|
this.preconditions = TaskPreconditions.UnansweredCall;
|
|
|
|
this.headers = this.data.headers || {};
|
|
}
|
|
|
|
get name() { return TaskName.SipDecline; }
|
|
|
|
async exec(cs, {res}) {
|
|
super.exec(cs);
|
|
res.send(this.data.status, this.data.reason, {
|
|
headers: this.headers
|
|
}, (err) => {
|
|
if (!err) {
|
|
// Call was successfully declined
|
|
cs._callReleased();
|
|
}
|
|
});
|
|
cs.emit('callStatusChange', {
|
|
callStatus: CallStatus.Failed,
|
|
sipStatus: this.data.status,
|
|
sipReason: this.data.reason
|
|
});
|
|
}
|
|
}
|
|
|
|
module.exports = TaskSipDecline;
|