Allow resetinterval to be "never"
authorMark Spencer <markster@digium.com>
Wed, 23 Mar 2005 21:12:01 +0000 (21:12 +0000)
committerMark Spencer <markster@digium.com>
Wed, 23 Mar 2005 21:12:01 +0000 (21:12 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@5236 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_zap.c
configs/zapata.conf.sample

index cf85270..c16d3b2 100755 (executable)
@@ -7525,7 +7525,7 @@ static void *pri_dchannel(void *vpri)
                numdchans = i;
                time(&t);
                ast_mutex_lock(&pri->lock);
-               if (pri->switchtype != PRI_SWITCH_GR303_TMC) {
+               if (pri->switchtype != PRI_SWITCH_GR303_TMC && (pri->resetinterval > 0)) {
                        if (pri->resetting && pri_is_up(pri)) {
                                if (pri->resetpos < 0)
                                        pri_check_restart(pri);
@@ -7703,8 +7703,10 @@ static void *pri_dchannel(void *vpri)
                                time(&pri->lastreset);
 
                                /* Restart in 5 seconds */
-                               pri->lastreset -= pri->resetinterval;
-                               pri->lastreset += 5;
+                               if (pri->resetinterval > -1) {
+                                       pri->lastreset -= pri->resetinterval;
+                                       pri->lastreset += 5;
+                               }
                                pri->resetting = 0;
                                /* Take the channels from inalarm condition */
                                for (i=0; i<pri->numchans; i++)
@@ -9942,10 +9944,12 @@ static int setup_zap(int reload)
                        } else if (!strcasecmp(v->name, "unknownprefix")) {
                                strncpy(unknownprefix, v->value, sizeof(unknownprefix)-1);
                        } else if (!strcasecmp(v->name, "resetinterval")) {
-                               if( atoi(v->value) >= 60 )
+                               if (!strcasecmp(v->value, "never"))
+                                       resetinterval = -1;
+                               else if( atoi(v->value) >= 60 )
                                        resetinterval = atoi(v->value);
                                else
-                                       ast_log(LOG_WARNING, "'%s' is not a valid reset interval, should be >= 60 seconds at line %d\n",
+                                       ast_log(LOG_WARNING, "'%s' is not a valid reset interval, should be >= 60 seconds or 'never' at line %d\n",
                                                v->value, v->lineno);
                        } else if (!strcasecmp(v->name, "minunused")) {
                                minunused = atoi(v->value);
index 1a31c02..5ddf6e2 100755 (executable)
@@ -104,6 +104,7 @@ switchtype=national
 ; PRI resetinterval: sets the time in seconds between restart of unused channels, defaults to 3600
 ; minimum 60 seconds
 ; some PBXs don't like channel restarts. so set the interval to a very long interval e.g. 100000000
+; or 'never' to disable *entirely*.
 ;
 ;resetinterval = 3600 
 ;