Index: apps/app_dial.c =================================================================== --- apps/app_dial.c (revision 89583) +++ apps/app_dial.c (working copy) @@ -1502,8 +1502,15 @@ if (chan && peer && ast_test_flag(&opts, OPT_GOTO) && !ast_strlen_zero(opt_args[OPT_ARG_GOTO])) { replace_macro_delimiter(opt_args[OPT_ARG_GOTO]); ast_parseable_goto(chan, opt_args[OPT_ARG_GOTO]); - ast_parseable_goto(peer, opt_args[OPT_ARG_GOTO]); - peer->priority++; + /* Calling ast_parseable_goto on the peer is not a workable solution + * since if only a priority (or only a label) is provided in the goto, + * then peer->exten will be empty and the goto will fail. Since this will + * always send the peer and the channel to the same context and extension, we + * can simply copy chan's exten, context, and priority to peer and increment peer's priority + */ + ast_copy_string(peer->context, chan->context, sizeof(peer->context)); + ast_copy_string(peer->exten, chan->exten, sizeof(peer->exten)); + peer->priority = chan->priority + 1; ast_pbx_start(peer); hanguptree(outgoing, NULL); if (continue_exec)