mirror of
https://github.com/jambonz/jambonz-feature-server.git
synced 2025-12-20 16:50:39 +00:00
Bugfix/gather kill race condition (#207)
* further fix for race condition in #206 * #206: ignore request to start bot mode when bot mode is already active
This commit is contained in:
@@ -454,8 +454,8 @@ class CallSession extends Emitter {
|
|||||||
async enableBotMode(gather, autoEnable) {
|
async enableBotMode(gather, autoEnable) {
|
||||||
try {
|
try {
|
||||||
if (this.backgroundGatherTask) {
|
if (this.backgroundGatherTask) {
|
||||||
this.logger.info('CallSession:enableBotMode - bot mode currently enabled, stop it');
|
this.logger.info('CallSession:enableBotMode - bot mode currently enabled, ignoring request to start again');
|
||||||
this.disableBotMode();
|
return;
|
||||||
}
|
}
|
||||||
const t = normalizeJambones(this.logger, [gather]);
|
const t = normalizeJambones(this.logger, [gather]);
|
||||||
this.backgroundGatherTask = makeTask(this.logger, t[0]);
|
this.backgroundGatherTask = makeTask(this.logger, t[0]);
|
||||||
|
|||||||
@@ -182,6 +182,10 @@ class TaskGather extends Task {
|
|||||||
this.logger.debug('Gather:exec - calling _initSpeech');
|
this.logger.debug('Gather:exec - calling _initSpeech');
|
||||||
this._initSpeech(cs, ep)
|
this._initSpeech(cs, ep)
|
||||||
.then(() => {
|
.then(() => {
|
||||||
|
if (this.killed) {
|
||||||
|
this.logger.info('Gather:exec - task was quickly killed so do not transcribe');
|
||||||
|
return;
|
||||||
|
}
|
||||||
this._startTranscribing(ep);
|
this._startTranscribing(ep);
|
||||||
return updateSpeechCredentialLastUsed(this.sttCredentials.speech_credential_sid);
|
return updateSpeechCredentialLastUsed(this.sttCredentials.speech_credential_sid);
|
||||||
})
|
})
|
||||||
@@ -232,7 +236,13 @@ class TaskGather extends Task {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
else startListening(cs, ep);
|
else {
|
||||||
|
if (this.killed) {
|
||||||
|
this.logger.info('Gather:exec - task was immediately killed so do not transcribe');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
startListening(cs, ep);
|
||||||
|
}
|
||||||
|
|
||||||
if (this.input.includes('speech') && this.listenDuringPrompt) {
|
if (this.input.includes('speech') && this.listenDuringPrompt) {
|
||||||
await this._initSpeech(cs, ep);
|
await this._initSpeech(cs, ep);
|
||||||
|
|||||||
Reference in New Issue
Block a user