Summary:ASTERISK-17918: Context jump use causes MeetMe to hard-hangup (Context scope bug)
Reporter:var (var)Labels:
Date Opened:2011-05-24 23:04:37Date Closed:
Versions:1.8.4 13.18.4 Frequency of
Environment:Attachments:( 0) test-meetme.ael
Description:When doing an 'overkill' [1] context jump, implementing a MeetMe call causes MeetMe to hard-hangup instead of executing normal dialplan operations (e.g following context, executing hangup extension) when soft-hangup is given (i.e. user hangs up).

The attached dialplan will not continue the context as it should, however, if the jump command is replaced with 'jump example,dialing;' everything will work as expected.

This bug has to do with a context scope bug, see comment 3 in this ticket.

[1] https://wiki.asterisk.org/wiki/display/AST/AEL+goto%2C+jump%2C+and+labels

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

See attached ael context
Comments:By: var (var) 2011-05-24 23:08:14

resubmission of ticket cleared some fields.

OS: Debian Squeeze (6.0)
Kernel: 2.6.32-5-686
Dahdi Tools: 2.4.1
Dahdi Linux: 2.4.1
Asterisk Version: 1.8.4 (also but that's EOL)

By: var (var) 2011-06-28 22:42:53.127-0500

Using callback call file before meetme also duplicates this issue. If somewhere in the context the system uses a call file to callback the user back after hanging up (used to preserve callers timed phone charges), the goto/jump is done using Context, Extension and Priority (overkill example) causing MeetMe to Hard-Hangup on the user.

Do note this issue was acknowledged in the previous ticketing system.

By: var (var) 2011-06-30 20:45:15.508-0500

This particular issue seems to do with contexts. When using asterisk.ael to include additional file's and their contained contexts, the 'current' context should always belong to that of the corresponding extension number's context - however in 1.8.x this behaviour has changed. When calling an extension, the 'current' context is always the asterisk.ael context (e.g 'default') that calls the 'includes {}' special extension.

When you make a jump/goto using context, extension and priority - the 'current' context is no longer 'default', however this seems to cause a problem when exiting a MeetMe conference. It sounds like the 'current' context change is not tracked by MeetMe as MeetMe expects the <= 1.6.1.x behaviour (at a random guess, haven't looked at the code).

This issue can be circumvented by jumping back to the 'default' extension. While this workaround is effective, the whole 'default' context behaviour can cause problems when including multiple contexts, multiple contexts may have overlapping extensions (e.g h =>) as they are all joined into the 'default' context.

The analysis shows this specific issue effect is larger than first initially thought.