Index: channels/chan_zap.c =================================================================== --- channels/chan_zap.c (revision 78488) +++ channels/chan_zap.c (working copy) @@ -8725,8 +8725,13 @@ else if (!ast_strlen_zero(e->ring.callednum)) { ast_copy_string(pri->pvts[chanpos]->exten, e->ring.callednum, sizeof(pri->pvts[chanpos]->exten)); ast_copy_string(pri->pvts[chanpos]->dnid, e->ring.callednum, sizeof(pri->pvts[chanpos]->dnid)); - } else + } else if (pri->overlapdial) pri->pvts[chanpos]->exten[0] = '\0'; + else { + /* Some PRI circuits are set up to send _no_ digits. Handle them as 's'. */ + pri->pvts[chanpos]->exten[0] = 's'; + pri->pvts[chanpos]->exten[1] = '\0'; + } /* Set DNID on all incoming calls -- even immediate */ if (!ast_strlen_zero(e->ring.callednum)) ast_copy_string(pri->pvts[chanpos]->dnid, e->ring.callednum, sizeof(pri->pvts[chanpos]->dnid)); Index: apps/app_dial.c =================================================================== --- apps/app_dial.c (revision 78488) +++ apps/app_dial.c (working copy) @@ -478,7 +478,7 @@ tech = tmpchan; } else { const char *forward_context = pbx_builtin_getvar_helper(c, "FORWARD_CONTEXT"); - snprintf(tmpchan, sizeof(tmpchan), "%s@%s", c->call_forward, forward_context ? forward_context : c->context); + snprintf(tmpchan, sizeof(tmpchan), "%s@%s/n", c->call_forward, forward_context ? forward_context : c->context); stuff = tmpchan; tech = "Local"; }