mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-03 11:25:35 +00:00
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/trunk@376953 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user