Allow resetinterval to be "never"

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@5236 65c4cc65-6c06-0410-ace0-fbb531ad65f3
1.2-netsec
Mark Spencer 20 years ago
parent 4e156d3435
commit aa25b367d6

@ -7525,7 +7525,7 @@ static void *pri_dchannel(void *vpri)
numdchans = i; numdchans = i;
time(&t); time(&t);
ast_mutex_lock(&pri->lock); 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->resetting && pri_is_up(pri)) {
if (pri->resetpos < 0) if (pri->resetpos < 0)
pri_check_restart(pri); pri_check_restart(pri);
@ -7703,8 +7703,10 @@ static void *pri_dchannel(void *vpri)
time(&pri->lastreset); time(&pri->lastreset);
/* Restart in 5 seconds */ /* Restart in 5 seconds */
pri->lastreset -= pri->resetinterval; if (pri->resetinterval > -1) {
pri->lastreset += 5; pri->lastreset -= pri->resetinterval;
pri->lastreset += 5;
}
pri->resetting = 0; pri->resetting = 0;
/* Take the channels from inalarm condition */ /* Take the channels from inalarm condition */
for (i=0; i<pri->numchans; i++) for (i=0; i<pri->numchans; i++)
@ -9942,10 +9944,12 @@ static int setup_zap(int reload)
} else if (!strcasecmp(v->name, "unknownprefix")) { } else if (!strcasecmp(v->name, "unknownprefix")) {
strncpy(unknownprefix, v->value, sizeof(unknownprefix)-1); strncpy(unknownprefix, v->value, sizeof(unknownprefix)-1);
} else if (!strcasecmp(v->name, "resetinterval")) { } 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); resetinterval = atoi(v->value);
else 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); v->value, v->lineno);
} else if (!strcasecmp(v->name, "minunused")) { } else if (!strcasecmp(v->name, "minunused")) {
minunused = atoi(v->value); minunused = atoi(v->value);

@ -104,6 +104,7 @@ switchtype=national
; PRI resetinterval: sets the time in seconds between restart of unused channels, defaults to 3600 ; PRI resetinterval: sets the time in seconds between restart of unused channels, defaults to 3600
; minimum 60 seconds ; minimum 60 seconds
; some PBXs don't like channel restarts. so set the interval to a very long interval e.g. 100000000 ; 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 ;resetinterval = 3600
; ;

Loading…
Cancel
Save