diff --git a/apps/app_queue.c b/apps/app_queue.c index 15f32fadb8..776ada4b8f 100644 --- a/apps/app_queue.c +++ b/apps/app_queue.c @@ -5441,9 +5441,13 @@ static int update_queue(struct call_queue *q, struct member *member, int callcom if (callcompletedinsl) { q->callscompletedinsl++; } - /* Calculate talktime using the same exponential average as holdtime code*/ - oldtalktime = q->talktime; - q->talktime = (((oldtalktime << 2) - oldtalktime) + newtalktime) >> 2; + if (q->callscompletedinsl == 1) { + q->talktime = newtalktime; + } else { + /* Calculate talktime using the same exponential average as holdtime code */ + oldtalktime = q->talktime; + q->talktime = (((oldtalktime << 2) - oldtalktime) + newtalktime) >> 2; + } ao2_unlock(q); return 0; }