aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormmichelson <mmichelson@f38db490-d61c-443f-a65b-d21fe96a405b>2007-11-16 17:11:43 +0000
committermmichelson <mmichelson@f38db490-d61c-443f-a65b-d21fe96a405b>2007-11-16 17:11:43 +0000
commit53208c490daf3f803d84e35acd43cabb0ef39486 (patch)
tree714e836e45da139fc9f85496b37ce367929fce8f
parent3dc676ceb8b4eca5bd2f9dc2264036acea83faf1 (diff)
Adding confirmation playback when forwarding voicemail messages. This will attempt
to play the name(s) of the person(s) to whom you are forwarding the message prior to prompting for prepending. If no name is found, the extension is read back verbatim. (closes issue #9046, reported and patched by jaroth) git-svn-id: http://svn.digium.com/svn/asterisk/trunk@89327 f38db490-d61c-443f-a65b-d21fe96a405b
-rw-r--r--apps/app_voicemail.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/apps/app_voicemail.c b/apps/app_voicemail.c
index 91b7409be..5fb1b8449 100644
--- a/apps/app_voicemail.c
+++ b/apps/app_voicemail.c
@@ -4168,6 +4168,8 @@ static int forward_message(struct ast_channel *chan, char *context, struct vm_st
struct vm_state *dstvms;
#endif
char username[70]="";
+ char fn[PATH_MAX]; /* for playback of name greeting */
+ char ecodes[16] = "#";
int res = 0, cmd = 0;
struct ast_vm_user *receiver = NULL, *vmtmp;
AST_LIST_HEAD_NOLOCK_STATIC(extensions, ast_vm_user);
@@ -4280,6 +4282,22 @@ static int forward_message(struct ast_channel *chan, char *context, struct vm_st
valid_extensions = 0;
break;
}
+
+ /* play name if available, else play extension number */
+ snprintf(fn, sizeof(fn), "%s%s/%s/greet", VM_SPOOL_DIR, receiver->context, s);
+ RETRIEVE(fn, -1, s, receiver->context);
+ if (ast_fileexists(fn, NULL, NULL) > 0) {
+ res = ast_stream_and_wait(chan, fn, ecodes);
+ if (res) {
+ DISPOSE(fn, -1);
+ return res;
+ }
+ } else {
+ /* Dispose just in case */
+ DISPOSE(fn, -1);
+ res = ast_say_digit_str(chan, s, ecodes, chan->language);
+ }
+
s = strsep(&stringp, "*");
}
/* break from the loop of reading the extensions */