[asterisk-commits] mmichelson: trunk r89327 - /trunk/apps/app_voicemail.c

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Fri Nov 16 11:11:43 CST 2007


Author: mmichelson
Date: Fri Nov 16 11:11:43 2007
New Revision: 89327

URL: http://svn.digium.com/view/asterisk?view=rev&rev=89327
Log:
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)


Modified:
    trunk/apps/app_voicemail.c

Modified: trunk/apps/app_voicemail.c
URL: http://svn.digium.com/view/asterisk/trunk/apps/app_voicemail.c?view=diff&rev=89327&r1=89326&r2=89327
==============================================================================
--- trunk/apps/app_voicemail.c (original)
+++ trunk/apps/app_voicemail.c Fri Nov 16 11:11:43 2007
@@ -4168,6 +4168,8 @@
 	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 @@
 				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 */




More information about the asterisk-commits mailing list