From 0794168428fdcfe2e2472bde0310af80b7b6dba3 Mon Sep 17 00:00:00 2001 From: Russell Bryant Date: Fri, 5 May 2006 21:22:50 +0000 Subject: [PATCH] add support for having the user reminded that their temporary greeting is still set (issue #6120, khaefner) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@25057 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- apps/app_voicemail.c | 37 ++++++++++++++++++++++++++-------- configs/voicemail.conf.sample | 2 +- sounds.txt | 2 ++ sounds/vm-tempgreetactive.gsm | Bin 0 -> 4950 bytes 4 files changed, 32 insertions(+), 9 deletions(-) create mode 100644 sounds/vm-tempgreetactive.gsm diff --git a/apps/app_voicemail.c b/apps/app_voicemail.c index 946f6e3b53..ac652e185f 100644 --- a/apps/app_voicemail.c +++ b/apps/app_voicemail.c @@ -120,7 +120,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") #define VM_DELETE (1 << 12) #define VM_ALLOCED (1 << 13) #define VM_SEARCH (1 << 14) - +#define VM_TEMPGREETWARN (1 << 15) /*!< Remind user tempgreeting is set */ #define ERROR_LOCK_PATH -100 enum { @@ -467,7 +467,9 @@ static void apply_option(struct ast_vm_user *vmu, const char *var, const char *v } else if (!strcasecmp(var,"sendvoicemail")){ ast_set2_flag(vmu, ast_true(value), VM_SVMAIL); } else if (!strcasecmp(var, "review")){ - ast_set2_flag(vmu, ast_true(value), VM_REVIEW); + ast_set2_flag(vmu, ast_true(value), VM_REVIEW); + } else if (!strcasecmp(var, "tempgreetwarn")){ + ast_set2_flag(vmu, ast_true(value), VM_TEMPGREETWARN); } else if (!strcasecmp(var, "operator")){ ast_set2_flag(vmu, ast_true(value), VM_OPERATOR); } else if (!strcasecmp(var, "envelope")){ @@ -4058,10 +4060,19 @@ static int vm_intro_gr(struct ast_channel *chan, struct vm_state *vms) } /* Default English syntax */ -static int vm_intro_en(struct ast_channel *chan,struct vm_state *vms) -{ - /* Introduce messages they have */ +static int vm_intro_en(struct ast_channel *chan, struct ast_vm_user *vmu, struct vm_state *vms) + { int res; + char prefile[256]=""; + + /* Notify the user that the temp greeting is set and give them the option to remove it */ + snprintf(prefile, sizeof(prefile), "%s%s/%s/temp", VM_SPOOL_DIR, vmu->context, vms->username); + if (ast_test_flag(vmu, VM_TEMPGREETWARN)) { + if (ast_fileexists(prefile, NULL, NULL) > 0) + res = ast_play_and_wait(chan, "vm-tempgreetactive"); + } + + /* Introduce messages they have */ res = ast_play_and_wait(chan, "vm-youhave"); if (!res) { if (vms->newmessages) { @@ -4616,7 +4627,7 @@ static int vm_intro_ru(struct ast_channel *chan,struct vm_state *vms) } -static int vm_intro(struct ast_channel *chan,struct vm_state *vms) +static int vm_intro(struct ast_channel *chan, struct ast_vm_user *vmu, struct vm_state *vms) { /* Play voicemail intro - syntax is different for different languages */ if (!strcasecmp(chan->language, "de")) { /* GERMAN syntax */ @@ -4642,7 +4653,7 @@ static int vm_intro(struct ast_channel *chan,struct vm_state *vms) } else if (!strcasecmp(chan->language, "ru")) { /* RUSSIAN syntax */ return vm_intro_ru(chan, vms); } else { /* Default to ENGLISH */ - return vm_intro_en(chan, vms); + return vm_intro_en(chan, vmu, vms); } } @@ -5343,7 +5354,7 @@ static int vm_execmain(struct ast_channel *chan, void *data) if (play_auto) { cmd = '1'; } else { - cmd = vm_intro(chan, &vms); + cmd = vm_intro(chan, vmu, &vms); } vms.repeats = 0; @@ -5998,6 +6009,7 @@ static int load_config(void) char *send_voicemail; char *astcallop; char *astreview; + char *asttempgreetwarn; char *astskipcmd; char *asthearenv; char *astsaydurationinfo; @@ -6209,6 +6221,15 @@ static int load_config(void) } ast_set2_flag((&globalflags), ast_true(astreview), VM_REVIEW); + /*Temperary greeting reminder */ + if (!(asttempgreetwarn = ast_variable_retrieve(cfg, "general", "tempgreetwarn"))) { + ast_log(LOG_DEBUG, "VM Temperary Greeting Reminder Option disabled globally\n"); + asttempgreetwarn = "no"; + } else { + ast_log(LOG_DEBUG, "VM Temperary Greeting Reminder Option enabled globally\n"); + } + ast_set2_flag((&globalflags), ast_true(asttempgreetwarn), VM_TEMPGREETWARN); + if (!(astcallop = ast_variable_retrieve(cfg, "general", "operator"))){ ast_log(LOG_DEBUG,"VM Operator break disabled globally\n"); astcallop = "no"; diff --git a/configs/voicemail.conf.sample b/configs/voicemail.conf.sample index 3c74e706bc..61e5588b86 100644 --- a/configs/voicemail.conf.sample +++ b/configs/voicemail.conf.sample @@ -201,7 +201,7 @@ sendvoicemail=yes ; Context to Send voicemail from [option 5 from the advanced m ; greetings. The default is "no". ; hidefromdir=yes ; Hide this mailbox from the directory produced by app_directory ; The default is "no". - +;tempgreetwarn=yes ; Remind the user that their temporary greeting is set [default] ; Define maximum number of messages per folder for partcular context. diff --git a/sounds.txt b/sounds.txt index c323ffbe6a..26cf89b3c4 100644 --- a/sounds.txt +++ b/sounds.txt @@ -220,6 +220,8 @@ %vm-sorry.gsm%I'm sorry I did not understand your response. +%vm-tempgreetactive.gsm%Your temporary greeting is currently active + %vm-tempgreeting.gsm%press 1 to record your temporary greeting %vm-tempgreeting2.gsm%press 1 to record your temporary greeting, or press 2 to erase your temporary greeting diff --git a/sounds/vm-tempgreetactive.gsm b/sounds/vm-tempgreetactive.gsm new file mode 100644 index 0000000000000000000000000000000000000000..469473e7d83949d1d4a5a884853cd9e854eb9752 GIT binary patch literal 4950 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 literal 0 HcmV?d00001