aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrussell <russell@f38db490-d61c-443f-a65b-d21fe96a405b>2006-04-15 22:32:23 +0000
committerrussell <russell@f38db490-d61c-443f-a65b-d21fe96a405b>2006-04-15 22:32:23 +0000
commit52c8b6fe516b886b9d615fad9161167ac7fa2ec4 (patch)
tree1d45c96bd18f6ac095fb871067c98e0e5dd87ef7
parentf6d50e26aa2cc6c479c1b88565cc5954b5ba19ef (diff)
add the ability to turn off the feature that allows agents to end calls
by pressing '*'. This is still on by default. (issue #6897) git-svn-id: http://svn.digium.com/svn/asterisk/trunk@20328 f38db490-d61c-443f-a65b-d21fe96a405b
-rw-r--r--channels/chan_agent.c6
-rw-r--r--configs/agents.conf.sample5
2 files changed, 10 insertions, 1 deletions
diff --git a/channels/chan_agent.c b/channels/chan_agent.c
index 46cce1f87..c36be2d7a 100644
--- a/channels/chan_agent.c
+++ b/channels/chan_agent.c
@@ -156,6 +156,7 @@ static ast_group_t group;
static int autologoff;
static int wrapuptime;
static int ackcall;
+static int endcall;
static int multiplelogin = 1;
static int autologoffunavail = 0;
@@ -498,7 +499,7 @@ static struct ast_frame *agent_read(struct ast_channel *ast)
p->acknowledged = 1;
ast_frfree(f);
f = &answer_frame;
- } else if (f->subclass == '*') {
+ } else if (f->subclass == '*' && endcall) {
/* terminates call */
ast_frfree(f);
f = NULL;
@@ -988,6 +989,7 @@ static int read_agent_config(void)
autologoff = 0;
wrapuptime = 0;
ackcall = 0;
+ endcall = 1;
cfg = ast_config_load(config);
if (!cfg) {
ast_log(LOG_NOTICE, "No agent configuration found -- agent support disabled\n");
@@ -1032,6 +1034,8 @@ static int read_agent_config(void)
ackcall = 1;
else
ackcall = 0;
+ } else if (!strcasecmp(v->name, "endcall")) {
+ endcall = ast_true(v->value);
} else if (!strcasecmp(v->name, "wrapuptime")) {
wrapuptime = atoi(v->value);
if (wrapuptime < 0)
diff --git a/configs/agents.conf.sample b/configs/agents.conf.sample
index 4eca6bfc5..4145d709a 100644
--- a/configs/agents.conf.sample
+++ b/configs/agents.conf.sample
@@ -41,6 +41,11 @@ persistentagents=yes
;
;ackcall=no
;
+; Define endcall to allow an agent to hangup a call by '*'.
+; Default is "yes". Set this to "no" to ignore '*'.
+;
+;endcall=yes
+;
; Define wrapuptime. This is the minimum amount of time when
; after disconnecting before the caller can receive a new call
; note this is in milliseconds.