From bd4715f3bcc0726a93061375bb3644bd917ce360 Mon Sep 17 00:00:00 2001 From: Christian Richter <christian.richter@beronet.com> Date: Mon, 27 Mar 2006 10:13:11 +0000 Subject: [PATCH] fixed hicom busy bug, we now see if the systemphone is busy, also fixed the immediate=yes does not work anymore issue git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@15220 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- channels/chan_misdn.c | 10 ++++++++++ channels/misdn/isdn_lib.c | 16 +++++++++++++--- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/channels/chan_misdn.c b/channels/chan_misdn.c index 96b1fa46d5..ba9aacc877 100644 --- a/channels/chan_misdn.c +++ b/channels/chan_misdn.c @@ -3322,6 +3322,16 @@ cb_events(enum event_e event, struct misdn_bchannel *bc, void *user_data) + } + + /* check if we should jump into s when we have no dad */ + { + int im; + misdn_cfg_get( bc->port, MISDN_CFG_IMMEDIATE, &im, sizeof(im)); + if ( im && ast_strlen_zero(bc->dad) ) { + do_immediate_setup(bc, ch , chan); + break; + } } diff --git a/channels/misdn/isdn_lib.c b/channels/misdn/isdn_lib.c index b0e9477d07..bb4da69213 100644 --- a/channels/misdn/isdn_lib.c +++ b/channels/misdn/isdn_lib.c @@ -1553,6 +1553,7 @@ handle_event_nt(void *dat, void *arg) manager_t *mgr = (manager_t *)dat; msg_t *msg = (msg_t *)arg; mISDNuser_head_t *hh; + int reject=0; struct misdn_stack *stack=find_stack_by_mgr(mgr); int port; @@ -1681,8 +1682,8 @@ handle_event_nt(void *dat, void *arg) if (bc) { int myprocid=bc->l3_id&0x0000ffff; hh->dinfo=(hh->dinfo&0xffff0000)|myprocid; - cb_log(3,stack->port,"Repaired reject Bug, new dinfo: %x\n",hh->dinfo); - return 0; + cb_log(3,stack->port,"Reject dinfo: %x cause:%d\n",hh->dinfo,bc->cause); + reject=1; } } } @@ -1833,9 +1834,18 @@ handle_event_nt(void *dat, void *arg) if(!isdn_get_info(msgs_g,event,1)) { cb_log(4, stack->port, "Unknown Event Ind: prim %x dinfo %x\n",hh->prim, hh->dinfo); } else { + if (reject) { + switch(bc->cause){ + case 17: + cb_log(1, stack->port, "Siemens Busy reject..\n"); + + break; + default: + return 0; + } + } cb_event(event, bc, glob_mgr->user_data); } - } else { cb_log(4, stack->port, "No BC found with l3id: prim %x dinfo %x\n",hh->prim, hh->dinfo); -- GitLab