@onereach/step-voice
Version:
Onereach.ai Voice Steps
42 lines (41 loc) • 1.4 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const voice_1 = tslib_1.__importDefault(require("./voice"));
class Hangup extends voice_1.default {
async runStep() {
const call = await this.fetchData();
this.triggers.local(`in/voice/${call.id}`, async (event) => {
switch (event.params.type) {
case 'hangup':
await this.handleHangup(call);
return this.exitStep('next');
case 'error':
return this.throwError(event.params.error);
case 'cancel': {
return this.handleCancel();
}
default:
return this.exitFlow();
}
});
this.triggers.otherwise(async () => {
if (call.ended)
return this.exitStep('next');
try {
call.sessionEndedBy = 'Bot';
await this.updateData();
await this.sendCommands(call, [{ name: 'hangup' }]);
}
catch (err) {
this.log.warn('hangup error', err);
return this.exitStep('next');
}
return this.exitFlow();
});
}
async onConvEnd() {
this.exitStep('next');
}
}
exports.default = Hangup;