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
This commit is contained in:
Christian Richter
2006-03-27 10:13:11 +00:00
parent 15873eb39c
commit bd4715f3bc
2 changed files with 23 additions and 3 deletions

View File

@@ -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;
}
} }

View File

@@ -1553,6 +1553,7 @@ handle_event_nt(void *dat, void *arg)
manager_t *mgr = (manager_t *)dat; manager_t *mgr = (manager_t *)dat;
msg_t *msg = (msg_t *)arg; msg_t *msg = (msg_t *)arg;
mISDNuser_head_t *hh; mISDNuser_head_t *hh;
int reject=0;
struct misdn_stack *stack=find_stack_by_mgr(mgr); struct misdn_stack *stack=find_stack_by_mgr(mgr);
int port; int port;
@@ -1681,8 +1682,8 @@ handle_event_nt(void *dat, void *arg)
if (bc) { if (bc) {
int myprocid=bc->l3_id&0x0000ffff; int myprocid=bc->l3_id&0x0000ffff;
hh->dinfo=(hh->dinfo&0xffff0000)|myprocid; hh->dinfo=(hh->dinfo&0xffff0000)|myprocid;
cb_log(3,stack->port,"Repaired reject Bug, new dinfo: %x\n",hh->dinfo); cb_log(3,stack->port,"Reject dinfo: %x cause:%d\n",hh->dinfo,bc->cause);
return 0; reject=1;
} }
} }
} }
@@ -1833,10 +1834,19 @@ handle_event_nt(void *dat, void *arg)
if(!isdn_get_info(msgs_g,event,1)) { 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); cb_log(4, stack->port, "Unknown Event Ind: prim %x dinfo %x\n",hh->prim, hh->dinfo);
} else { } 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); cb_event(event, bc, glob_mgr->user_data);
} }
} else { } else {
cb_log(4, stack->port, "No BC found with l3id: prim %x dinfo %x\n",hh->prim, hh->dinfo); cb_log(4, stack->port, "No BC found with l3id: prim %x dinfo %x\n",hh->prim, hh->dinfo);
} }