From e79b7e3c8de2720300e3aebdccda3e46addfc391 Mon Sep 17 00:00:00 2001 From: Joshua Colp Date: Fri, 22 May 2009 13:54:17 +0000 Subject: [PATCH] Fix a bug where using immediate with mISDN caused a cause code of 16 to get sent back instead of 1 if the 's' extension did not exist. (closes issue #12286) Reported by: lmamane git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@196116 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- channels/chan_misdn.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/channels/chan_misdn.c b/channels/chan_misdn.c index 0ed15a5d75..34070fd35a 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);