Merged revisions 138942 via svnmerge from
authorMark Michelson <mmichelson@digium.com>
Tue, 19 Aug 2008 23:19:40 +0000 (23:19 +0000)
committerMark Michelson <mmichelson@digium.com>
Tue, 19 Aug 2008 23:19:40 +0000 (23:19 +0000)
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r138942 | mmichelson | 2008-08-19 18:17:17 -0500 (Tue, 19 Aug 2008) | 11 lines

Reset agent_pvt variables back to the values in agents.conf
(from what the corresponding channel variables were set to)
when the agent logs out.

(closes issue #13098)
Reported by: davidw
Patches:
      20080731__issue13098_agent_ackcall_not_reset.diff uploaded by bbryant (license 36)
Tested by: davidw

........

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@138943 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_agent.c

index 632376d..ee02f90 100644 (file)
@@ -2001,6 +2001,8 @@ static int login_exec(struct ast_channel *chan, void *data)
                                                p->ackcall = 0;
                                        tmpoptions=pbx_builtin_getvar_helper(chan, "AGENTACKCALL");
                                        ast_verb(3, "Saw variable AGENTACKCALL=%s, setting ackcall to: %d for Agent '%s'.\n", tmpoptions, p->ackcall, p->agent);
+                               } else {
+                                       p->ackcall = ackcall;
                                }
                                if (!ast_strlen_zero(pbx_builtin_getvar_helper(chan, "AGENTAUTOLOGOFF"))) {
                                        p->autologoff = atoi(pbx_builtin_getvar_helper(chan, "AGENTAUTOLOGOFF"));
@@ -2008,6 +2010,8 @@ static int login_exec(struct ast_channel *chan, void *data)
                                                p->autologoff = 0;
                                        tmpoptions=pbx_builtin_getvar_helper(chan, "AGENTAUTOLOGOFF");
                                        ast_verb(3, "Saw variable AGENTAUTOLOGOFF=%s, setting autologff to: %d for Agent '%s'.\n", tmpoptions, p->autologoff, p->agent);
+                               } else {
+                                       p->autologoff = autologoff;
                                }
                                if (!ast_strlen_zero(pbx_builtin_getvar_helper(chan, "AGENTWRAPUPTIME"))) {
                                        p->wrapuptime = atoi(pbx_builtin_getvar_helper(chan, "AGENTWRAPUPTIME"));
@@ -2015,6 +2019,8 @@ static int login_exec(struct ast_channel *chan, void *data)
                                                p->wrapuptime = 0;
                                        tmpoptions=pbx_builtin_getvar_helper(chan, "AGENTWRAPUPTIME");
                                        ast_verb(3, "Saw variable AGENTWRAPUPTIME=%s, setting wrapuptime to: %d for Agent '%s'.\n", tmpoptions, p->wrapuptime, p->agent);
+                               } else {
+                                       p->wrapuptime = wrapuptime;
                                }
                                tmpoptions = pbx_builtin_getvar_helper(chan, "AGENTACCEPTDMTF");
                                if (!ast_strlen_zero(tmpoptions)) {