aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--apps/app_voicemail.c37
-rw-r--r--configs/voicemail.conf.sample2
-rw-r--r--sounds.txt2
-rw-r--r--sounds/vm-tempgreetactive.gsmbin0 -> 4950 bytes
4 files changed, 32 insertions, 9 deletions
diff --git a/apps/app_voicemail.c b/apps/app_voicemail.c
index 946f6e3b5..ac652e185 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 3c74e706b..61e5588b8 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 c323ffbe6..26cf89b3c 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 000000000..469473e7d
--- /dev/null
+++ b/sounds/vm-tempgreetactive.gsm
Binary files differ