if (res < 0) /* User hungup, so jump out now */
break;
+ if (res == '0') {
+ if (!ast_goto_if_exists(chan, dialcontext, "o", 1) ||
+ (!ast_strlen_zero(chan->macrocontext) &&
+ !ast_goto_if_exists(chan, chan->macrocontext, "o", 1))) {
+ /* return 1 to indicate goto has been performed */
+ return '1';
+ }
+ }
if (res == '1') { /* Name selected */
if (fromappvm) {
/* We still want to set the exten though */
}
if (res == '*') /* Skip to next match in list */
break;
+ if (res == '#')
+ break;
/* Not '1', or '*', so decrement number of tries */
res = 0;
lastuserchoice = res;
res = 0;
break;
+ case '#':
+ lastuserchoice = res;
+ return 0;
default:
break;
}
dirintro = ast_variable_retrieve(cfg, "general", "directoryintro");
if (ast_strlen_zero(dirintro))
dirintro = last ? "dir-intro" : "dir-intro-fn";
+ /* the above prompts probably should be modified to include 0 for dialing operator
+ and # for exiting (continues in dialplan) */
if (chan->_state != AST_STATE_UP)
res = ast_answer(chan);