[asterisk-commits] russell: trunk r46360 - in /trunk: ./ apps/ configs/

asterisk-commits at lists.digium.com asterisk-commits at lists.digium.com
Fri Oct 27 09:47:45 MST 2006


Author: russell
Date: Fri Oct 27 11:47:44 2006
New Revision: 46360

URL: http://svn.digium.com/view/asterisk?rev=46360&view=rev
Log:
Add the ability to customize some of the prompts used within the voicemail
application by configuring them in voicemail.conf (issue #7415, patch by
fkasumovic, with some fixes and documentation updates by myself)

Modified:
    trunk/CHANGES
    trunk/apps/app_voicemail.c
    trunk/configs/voicemail.conf.sample

Modified: trunk/CHANGES
URL: http://svn.digium.com/view/asterisk/trunk/CHANGES?rev=46360&r1=46359&r2=46360&view=diff
==============================================================================
--- trunk/CHANGES (original)
+++ trunk/CHANGES Fri Oct 27 11:47:44 2006
@@ -1,7 +1,9 @@
 Changes since Asterisk 1.4-beta was branched:
-  * rev.45982: enable https support for builtin web server.
+  * Added the ability to customize which sound files are used for some of the
+    prompts within the Voicemail application by changing them in voicemail.conf
+  * enable https support for builtin web server.
      See configs/http.conf.sample for details.
-  * rev.45945: add a new option, match_auth_username, to sip.conf,
+  * add a new option, match_auth_username, to sip.conf,
      to improve the matching of incoming requests.
      If set, and the incoming request carries authentication info,
      the username to match in the users list is taken from there

Modified: trunk/apps/app_voicemail.c
URL: http://svn.digium.com/view/asterisk/trunk/apps/app_voicemail.c?rev=46360&r1=46359&r2=46360&view=diff
==============================================================================
--- trunk/apps/app_voicemail.c (original)
+++ trunk/apps/app_voicemail.c Fri Oct 27 11:47:44 2006
@@ -505,6 +505,13 @@
 static int maxgreet;
 static int skipms;
 static int maxlogins;
+
+/* cutom password sounds */
+static char vm_password[80] = "vm-password";
+static char vm_newpassword[80] = "vm-newpassword";
+static char vm_passchanged[80] = "vm-passchanged";
+static char vm_reenterpassword[80] = "vm-reenterpassword";
+static char vm_mismatch[80] = "vm-mismatch";
 
 static struct ast_flags globalflags = {0};
 
@@ -5471,7 +5478,7 @@
 	   so they won't get here again */
 	for (;;) {
 		newpassword[1] = '\0';
-		newpassword[0] = cmd = ast_play_and_wait(chan,"vm-newpassword");
+		newpassword[0] = cmd = ast_play_and_wait(chan, vm_newpassword);
 		if (cmd == '#')
 			newpassword[0] = '\0';
 		if (cmd < 0 || cmd == 't' || cmd == '#')
@@ -5480,7 +5487,7 @@
 		if (cmd < 0 || cmd == 't' || cmd == '#')
 			return cmd;
 		newpassword2[1] = '\0';
-		newpassword2[0] = cmd = ast_play_and_wait(chan,"vm-reenterpassword");
+		newpassword2[0] = cmd = ast_play_and_wait(chan, vm_reenterpassword);
 		if (cmd == '#')
 			newpassword2[0] = '\0';
 		if (cmd < 0 || cmd == 't' || cmd == '#')
@@ -5491,7 +5498,7 @@
 		if (!strcmp(newpassword, newpassword2))
 			break;
 		ast_log(LOG_NOTICE,"Password mismatch for user %s (%s != %s)\n", vms->username, newpassword, newpassword2);
-		cmd = ast_play_and_wait(chan, "vm-mismatch");
+		cmd = ast_play_and_wait(chan, vm_mismatch);
 		if (++tries == 3)
 			return -1;
 	}
@@ -5501,7 +5508,7 @@
 		vm_change_password_shell(vmu,newpassword);
 	if (option_debug)
 		ast_log(LOG_DEBUG,"User %s set password to %s of length %d\n",vms->username,newpassword,(int)strlen(newpassword));
-	cmd = ast_play_and_wait(chan,"vm-passchanged");
+	cmd = ast_play_and_wait(chan, vm_passchanged);
 
 	/* If forcename is set, have the user record their name */	
 	if (ast_test_flag(vmu, VM_FORCENAME)) {
@@ -5571,7 +5578,7 @@
 				break;
 			}
 			newpassword[1] = '\0';
-			newpassword[0] = cmd = ast_play_and_wait(chan,"vm-newpassword");
+			newpassword[0] = cmd = ast_play_and_wait(chan, vm_newpassword);
 			if (cmd == '#')
 				newpassword[0] = '\0';
 			else {
@@ -5582,7 +5589,7 @@
 				}
 			}
 			newpassword2[1] = '\0';
-			newpassword2[0] = cmd = ast_play_and_wait(chan,"vm-reenterpassword");
+			newpassword2[0] = cmd = ast_play_and_wait(chan, vm_reenterpassword);
 			if (cmd == '#')
 				newpassword2[0] = '\0';
 			else {
@@ -5595,7 +5602,7 @@
 			}
 			if (strcmp(newpassword, newpassword2)) {
 				ast_log(LOG_NOTICE,"Password mismatch for user %s (%s != %s)\n", vms->username, newpassword, newpassword2);
-				cmd = ast_play_and_wait(chan, "vm-mismatch");
+				cmd = ast_play_and_wait(chan, vm_mismatch);
 				break;
 			}
 			if (ast_strlen_zero(ext_pass_cmd)) 
@@ -5604,7 +5611,7 @@
 				vm_change_password_shell(vmu,newpassword);
 			if (option_debug)
 				ast_log(LOG_DEBUG,"User %s set password to %s of length %d\n",vms->username,newpassword,(int)strlen(newpassword));
-			cmd = ast_play_and_wait(chan,"vm-passchanged");
+			cmd = ast_play_and_wait(chan, vm_passchanged);
 			break;
 		case '*': 
 			cmd = 't';
@@ -5854,7 +5861,7 @@
 			/* saved password is blank, so don't bother asking */
 			password[0] = '\0';
 		} else {
-			if (ast_streamfile(chan, "vm-password", chan->language)) {
+			if (ast_streamfile(chan, vm_password, chan->language)) {
 				ast_log(LOG_WARNING, "Unable to stream password file\n");
 				return -1;
 			}
@@ -6844,6 +6851,11 @@
 	const char *extpc;
 	const char *emaildateformatstr;
 	const char *volgainstr;
+	const char *vm_paswd;
+	const char *vm_newpasswd;
+	const char *vm_passchange;
+	const char *vm_reenterpass;
+	const char *vm_mism;
 	int x;
 	int tmpadsi[4];
 
@@ -7167,6 +7179,18 @@
 		} else {
 			exitcontext[0] = '\0';
 		}
+		
+		/* load password sounds configuration */
+		if ((vm_paswd = ast_variable_retrieve(cfg, "general", "vm-password")))
+			ast_copy_string(vm_password, vm_paswd, sizeof(vm_password));
+		if ((vm_newpasswd = ast_variable_retrieve(cfg, "general", "vm-newpassword")))
+			ast_copy_string(vm_newpassword, vm_newpasswd, sizeof(vm_newpassword));
+		if ((vm_passchange = ast_variable_retrieve(cfg, "general", "vm-passchanged")))
+			ast_copy_string(vm_passchanged, vm_passchange, sizeof(vm_passchanged));
+		if ((vm_reenterpass = ast_variable_retrieve(cfg, "general", "vm-reenterpassword")))
+			ast_copy_string(vm_reenterpassword, vm_reenterpass, sizeof(vm_reenterpassword));
+		if ((vm_mism = ast_variable_retrieve(cfg, "general", "vm-mismatch")))
+			ast_copy_string(vm_mismatch, vm_mism, sizeof(vm_mismatch));
 
 		if (!(astdirfwd = ast_variable_retrieve(cfg, "general", "usedirectory"))) 
 			astdirfwd = "no";

Modified: trunk/configs/voicemail.conf.sample
URL: http://svn.digium.com/view/asterisk/trunk/configs/voicemail.conf.sample?rev=46360&r1=46359&r2=46360&view=diff
==============================================================================
--- trunk/configs/voicemail.conf.sample (original)
+++ trunk/configs/voicemail.conf.sample Fri Oct 27 11:47:44 2006
@@ -203,7 +203,25 @@
 			;     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
+; tempgreetwarn=yes	; Remind the user that their temporary greeting is set
+; vm-password=custom_sound
+			;     Customize which sound file is used instead of the default
+			;     prompt that says: "password"
+; vm-newpassword=custom_sound
+			;     Customize which sound file is used instead of the default
+			;     prompt that says: "Please enter your new password followed by
+			;     the pound key."
+; vm-passchanged=custom_sound
+			;     Customize which sound file is used instead of the default
+			;     prompt that says: "Your password has been changed."
+; vm-reenterpassword=custom_sound
+			;     Customize which sound file is used instead of the default
+			;     prompt that says: "Please re-enter your password followed by
+			;     the pound key"
+; vm-mismatch=custom_sound
+			;     Customize which sound file is used instead of the default
+			;     prompt that says: "The passwords you entered and re-entered
+			;     did not match.  Please try again."
 
 [zonemessages]
 eastern=America/New_York|'vm-received' Q 'digits/at' IMp



More information about the asterisk-commits mailing list