Adding user-configurable TCP timeout settings to IMAP voicemail. This could
authorMark Michelson <mmichelson@digium.com>
Mon, 7 Jan 2008 21:04:09 +0000 (21:04 +0000)
committerMark Michelson <mmichelson@digium.com>
Mon, 7 Jan 2008 21:04:09 +0000 (21:04 +0000)
go a long way towards preventing unexplainable hangs experienced by people. In the
case of MWI hangs, this also will mean that the SIP port isn't blocked anymore.

(closes issue #11665, reported by yehavi)

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@96934 65c4cc65-6c06-0410-ace0-fbb531ad65f3

apps/app_voicemail.c
doc/tex/imapstorage.tex

index b3c687a..a9202f1 100644 (file)
@@ -8213,6 +8213,31 @@ static int load_config(int reload)
                        ast_copy_string(greetingfolder, imapfolder, sizeof(greetingfolder));
                }
 
+               /* Handle the timeouts */
+               if ((val = ast_variable_retrieve(cfg, "general", "imapreadtimeout"))) {
+                       mail_parameters(NIL, SET_READTIMEOUT, (void *) (atol(val)));
+               } else {
+                       mail_parameters(NIL, SET_READTIMEOUT, (void *) 60);
+               }
+
+               if ((val = ast_variable_retrieve(cfg, "general", "imapwritetimeout"))) {
+                       mail_parameters(NIL, SET_WRITETIMEOUT, (void *) (atol(val)));
+               } else {
+                       mail_parameters(NIL, SET_WRITETIMEOUT, (void *) 60);
+               }
+
+               if ((val = ast_variable_retrieve(cfg, "general", "imapopentimeout"))) {
+                       mail_parameters(NIL, SET_OPENTIMEOUT, (void *) (atol(val)));
+               } else {
+                       mail_parameters(NIL, SET_OPENTIMEOUT, (void *) 60);
+               }
+
+               if ((val = ast_variable_retrieve(cfg, "general", "imapclosetimeout"))) {
+                       mail_parameters(NIL, SET_CLOSETIMEOUT, (void *) (atol(val)));
+               } else {
+                       mail_parameters(NIL, SET_CLOSETIMEOUT, (void *) 60);
+               }
+
 #endif
                /* External voicemail notify application */
                if ((val = ast_variable_retrieve(cfg, "general", "externnotify"))) {
index b4b217f..3a952ce 100644 (file)
@@ -80,6 +80,10 @@ greetingsfolder=<IMAP folder to store greetings in if imapgreetings is enabled>
 expungeonhangup=<yes or no>
 authuser=<username>
 authpassword=<password>
+opentimeout=<TCP open timeout in seconds>
+closetimeout=<TCP close timeout in seconds>
+readtimeout=<TCP read timeout in seconds>
+writetimeout=<TCP write timeout in seconds>
 \end{verbatim}
 \end{astlisting}