From 8283b7a0a47e38f2275b856891b47ca4f2099fc0 Mon Sep 17 00:00:00 2001 From: file Date: Thu, 22 Feb 2007 23:19:25 +0000 Subject: Always defer Agent logoff if any channels are up until they hang up. (issue #9123 reported by arbrandes) git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.2@56279 f38db490-d61c-443f-a65b-d21fe96a405b --- channels/chan_agent.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'channels/chan_agent.c') diff --git a/channels/chan_agent.c b/channels/chan_agent.c index 964413281..2c84b8f10 100644 --- a/channels/chan_agent.c +++ b/channels/chan_agent.c @@ -1480,15 +1480,13 @@ static int agent_logoff(char *agent, int soft) for (p=agents; p; p=p->next) { if (!strcasecmp(p->agent, agent)) { + if (p->owner || p->chan) + defer = 1; if (!soft) { - if (p->owner) { - defer = 1; + if (p->owner) ast_softhangup(p->owner, AST_SOFTHANGUP_EXPLICIT); - } - if (p->chan) { - defer = 1; + if (p->chan) ast_softhangup(p->chan, AST_SOFTHANGUP_EXPLICIT); - } } ret = 0; /* found an agent => return 0 */ logintime = time(NULL) - p->loginstart; -- cgit v1.2.3