restructure gather a bit

This commit is contained in:
akirilyuk
2022-02-03 22:01:29 +01:00
parent 017bc39103
commit 22dad4eed6
2 changed files with 14 additions and 10 deletions

View File

@@ -369,13 +369,12 @@ class Cognigy extends Task {
//then stop execution of currently queues bot output before sending the
//response to waiting bot since otherwise we could stop upcoming bot output
/*
if (this.config.bargeInEnabled && this.config.skipUntilBotInput) {
// clear task queue, resolve the last promise and cleanup;
this.taskQueue.lastPromise.resolve();
this.taskQueue.end();
this.taskQueue.autostart = true;
}*/
}
if (this.eventHook) {
this.performHook(cs, this.eventHook, {event: 'userMessage', message: utterance})

View File

@@ -100,16 +100,28 @@ class TaskGather extends Task {
try {
if (this.sayTask) {
this.logger.debug('Gather: kicking off say task');
if (this.input.includes('speech') && this.listenDuringPrompt) {
await this._initSpeech(cs, ep);
this._startTranscribing(ep);
updateSpeechCredentialLastUsed(this.sttCredentials.speech_credential_sid)
.catch(() => {/*already logged error */});
}
this.sayTask.exec(cs, ep);
this.sayTask.on('playDone', async(err) => {
if (err) return this.logger.error({err}, 'Gather:exec Error playing tts');
this.logger.debug('Gather: say task completed');
if (!this.killed) {
startListening(cs, ep);
startListening(cs, ep);
}
});
}
else if (this.playTask) {
if (this.listenDuringPrompt && this.input.includes('speech')) {
await this._initSpeech(cs, ep);
this._startTranscribing(ep);
updateSpeechCredentialLastUsed(this.sttCredentials.speech_credential_sid)
.catch(() => {/*already logged error */});
}
this.playTask.exec(cs, ep); // kicked off, _not_ waiting for it to complete
this.playTask.on('playDone', async(err) => {
if (err) return this.logger.error({err}, 'Gather:exec Error playing url');
@@ -120,13 +132,6 @@ class TaskGather extends Task {
}
else startListening(cs, ep);
if (this.input.includes('speech') && this.listenDuringPrompt) {
await this._initSpeech(cs, ep);
this._startTranscribing(ep);
updateSpeechCredentialLastUsed(this.sttCredentials.speech_credential_sid)
.catch(() => {/*already logged error */});
}
if (this.input.includes('digits') || this.dtmfBargein) {
ep.on('dtmf', this._onDtmf.bind(this, cs, ep));
}