[asterisk-bugs] [Asterisk 0016548]: [patch][regression] Macro executes "h" extension instead of exiting
Asterisk Bug Tracker
noreply at bugs.digium.com
Mon May 9 14:09:19 CDT 2011
A NOTE has been added to this issue.
======================================================================
https://issues.asterisk.org/view.php?id=16548
======================================================================
Reported By: hajekd
Assigned To: tilghman
======================================================================
Project: Asterisk
Issue ID: 16548
Category: Applications/app_dial
Reproducibility: always
Severity: major
Priority: normal
Status: closed
Target Version: 1.6.0.25
Asterisk Version: 1.6.0.20
JIRA: SWP-642
Regression: Yes
Reviewboard Link:
SVN Branch (only for SVN checkouts, not tarball releases): N/A
SVN Revision (number only!):
Request Review:
Resolution: no change required
Fixed in Version:
======================================================================
Date Submitted: 2010-01-05 15:51 CST
Last Modified: 2011-05-09 14:09 CDT
======================================================================
Summary: [patch][regression] Macro executes "h" extension
instead of exiting
Description:
Latest version 1.6.0.20 does not correctly hangup calls. We have some
dialplan under extension h which ends with cmd Hangup. Asterisk continue in
dialplan even after calling cmd Hangup. This is not the case with 1.6.0.19
and earlier. This is causing some issues with CDR, etc.
In this example, macro hangupcall is called twice!
- Executing [h at macro-dial:1] Macro("SIP/501-00000003", "hangupcall") in
new stack
-- Executing [s at macro-hangupcall:1] ResetCDR("SIP/501-00000003", "w")
in new stack
-- Executing [s at macro-hangupcall:2] NoCDR("SIP/501-00000003", "") in
new stack
-- Executing [s at macro-hangupcall:3] GotoIf("SIP/501-00000003",
"1?skiprg") in new stack
-- Goto (macro-hangupcall,s,6)
-- Executing [s at macro-hangupcall:6] GotoIf("SIP/501-00000003",
"1?skipblkvm") in new stack
-- Goto (macro-hangupcall,s,9)
-- Executing [s at macro-hangupcall:9] GotoIf("SIP/501-00000003",
"1?theend") in new stack
-- Goto (macro-hangupcall,s,11)
-- Executing [s at macro-hangupcall:11] Hangup("SIP/501-00000003", "") in
new stack
== Spawn extension (macro-hangupcall, s, 11) exited non-zero on
'SIP/501-00000003' in macro 'hangupcall'
== Spawn extension (macro-dial, h, 1) exited non-zero on
'SIP/501-00000003'
== Spawn extension (macro-dial, s, 8) exited non-zero on
'SIP/501-00000003' in macro 'dial'
== Spawn extension (macro-exten-vm, s, 9) exited non-zero on
'SIP/501-00000003' in macro 'exten-vm'
== Spawn extension (from-internal, 502, 1) exited non-zero on
'SIP/501-00000003'
-- Executing [h at from-internal:1] Macro("SIP/501-00000003",
"hangupcall") in new stack
-- Executing [s at macro-hangupcall:1] ResetCDR("SIP/501-00000003", "w")
in new stack
-- Executing [s at macro-hangupcall:2] NoCDR("SIP/501-00000003", "") in
new stack
-- Executing [s at macro-hangupcall:3] GotoIf("SIP/501-00000003",
"1?skiprg") in new stack
-- Goto (macro-hangupcall,s,6)
-- Executing [s at macro-hangupcall:6] GotoIf("SIP/501-00000003",
"1?skipblkvm") in new stack
-- Goto (macro-hangupcall,s,9)
-- Executing [s at macro-hangupcall:9] GotoIf("SIP/501-00000003",
"1?theend") in new stack
-- Goto (macro-hangupcall,s,11)
-- Executing [s at macro-hangupcall:11] Hangup("SIP/501-00000003", "") in
new stack
== Spawn extension (macro-hangupcall, s, 11) exited non-zero on
'SIP/501-00000003' in macro 'hangupcall'
== Spawn extension (from-internal, h, 1) exited non-zero on
'SIP/501-00000003'
======================================================================
Relationships ID Summary
----------------------------------------------------------------------
related to 0016106 [patch] Hangup extension executed twice...
======================================================================
----------------------------------------------------------------------
(0134690) svnbot (reporter) - 2011-05-09 14:09
https://issues.asterisk.org/view.php?id=16548#c134690
----------------------------------------------------------------------
Repository: asterisk
Revision: 318283
_U trunk/
U trunk/main/features.c
------------------------------------------------------------------------
r318283 | rmudgett | 2011-05-09 14:09:17 -0500 (Mon, 09 May 2011) | 31
lines
Merged revisions 318282 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.8
........
r318282 | rmudgett | 2011-05-09 14:07:01 -0500 (Mon, 09 May 2011) | 24
lines
Hangup extension executed twice.
When a user hangs up a call, in certain circumstances, the hangup
extension can end up being executed twice:
1) If a call is bridged and the 'h' extension executes the Hangup
application, then the 'h' extension will be executed twice.
2) If a call is bridged within a macro (Dial or Queue), it has its own
'h'
extension, the main context also has an 'h' extension, and the macro 'h'
extension executes the Hangup application, then both 'h' extensions will
be executed.
* Revert originally commited fix for
https://issues.asterisk.org/view.php?id=16106 and just set
AST_FLAG_BRIDGE_HANGUP_RUN unconditionally in ast_bridge_call(). The
bridge code just executed an 'h' extension so the main PBX loop does not
need to execute one as well.
(issue https://issues.asterisk.org/view.php?id=16106)
Reported by: ajohnson
(issue https://issues.asterisk.org/view.php?id=16548)
Reported by: hajekd
........
------------------------------------------------------------------------
http://svn.digium.com/view/asterisk?view=rev&revision=318283
Issue History
Date Modified Username Field Change
======================================================================
2011-05-09 14:09 svnbot Checkin
2011-05-09 14:09 svnbot Note Added: 0134690
======================================================================
More information about the asterisk-bugs
mailing list