aboutsummaryrefslogtreecommitdiffstats
path: root/channels
diff options
context:
space:
mode:
authorfile <file@f38db490-d61c-443f-a65b-d21fe96a405b>2009-05-22 13:54:17 +0000
committerfile <file@f38db490-d61c-443f-a65b-d21fe96a405b>2009-05-22 13:54:17 +0000
commitf78c6077dd250a86ebe3835aac1fb7c1458b3b5e (patch)
treed5ad7278415a0caaec96ca7a8689d39ff5e833fd /channels
parent558f4e107838d544621a19753b7157907aee50eb (diff)
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: http://svn.digium.com/svn/asterisk/branches/1.4@196116 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels')
-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);