From e22e0ead4a8822bda185ea7c36d3d843ce8a9c47 Mon Sep 17 00:00:00 2001 From: jim Date: Sat, 15 Jan 2005 00:53:17 +0000 Subject: Fixed another little bug. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@4795 f38db490-d61c-443f-a65b-d21fe96a405b --- apps/app_rpt.c | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) (limited to 'apps/app_rpt.c') diff --git a/apps/app_rpt.c b/apps/app_rpt.c index faafc2048..33c8c0893 100755 --- a/apps/app_rpt.c +++ b/apps/app_rpt.c @@ -3,7 +3,7 @@ * Asterisk -- A telephony toolkit for Linux. * * Radio Repeater / Remote Base program - * version 0.19 01/14/05 + * version 0.20 01/14/05 * * See http://www.zapatatelephony.org/app_rpt.html * @@ -150,7 +150,7 @@ enum {DLY_TELEM, DLY_ID, DLY_UNKEY, DLY_CALLTERM}; #include #include -static char *tdesc = "Radio Repeater / Remote Base version 0.19 01/14/2005"; +static char *tdesc = "Radio Repeater / Remote Base version 0.20 01/14/2005"; static char *app = "Rpt"; static char *synopsis = "Radio Repeater/Remote Base Control System"; @@ -4082,7 +4082,21 @@ static int rpt_exec(struct ast_channel *chan, void *data) /* if found */ if (l != &myrpt->links) { - if (l->chan) ast_softhangup(l->chan,AST_SOFTHANGUP_DEV); + l->disctime = DISC_TIME; + if (l->chan) + { + ast_softhangup(l->chan,AST_SOFTHANGUP_DEV); + l->chan = 0; + } + else + { + remque((struct qelem *) l); + if (!strcmp(myrpt->cmdnode,l->name)) + myrpt->cmdnode[0] = 0; + ast_hangup(l->pchan); + free(l); + } + ast_mutex_unlock(&myrpt->lock); usleep(500000); } else ast_mutex_unlock(&myrpt->lock); -- cgit v1.2.3