diff --git a/lib/tasks/gather.js b/lib/tasks/gather.js index d915bd1b..43c9eb51 100644 --- a/lib/tasks/gather.js +++ b/lib/tasks/gather.js @@ -100,12 +100,6 @@ 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'); @@ -120,12 +114,6 @@ class TaskGather extends Task { }); } 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'); @@ -141,6 +129,13 @@ 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)); }