Summary:ASTERISK-16536: [patch] certain exception states do not jump to 'e' error extension properly
Reporter:Timo Teräs (fabled)Labels:
Date Opened:2010-08-10 01:30:53Date Closed:2011-12-07 12:55:19.000-0600
Versions:Frequency of
Environment:Attachments:( 0) exception-fix.diff
Description:main/pbx.c: pbx_builtin_raise_exception() sets extensions 'e', priority 0. It excepts to be called from within the main loop of __ast_pbx_run() where priority is incremented before next extension is spawned.

However, pbx_uiltin_raise_exception() is called also from multiple places across pbx.c outside of that loop leaving priority to be zero when that loop is entered later.

****** STEPS TO REPRODUCE ******

Configure dialplan to generate error:
- application that returns non-zero
- jump to invalid extension in context that does not have 'i' extension
- read digits and wait for timeout in context does not have 't' extension

Expected that the 'e' error extension with priority 1 is executed, but it does not happen. Code executes priority 0 instead.


Not sure when this broke, but I remember this working once.
Comments:By: Timo Teräs (fabled) 2010-08-10 01:31:56

Proposed patch that should cover most of the error cases.

By: Matt Jordan (mjordan) 2011-12-07 12:55:05.789-0600

I attempted to reproduce this in the 1.8 branch and was unable to do so.  It appears as if r315645 resolved this (and several other) issues regarding the 'e' extension.  Per the Asterisk maintenance timeline page at http://www.asterisk.org/asterisk-versions maintenance (bug) support for the 1.4 and 1.6.x branches has ended. For continued maintenance support please move to the 1.8 branch which is a long term support (LTS) branch. For more information about branch support, please see https://wiki.asterisk.org/wiki/display/AST/Asterisk+Versions.  After testing with Asterisk 1.8, if you find this problem has not been resolved, please open a new issue against Asterisk 1.8.