diff --git a/apps/app_dial.c b/apps/app_dial.c index 564ff86821..70f28ac7f1 100755 --- a/apps/app_dial.c +++ b/apps/app_dial.c @@ -1066,7 +1066,7 @@ static int dial_exec(struct ast_channel *chan, void *data) if(macro_transfer_dest[res] == '^') macro_transfer_dest[res] = '|'; - if(!ast_parsable_goto(chan, macro_transfer_dest)) + if(!ast_parseable_goto(chan, macro_transfer_dest)) go_on = 1; } diff --git a/pbx.c b/pbx.c index 14fcf26cbe..bc954d72b0 100755 --- a/pbx.c +++ b/pbx.c @@ -4836,9 +4836,12 @@ static int pbx_builtin_waitexten(struct ast_channel *chan, void *data) ms = 10000; res = ast_waitfordigit(chan, ms); if (!res) { - if (ast_exists_extension(chan, chan->context, "t", 1, chan->cid.cid_num)) { + if (ast_exists_extension(chan, chan->context, chan->exten, chan->priority + 1, chan->cid.cid_num)) { if (option_verbose > 2) - ast_verbose(VERBOSE_PREFIX_3 "Timeout on %s\n", chan->name); + ast_verbose(VERBOSE_PREFIX_3 "Timeout on %s, continuing...\n", chan->name); + } else if (ast_exists_extension(chan, chan->context, "t", 1, chan->cid.cid_num)) { + if (option_verbose > 2) + ast_verbose(VERBOSE_PREFIX_3 "Timeout on %s, going to 't'\n", chan->name); strncpy(chan->exten, "t", sizeof(chan->exten)); chan->priority = 0; } else {