mirror of
https://github.com/jambonz/jambonz-feature-server.git
synced 2025-12-20 16:50:39 +00:00
FD_1079: tts modules response_code = 0 should make say fail to exec. (#1269)
* FD_1079: tts modules response_code = 0 should make say fail to exec. * fixed tts azure does not have response code * fixed tts error does not raise alarm * wip * fixed
This commit is contained in:
@@ -285,25 +285,38 @@ class TaskSay extends TtsTask {
|
||||
this.notifyStatus({event: 'stop-playback'});
|
||||
this.notifiedPlayBackStop = true;
|
||||
const tts_error = evt.variable_tts_error;
|
||||
// some tts vendor may not provide response code, so we default to 200
|
||||
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;
|
||||
response_code = parseInt(value, 10);
|
||||
if (isNaN(response_code)) {
|
||||
this.logger.info(`Say:exec playback-stop - Invalid response code: ${value}`);
|
||||
response_code = 0;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (tts_error) {
|
||||
if (tts_error ||
|
||||
// error response codes indicate failure
|
||||
response_code <= 199 || response_code >= 300) {
|
||||
writeAlerts({
|
||||
account_sid,
|
||||
alert_type: AlertType.TTS_FAILURE,
|
||||
vendor,
|
||||
detail: evt.variable_tts_error,
|
||||
detail: evt.variable_tts_error || `TTS playback failed with response code ${response_code}`,
|
||||
target_sid
|
||||
}).catch((err) => this.logger.info({err}, 'Error generating alert for no tts'));
|
||||
}
|
||||
if (!tts_error && response_code < 300 && evt.variable_tts_cache_filename && !this.killed) {
|
||||
if (
|
||||
!tts_error &&
|
||||
//2xx response codes indicate success
|
||||
199 < response_code && response_code < 300 &&
|
||||
evt.variable_tts_cache_filename &&
|
||||
!this.killed
|
||||
) {
|
||||
const text = parseTextFromSayString(this.text[segment]);
|
||||
addFileToCache(evt.variable_tts_cache_filename, {
|
||||
account_sid,
|
||||
@@ -318,8 +331,13 @@ class TaskSay extends TtsTask {
|
||||
}
|
||||
|
||||
if (this._playResolve) {
|
||||
(tts_error || response_code >= 300) ? this._playReject(new Error(evt.variable_tts_error)) :
|
||||
this._playResolve();
|
||||
(tts_error ||
|
||||
// error response codes indicate failure
|
||||
response_code <= 199 || response_code >= 300
|
||||
) ?
|
||||
this._playReject(
|
||||
new Error(evt.variable_tts_error || `TTS playback failed with response code ${response_code}`)
|
||||
) : this._playResolve();
|
||||
}
|
||||
});
|
||||
// wait for playback-stop event received to confirm if the playback is successful
|
||||
|
||||
Reference in New Issue
Block a user