Update of /usr/cvsroot/asterisk/apps
In directory mongoose.digium.com:/tmp/cvs-serv5922/apps

Modified Files:
        app_voicemail.c 
Log Message:
clean up maxmsg parsing, and ensure default applies to Realtime voicemail users


Index: app_voicemail.c
===================================================================
RCS file: /usr/cvsroot/asterisk/apps/app_voicemail.c,v
retrieving revision 1.229
retrieving revision 1.230
diff -u -d -r1.229 -r1.230
--- app_voicemail.c     13 Jul 2005 19:27:09 -0000      1.229
+++ app_voicemail.c     15 Jul 2005 00:18:58 -0000      1.230
@@ -361,7 +361,7 @@
 static void populate_defaults(struct ast_vm_user *vmu)
 {
        ast_copy_flags(vmu, (&globalflags), AST_FLAGS_ALL);     
-       if (saydurationminfo>0)
+       if (saydurationminfo)
                vmu->saydurationm = saydurationminfo;
        if (callcontext)
                ast_copy_string(vmu->callback, callcontext, 
sizeof(vmu->callback));
@@ -369,6 +369,8 @@
                ast_copy_string(vmu->dialout, dialcontext, 
sizeof(vmu->dialout));
        if (exitcontext)
                ast_copy_string(vmu->exit, exitcontext, sizeof(vmu->exit));
+       if (maxmsg)
+               vmu->maxmsg = maxmsg;
 }
 
 static void apply_option(struct ast_vm_user *vmu, const char *var, const char 
*value)
@@ -5206,6 +5208,7 @@
        char *stringp;
        char *s;
        char *maxmsgstr;
+       int i;
        struct ast_vm_user *vmu;
 
        ast_copy_string(tmp, data, sizeof(tmp));
@@ -5214,7 +5217,21 @@
                memset(vmu, 0, sizeof(struct ast_vm_user));
                ast_copy_string(vmu->context, context, sizeof(vmu->context));
                ast_copy_string(vmu->mailbox, mbox, sizeof(vmu->mailbox));
+
                populate_defaults(vmu);
+
+               /* Read the maxmsg from the context definition */
+               if ((maxmsgstr = ast_variable_retrieve(voicemailCfg, context, 
"maxmsg"))) {
+                       i = atoi(maxmsgstr);
+                       if (i <= 0) {
+                               ast_log(LOG_WARNING, "Invalid number of 
messages per folder '%s'\n", maxmsgstr);
+                       } else if (i > MAXMSGLIMIT) {
+                               ast_log(LOG_WARNING, "Maximum number of 
messages per folder is %i. Cannot accept value '%s'\n", MAXMSGLIMIT, maxmsgstr);
+                       } else {
+                               vmu->maxmsg = i;
+                       }
+               }
+                       
                stringp = tmp;
                if ((s = strsep(&stringp, ","))) 
                        ast_copy_string(vmu->password, s, 
sizeof(vmu->password));
@@ -5227,24 +5244,6 @@
                if (stringp && (s = strsep(&stringp, ","))) 
                        apply_options(vmu, s);
                
-               /* Check whether maxmsg was defined on the mailbox level */
-               if (vmu->maxmsg <= 0) {
-                       /* Read the maxmsg from the context definition */
-                       if ((maxmsgstr = ast_variable_retrieve(voicemailCfg, 
context, "maxmsg"))) {
-                               vmu->maxmsg = atoi(maxmsgstr);
-                               if (vmu->maxmsg <= 0) {
-                                       ast_log(LOG_WARNING, "Invalid number of 
messages per folder maxmsg=%s. Using default value %i\n", maxmsgstr, MAXMSG);
-                                       vmu->maxmsg = MAXMSG;
-                               } else if (vmu->maxmsg > MAXMSGLIMIT) {
-                                       ast_log(LOG_WARNING, "Maximum number of 
messages per folder is %i. Cannot accept value maxmsg=%s\n", MAXMSGLIMIT, 
maxmsgstr);
-                                       vmu->maxmsg = MAXMSGLIMIT;
-                               }
-                       } else {
-                               /* Use the maxmsg from the general section 
definition */
-                               vmu->maxmsg = maxmsg;
-                       }
-               }
-                       
                vmu->next = NULL;
                if (usersl)
                        usersl->next = vmu;
@@ -5498,6 +5497,7 @@
        users = NULL;
        usersl = NULL;
        memset(ext_pass_cmd, 0, sizeof(ext_pass_cmd));
+
        if (cfg) {
                /* General settings */
 
@@ -5529,10 +5529,10 @@
                } else {
                        maxmsg = atoi(maxmsgstr);
                        if (maxmsg <= 0) {
-                               ast_log(LOG_WARNING, "Invalid number of 
messages per folder maxmsg=%s. Using default value %i\n", maxmsgstr, MAXMSG);
+                               ast_log(LOG_WARNING, "Invalid number of 
messages per folder '%s'. Using default value %i\n", maxmsgstr, MAXMSG);
                                maxmsg = MAXMSG;
                        } else if (maxmsg > MAXMSGLIMIT) {
-                               ast_log(LOG_WARNING, "Maximum number of 
messages per folder is %i. Cannot accept value maxmsg=%s\n", MAXMSGLIMIT, 
maxmsgstr);
+                               ast_log(LOG_WARNING, "Maximum number of 
messages per folder is %i. Cannot accept value '%s'\n", MAXMSGLIMIT, maxmsgstr);
                                maxmsg = MAXMSGLIMIT;
                        }
                }

_______________________________________________
Asterisk-Cvs mailing list
[email protected]
http://lists.digium.com/mailman/listinfo/asterisk-cvs

Reply via email to