Improve voicemail verbosity (bug #2351)
[asterisk/asterisk.git] / apps / app_voicemail.c
index b66b215..a811041 100755 (executable)
@@ -1250,6 +1250,8 @@ static int play_and_prepend(struct ast_channel *chan, char *playfile, char *reco
                                        
                                        if (totalsilence > maxsilence) {
                                        /* Ended happily with silence */
+                                       if (option_verbose > 2) 
+                                               ast_verbose( VERBOSE_PREFIX_3 "Recording automatically stopped after a silence of %d seconds\n", totalsilence/1000);
                                        ast_frfree(f);
                                        gotsilence = 1;
                                        outmsg=2;
@@ -1468,6 +1470,8 @@ static int play_and_record(struct ast_channel *chan, char *playfile, char *recor
 
                                        if (totalsilence > maxsilence) {
                                        /* Ended happily with silence */
+                                        if (option_verbose > 2)
+                                                ast_verbose( VERBOSE_PREFIX_3 "Recording automatically stopped after a silence of %d seconds\n", totalsilence/1000);
                                        ast_frfree(f);
                                        gotsilence = 1;
                                        outmsg=2;
@@ -1902,7 +1906,10 @@ static int leave_voicemail(struct ast_channel *chan, char *ext, int silent, int
                                                close(fd);
                                }
                                if (duration < vmminmessage) {
+                                       if (option_verbose > 2) 
+                                               ast_verbose( VERBOSE_PREFIX_3 "Recording was %d seconds long but needs to be at least %d - abandoning\n", duration, vmminmessage);
                                        vm_delete(fn);
+                                       /* XXX We should really give a prompt too short/option start again, with leave_vm_out called only after a timeout XXX */
                                        goto leave_vm_out;
                                }
                                /* Are there to be more recipients of this message? */
@@ -4286,6 +4293,8 @@ static int load_config(void)
                if ((s = ast_variable_retrieve(cfg, "general", "minmessage"))) {
                        if (sscanf(s, "%d", &x) == 1) {
                                vmminmessage = x;
+                               if (maxsilence <= vmminmessage)
+                                       ast_log(LOG_WARNING, "maxsilence should be less than minmessage or you may get empty messages\n");
                        } else {
                                ast_log(LOG_WARNING, "Invalid min message time length\n");
                        }