mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-30 02:26:23 +00:00
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:
@@ -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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@@ -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);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user