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 //then stop execution of currently queues bot output before sending the
//response to waiting bot since otherwise we could stop upcoming bot output //response to waiting bot since otherwise we could stop upcoming bot output
/*
if (this.config.bargeInEnabled && this.config.skipUntilBotInput) { if (this.config.bargeInEnabled && this.config.skipUntilBotInput) {
// clear task queue, resolve the last promise and cleanup; // clear task queue, resolve the last promise and cleanup;
this.taskQueue.lastPromise.resolve(); this.taskQueue.lastPromise.resolve();
this.taskQueue.end(); this.taskQueue.end();
this.taskQueue.autostart = true; this.taskQueue.autostart = true;
}*/ }
if (this.eventHook) { if (this.eventHook) {
this.performHook(cs, this.eventHook, {event: 'userMessage', message: utterance}) this.performHook(cs, this.eventHook, {event: 'userMessage', message: utterance})

View File

@@ -100,16 +100,28 @@ class TaskGather extends Task {
try { try {
if (this.sayTask) { if (this.sayTask) {
this.logger.debug('Gather: kicking off say task'); 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.exec(cs, ep);
this.sayTask.on('playDone', async(err) => { this.sayTask.on('playDone', async(err) => {
if (err) return this.logger.error({err}, 'Gather:exec Error playing tts'); if (err) return this.logger.error({err}, 'Gather:exec Error playing tts');
this.logger.debug('Gather: say task completed'); this.logger.debug('Gather: say task completed');
if (!this.killed) { if (!this.killed) {
startListening(cs, ep); startListening(cs, ep);
} }
}); });
} }
else if (this.playTask) { 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.exec(cs, ep); // kicked off, _not_ waiting for it to complete
this.playTask.on('playDone', async(err) => { this.playTask.on('playDone', async(err) => {
if (err) return this.logger.error({err}, 'Gather:exec Error playing url'); if (err) return this.logger.error({err}, 'Gather:exec Error playing url');
@@ -120,13 +132,6 @@ class TaskGather extends Task {
} }
else startListening(cs, ep); 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) { if (this.input.includes('digits') || this.dtmfBargein) {
ep.on('dtmf', this._onDtmf.bind(this, cs, ep)); ep.on('dtmf', this._onDtmf.bind(this, cs, ep));
} }