From: Mark Michelson Date: Tue, 17 Jun 2008 15:56:55 +0000 (+0000) Subject: davidw pointed out that the holdtime calculation used by X-Git-Tag: 1.4.22-rc1~204 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=d7fbc9aae242e1ae5ec49bf5364ebd3fceff2ced;p=thirdparty%2Fasterisk.git davidw pointed out that the holdtime calculation used by app_queue does not use "boxcar" filtering as the comments say. The term "boxcar" means that the number of samples used to calculate stays constant, with new samples replacing the oldest ones. The queue holdtime calculation uses all holdtime samples collected since the queue was loaded, so the comment has been changed to be accurate. (closes issue #12781) Reported by: davidw git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@123274 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/apps/app_queue.c b/apps/app_queue.c index 01fdcf3aa9..688ffed134 100644 --- a/apps/app_queue.c +++ b/apps/app_queue.c @@ -394,7 +394,7 @@ struct call_queue { int announcefrequency; /*!< How often to announce their position */ int periodicannouncefrequency; /*!< How often to play periodic announcement */ int roundingseconds; /*!< How many seconds do we round to? */ - int holdtime; /*!< Current avg holdtime, based on recursive boxcar filter */ + int holdtime; /*!< Current avg holdtime, based on an exponential average */ int callscompleted; /*!< Number of queue calls completed */ int callsabandoned; /*!< Number of queue calls abandoned */ int servicelevel; /*!< seconds setting for servicelevel*/ @@ -1627,7 +1627,7 @@ static void recalc_holdtime(struct queue_ent *qe, int newholdtime) { int oldvalue; - /* Calculate holdtime using a recursive boxcar filter */ + /* Calculate holdtime using an exponential average */ /* Thanks to SRT for this contribution */ /* 2^2 (4) is the filter coefficient; a higher exponent would give old entries more weight */