diff options
author | mmichelson <mmichelson@f38db490-d61c-443f-a65b-d21fe96a405b> | 2008-11-26 19:58:12 +0000 |
---|---|---|
committer | mmichelson <mmichelson@f38db490-d61c-443f-a65b-d21fe96a405b> | 2008-11-26 19:58:12 +0000 |
commit | 0a34e6f22dccc7db900606ad35fe041cb9c5112d (patch) | |
tree | 2bc736c00462474a17fc580ed242824e029af503 /apps | |
parent | 5995035bf01c3af3091980b197c948761c10d71a (diff) |
Merged revisions 159554 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk
........
r159554 | mmichelson | 2008-11-26 13:57:11 -0600 (Wed, 26 Nov 2008) | 19 lines
Add some necessary hangup commands in the case that forwarding
a call fails
1) Hang up the original destination if the local channel cannot
be requested.
2) Hang up the local channel (in addition to the original destination)
if ast_call fails when calling the newly created local channel.
This prevents channels from sticking around forever in the
case of a botched call forward (e.g. to an extension which does not
exist).
(closes issue #13764)
Reported by: davidw
Patches:
13764_v2.patch uploaded by putnopvut (license 60)
Tested by: putnopvut, davidw
........
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.0@159558 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'apps')
-rw-r--r-- | apps/app_dial.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/apps/app_dial.c b/apps/app_dial.c index 1da9a0d89..4eaf30f8f 100644 --- a/apps/app_dial.c +++ b/apps/app_dial.c @@ -507,6 +507,7 @@ static void do_forward(struct chanlist *o, if (!c) { ast_clear_flag64(o, DIAL_STILLGOING); handle_cause(cause, num); + ast_hangup(original); } else { char *new_cid_num, *new_cid_name; struct ast_channel *src; @@ -534,6 +535,7 @@ static void do_forward(struct chanlist *o, ast_log(LOG_NOTICE, "Failed to dial on local channel for call forward to '%s'\n", tmpchan); ast_clear_flag64(o, DIAL_STILLGOING); ast_hangup(original); + ast_hangup(c); c = o->chan = NULL; num->nochan++; } else { |