diff options
Diffstat (limited to 'apps/app_voicemail.c')
-rw-r--r-- | apps/app_voicemail.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/apps/app_voicemail.c b/apps/app_voicemail.c index 894038bdb..4727e2ee5 100644 --- a/apps/app_voicemail.c +++ b/apps/app_voicemail.c @@ -13532,6 +13532,8 @@ static int actual_load_config(int reload, struct ast_config *cfg, struct ast_con int x; unsigned int tmpadsi[4]; char secretfn[PATH_MAX] = ""; + long tps_queue_low; + long tps_queue_high; #ifdef IMAP_STORAGE ast_copy_string(imapparentfolder, "\0", sizeof(imapparentfolder)); @@ -14107,6 +14109,25 @@ static int actual_load_config(int reload, struct ast_config *cfg, struct ast_con pagerbody = ast_strdup(substitute_escapes(val)); } + tps_queue_high = AST_TASKPROCESSOR_HIGH_WATER_LEVEL; + if ((val = ast_variable_retrieve(cfg, "general", "tps_queue_high"))) { + if (sscanf(val, "%30ld", &tps_queue_high) != 1 || tps_queue_high <= 0) { + ast_log(AST_LOG_WARNING, "Invalid the taskprocessor high water alert trigger level '%s'\n", val); + tps_queue_high = AST_TASKPROCESSOR_HIGH_WATER_LEVEL; + } + } + tps_queue_low = -1; + if ((val = ast_variable_retrieve(cfg, "general", "tps_queue_low"))) { + if (sscanf(val, "%30ld", &tps_queue_low) != 1 || + tps_queue_low < -1 || tps_queue_high < tps_queue_low) { + ast_log(AST_LOG_WARNING, "Invalid the taskprocessor low water clear alert level '%s'\n", val); + tps_queue_low = -1; + } + } + if (ast_taskprocessor_alert_set_levels(mwi_subscription_tps, tps_queue_low, tps_queue_high)) { + ast_log(AST_LOG_WARNING, "Failed to set alert levels for voicemail taskprocessor.\n"); + } + /* load mailboxes from users.conf */ if (ucfg) { for (cat = ast_category_browse(ucfg, NULL); cat ; cat = ast_category_browse(ucfg, cat)) { |