aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--channels/chan_misdn.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/channels/chan_misdn.c b/channels/chan_misdn.c
index 0ed15a5d7..34070fd35 100644
--- a/channels/chan_misdn.c
+++ b/channels/chan_misdn.c
@@ -3785,9 +3785,10 @@ static void do_immediate_setup(struct misdn_bchannel *bc, struct chan_list *ch,
chan_misdn_log(1, bc->port, "* Starting Ast ctx:%s dad:%s oad:%s with 's' extension\n", ast->context, ast->exten, ast->cid.cid_num);
strcpy(ast->exten, "s");
-
- if (pbx_start_chan(ch) < 0) {
+
+ if (!ast_canmatch_extension(ast, ast->context, ast->exten, 1, bc->oad) || pbx_start_chan(ch) < 0) {
ast = NULL;
+ bc->out_cause = AST_CAUSE_UNALLOCATED;
hangup_chan(ch);
hanguptone_indicate(ch);