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: https://origsvn.digium.com/svn/asterisk/trunk@5423 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
parent
9cbc047b6a
commit
ea60d42f67
|
@ -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));
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue