diff --git a/lib/utils/amd-utils.js b/lib/utils/amd-utils.js index 59514893..16839365 100644 --- a/lib/utils/amd-utils.js +++ b/lib/utils/amd-utils.js @@ -273,26 +273,46 @@ module.exports = (logger) => { amd .on(AmdEvents.NoSpeechDetected, (evt) => { task.emit('amd', {type: AmdEvents.NoSpeechDetected, ...evt}); - ep.stopTranscription({vendor, bugname}); + try { + ep.connected && ep.stopTranscription({vendor, bugname}); + } catch (err) { + logger.info({err}, 'Error stopping transcription'); + } }) .on(AmdEvents.HumanDetected, (evt) => { task.emit('amd', {type: AmdEvents.HumanDetected, ...evt}); - ep.stopTranscription({vendor, bugname}); + try { + ep.connected && ep.stopTranscription({vendor, bugname}); + } catch (err) { + logger.info({err}, 'Error stopping transcription'); + } }) .on(AmdEvents.MachineDetected, (evt) => { task.emit('amd', {type: AmdEvents.MachineDetected, ...evt}); }) .on(AmdEvents.DecisionTimeout, (evt) => { task.emit('amd', {type: AmdEvents.DecisionTimeout, ...evt}); - ep.stopTranscription({vendor, bugname}); + try { + ep.connected && ep.stopTranscription({vendor, bugname}); + } catch (err) { + logger.info({err}, 'Error stopping transcription'); + } }) .on(AmdEvents.ToneTimeout, (evt) => { //task.emit('amd', {type: AmdEvents.ToneTimeout, ...evt}); - ep.execute('avmd_stop').catch((err) => logger.info(err, 'Error stopping avmd')); + try { + ep.connected && ep.execute('avmd_stop').catch((err) => logger.info(err, 'Error stopping avmd')); + } catch (err) { + logger.info({err}, 'Error stopping avmd'); + } }) .on(AmdEvents.MachineStoppedSpeaking, () => { task.emit('amd', {type: AmdEvents.MachineStoppedSpeaking}); - ep.stopTranscription({vendor, bugname}); + try { + ep.connected && ep.stopTranscription({vendor, bugname}); + } catch (err) { + logger.info({err}, 'Error stopping transcription'); + } }); /* start transcribing, and also listening for beep */