mirror of
https://github.com/jambonz/jambonz-feature-server.git
synced 2025-12-20 16:50:39 +00:00
fix say verb cannot failover if tts_response-code != 2xx (#1174)
This commit is contained in:
@@ -223,7 +223,17 @@ class TaskSay extends TtsTask {
|
|||||||
});
|
});
|
||||||
ep.once('playback-stop', (evt) => {
|
ep.once('playback-stop', (evt) => {
|
||||||
this.logger.debug({evt}, 'Say got playback-stop');
|
this.logger.debug({evt}, 'Say got playback-stop');
|
||||||
if (evt.variable_tts_error) {
|
const tts_error = evt.variable_tts_error;
|
||||||
|
let response_code = 200;
|
||||||
|
// Check if any property ends with _response_code
|
||||||
|
for (const [key, value] of Object.entries(evt)) {
|
||||||
|
if (key.endsWith('_response_code')) {
|
||||||
|
response_code = parseInt(value, 10) || 200;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (tts_error) {
|
||||||
writeAlerts({
|
writeAlerts({
|
||||||
account_sid,
|
account_sid,
|
||||||
alert_type: AlertType.TTS_FAILURE,
|
alert_type: AlertType.TTS_FAILURE,
|
||||||
@@ -232,7 +242,7 @@ class TaskSay extends TtsTask {
|
|||||||
target_sid
|
target_sid
|
||||||
}).catch((err) => this.logger.info({err}, 'Error generating alert for no tts'));
|
}).catch((err) => this.logger.info({err}, 'Error generating alert for no tts'));
|
||||||
}
|
}
|
||||||
if (evt.variable_tts_cache_filename && !this.killed) {
|
if (!tts_error && response_code < 300 && evt.variable_tts_cache_filename && !this.killed) {
|
||||||
const text = parseTextFromSayString(this.text[segment]);
|
const text = parseTextFromSayString(this.text[segment]);
|
||||||
addFileToCache(evt.variable_tts_cache_filename, {
|
addFileToCache(evt.variable_tts_cache_filename, {
|
||||||
account_sid,
|
account_sid,
|
||||||
@@ -246,7 +256,8 @@ class TaskSay extends TtsTask {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (this._playResolve) {
|
if (this._playResolve) {
|
||||||
evt.variable_tts_error ? this._playReject(new Error(evt.variable_tts_error)) : this._playResolve();
|
(tts_error || response_code >= 300) ? this._playReject(new Error(evt.variable_tts_error)) :
|
||||||
|
this._playResolve();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
// wait for playback-stop event received to confirm if the playback is successful
|
// wait for playback-stop event received to confirm if the playback is successful
|
||||||
|
|||||||
Reference in New Issue
Block a user