dect
/
asterisk
Archived
13
0
Fork 0

If an agent still has "wrapuptime" left after he finishes a call and the

wrapuptime is changed on a reload, he still waits his former wrapuptime (instead of
the new wrapuptime).  This reduces his "de facto" wrapuptime immediately to
the new value even if he has wrapuptime remaining from a previous call.


git-svn-id: http://svn.digium.com/svn/asterisk/trunk@5423 f38db490-d61c-443f-a65b-d21fe96a405b
This commit is contained in:
mattf 2005-04-06 16:06:05 +00:00
parent ce84c9b17d
commit 90b4a22fa7
1 changed files with 15 additions and 1 deletions

View File

@ -294,7 +294,21 @@ static struct agent_pvt *add_agent(char *agent, int pending)
strncpy(p->moh, moh, sizeof(p->moh) - 1);
p->ackcall = ackcall;
p->autologoff = autologoff;
/* If someone reduces the wrapuptime and reloads, we want it
* to change the wrapuptime immediately on all calls */
if (p->wrapuptime > wrapuptime) {
struct timeval now;
gettimeofday(&now, NULL);
/* We won't be pedantic and check the tv_usec val */
if (p->lastdisc.tv_sec > (now.tv_sec + wrapuptime/1000)) {
p->lastdisc.tv_sec = now.tv_sec + wrapuptime/1000;
p->lastdisc.tv_usec = now.tv_usec;
}
}
p->wrapuptime = wrapuptime;
if (pending)
p->dead = 1;
else
@ -1724,7 +1738,7 @@ static int __login_exec(struct ast_channel *chan, void *data, int callbackmode)
ast_log(LOG_WARNING, "Unable to set read format to %d\n", ast_best_codec(chan->nativeformats));
}
if (!res) {
ast_set_write_format(chan, ast_best_codec(chan->nativeformats));
res = ast_set_write_format(chan, ast_best_codec(chan->nativeformats));
if (res)
ast_log(LOG_WARNING, "Unable to set write format to %d\n", ast_best_codec(chan->nativeformats));
}