[asterisk-bugs] [Asterisk 0017089]: Background behaves strangely[t when priority 1 is not available in current extension.

Asterisk Bug Tracker noreply at bugs.digium.com
Thu Mar 25 11:30:32 CDT 2010


A NOTE has been added to this issue. 
====================================================================== 
https://issues.asterisk.org/view.php?id=17089 
====================================================================== 
Reported By:                whardier
Assigned To:                
====================================================================== 
Project:                    Asterisk
Issue ID:                   17089
Category:                   Core/PBX
Reproducibility:            always
Severity:                   minor
Priority:                   normal
Status:                     feedback
Asterisk Version:           1.6.2.6 
JIRA:                        
Regression:                 No 
Reviewboard Link:            
SVN Branch (only for SVN checkouts, not tarball releases): N/A 
SVN Revision (number only!):  
Request Review:              
====================================================================== 
Date Submitted:             2010-03-23 22:20 CDT
Last Modified:              2010-03-25 11:30 CDT
====================================================================== 
Summary:                    Background behaves strangely[t when priority 1 is
not available in current extension.
Description: 
Apparently whatever extension lookup method is being used by BackGround
fails when the extension calling BackGround does not have priority 1 in the
current context.  I discovered this when including an IVR menu into another
context using a 50000 offset to extension 's' and a named priority.  See
additional information for a quick sample.

In the example below, if a caller is sent to Goto(tree-dish-AK-ANC,s,1)
the extension detection fails with:

[Mar 23 19:17:41]     -- Sent into invalid extension 's' in context
'tree-dish-common' on SIP/0011-Sales-0000001c
[Mar 23 19:17:41]     -- Executing [i at tree-dish-common:1]
Gosub("SIP/0011-Sales-0000001c", "s,common") in new stack

If I attempt to dial a 4 digit extension starting with 0 when a '0'
extension exists.  Something is 'wonky' if I can get technical with you
all.

Previously [tree-dish-AK-ANC] included [tree-dish-common] and simply went
to the named priority at priority 50000 via a local Goto which may have
worked.. untested.  

I can see how some users may want to jump into a named priority in another
context and use DTMF detection of some kind.  If the extension does not
have priority 1 this will fail.
====================================================================== 

---------------------------------------------------------------------- 
 (0119901) lmadsen (administrator) - 2010-03-25 11:30
 https://issues.asterisk.org/view.php?id=17089#c119901 
---------------------------------------------------------------------- 
<Corydon76-dig> The reason for the message is that when we increment the
priority past one that doesn't exist, we don't know how we got there
<Corydon76-dig> So we do a little trick:  we check if priority 1 exists. 
If it does, we assume we got there through incrementing the priority and we
exit.  If not, we assume that we got there through a Goto
<leifmadsen> so to Goto(somewhere,extension,start) which is
[somewhere]\nexten=> extension,50000(start),NoOp() we actually start at
extension,s,1 and increment until we find 'start' ?
<Corydon76-dig> That's the reason for the wonky message, but the behavior
is entirely predictable, which is why no bug exists
<Corydon76-dig> No... we get to 50000, we execute
<Corydon76-dig> 50001, execute
<Corydon76-dig> ...
<Corydon76-dig> 50004, does not exist, we check if priority 1 existed, if
it does, we exit
<leifmadsen> oh... I don't understand the reason for the check
<Corydon76-dig> if it doesn't, we assume Goto logic
<Corydon76-dig> Otherwise, we would always go to the "i" extension when we
run out of priorities, instead of exiting
<leifmadsen> if we're executing away on priority 50000 and we get to the
end, why bother checking if priority 1 ever existed?
<leifmadsen> huh
<leifmadsen> why wouldn't that check be done at the start?
<Corydon76-dig> leifmadsen: Because it's all stateless.  When we get to
50004, we don't know how we got there
<leifmadsen> ah 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2010-03-25 11:30 lmadsen        Note Added: 0119901                          
======================================================================




More information about the asterisk-bugs mailing list