diff options
author | file <file@f38db490-d61c-443f-a65b-d21fe96a405b> | 2009-05-22 13:54:17 +0000 |
---|---|---|
committer | file <file@f38db490-d61c-443f-a65b-d21fe96a405b> | 2009-05-22 13:54:17 +0000 |
commit | f78c6077dd250a86ebe3835aac1fb7c1458b3b5e (patch) | |
tree | d5ad7278415a0caaec96ca7a8689d39ff5e833fd /channels/chan_misdn.c | |
parent | 558f4e107838d544621a19753b7157907aee50eb (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/chan_misdn.c')
-rw-r--r-- | channels/chan_misdn.c | 5 |
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); |