summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAutomerge script <automerge@asterisk.org>2012-11-30 22:19:35 +0000
committerAutomerge script <automerge@asterisk.org>2012-11-30 22:19:35 +0000
commit9820184db53b2461d41746f25f3f12aabec4e339 (patch)
treefa173906669bcb6304ea5af3717798b161257c9e
parentf10729c1a2671457674cc69eedb8f77b9eb96103 (diff)
Merged revisions 376953 via svnmerge from
file:///srv/subversion/repos/asterisk/trunk ................ r376953 | rmudgett | 2012-11-30 15:38:01 -0600 (Fri, 30 Nov 2012) | 24 lines chan_misdn: Fix sending RELEASE_COMPLETE in response to SETUP. Fix sending a RELEASE_COMPLETE in response to a SETUP if chan_misdn does not have a B channel available to assign to the call. (closes issue ABE-2869) Reported by: Guenther Kelleter Patches: setup-reject_2.diff (license #6372) patch uploaded by Guenther Kelleter Modified ........ Merged revision 376949 from https://origsvn.digium.com/svn/asterisk/be/branches/C.3-bier ........ Merged revisions 376950 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 376951 from http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged revisions 376952 from http://svn.asterisk.org/svn/asterisk/branches/11 ................ git-svn-id: https://origsvn.digium.com/svn/asterisk/team/mmichelson/threadpool@376962 65c4cc65-6c06-0410-ace0-fbb531ad65f3
-rw-r--r--channels/misdn/isdn_lib.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/channels/misdn/isdn_lib.c b/channels/misdn/isdn_lib.c
index 42bbd8f8f..8dcf41faa 100644
--- a/channels/misdn/isdn_lib.c
+++ b/channels/misdn/isdn_lib.c
@@ -2700,6 +2700,10 @@ static int handle_frm_te(msg_t *msg)
dummybc.l3_id = frm->dinfo;
bc = &dummybc;
+ /* set a reasonable cause */
+ bc->out_cause = AST_CAUSE_REQUESTED_CHAN_UNAVAIL;
+ /* if we want to send something the flag must be set! */
+ bc->need_release_complete = 1;
misdn_lib_send_event(bc, EVENT_RELEASE_COMPLETE);
free_msg(msg);
@@ -4066,14 +4070,19 @@ static void manager_event_handler(void *arg)
if (bc)
send_msg(glob_mgr->midev, bc, msg);
else {
+ struct misdn_bchannel dummybc;
+
+ misdn_make_dummy(&dummybc, stack->port, frm->dinfo, stack->nt, 0);
if (frm->dinfo == MISDN_ID_GLOBAL || frm->dinfo == MISDN_ID_DUMMY ) {
- struct misdn_bchannel dummybc;
cb_log(5,0," --> GLOBAL/DUMMY\n");
- misdn_make_dummy(&dummybc, stack->port, frm->dinfo, stack->nt, 0);
- send_msg(glob_mgr->midev, &dummybc, msg);
} else {
- cb_log(0,0,"No bc for Message\n");
+ /*
+ * We need to be able to at least answer with RELEASE_COMPLETE
+ * on SETUP|INDICATION errors so use a dummy bc.
+ */
+ cb_log(0,0,"No bc for Message. Using dummy_bc\n");
}
+ send_msg(glob_mgr->midev, &dummybc, msg);
}
}
}