Summary:ASTERISK-13085: Configuration reload overrides channel variable setting of ackcall (autologoff, acceptdtmf and enddtmf)
Reporter:David Woolley (davidw)Labels:
Date Opened:2008-11-18 06:23:29.000-0600Date Closed:2008-11-26 08:58:15.000-0600
Versions:Frequency of
Environment:Attachments:( 0) 13921.patch
Description:p->ackcall can be set using channel variable, at login time, but is reset to the global default, by add_agent, if the configuration is reloaded, even though the agent is still logged in.


Inspection of the code, suggests this problem also applies to 1.6.1.

In some ways this is almost a reverse of ASTERISK-12400, in which the problem was that the setting was persisting past logoff.  That is fixed in 1.4.22 and 1.6.1, although not in 1.6.0.  However, it looks to me as though that fix doesn't change the behaviour noted here, except in as much as it causes reversion to the current global setting, whereas I suspect that the global setting can change as the configuration is read.

My feeling is that this probably requires the separation of the working value of this (and the other variables in the summary) from the configured values, unless the global value can only be set once, in which case checking for the agent being logged in may be sufficient.
Comments:By: Leif Madsen (lmadsen) 2008-11-24 13:30:40.000-0600

Assigned to putnopvut for now as he originally committed 13098, so perhaps he has some insight as to the best approach to take here.

By: Mark Michelson (mmichelson) 2008-11-25 17:30:10.000-0600

I came up with a patch that worked in my test setup. If we determine that one of the settings which can be set with a channel variable has been set, then we set a flag indicating that the value from the configuration file should be ignored when reloading.

I have written a patch for 1.6.0 which addresses the ackcall, autologoff, and wrapuptime variables. You mentioned acceptdtmf and enddtmf, but those options are not available in 1.6.0. I have only actually tested the ackcall setting, but the others operate on the same principle. Please test to see that this works for you as well.

By: David Woolley (davidw) 2008-11-26 08:24:34.000-0600

Works for us.

Re acceptdtmf etc.  After looking at it in 1.6.0, I looked to see if it was already fixed in 1.6.1, and it is probably there that I saw those options.  We were only using ackcall.

Actually tested on, but I believe that the only difference, from 1.6.0, is a documentation change.

By: Digium Subversion (svnbot) 2008-11-26 08:58:14.000-0600

Repository: asterisk
Revision: 159437

U   trunk/channels/chan_agent.c

r159437 | mmichelson | 2008-11-26 08:58:14 -0600 (Wed, 26 Nov 2008) | 10 lines

Don't allow for configuration options to overwrite options
set via channel variables on a reload.

(closes issue ASTERISK-13085)
Reported by: davidw
     13921.patch uploaded by putnopvut (license 60)
Tested by: davidw