summaryrefslogtreecommitdiff
path: root/channels/misdn
diff options
context:
space:
mode:
authorChristian Richter <christian.richter@beronet.com>2006-03-27 10:13:11 +0000
committerChristian Richter <christian.richter@beronet.com>2006-03-27 10:13:11 +0000
commitbd4715f3bcc0726a93061375bb3644bd917ce360 (patch)
treebc82231ecc07cedd1589b7586b1281692ed9fcda /channels/misdn
parent15873eb39cd360a05f8b1c209e473574e961a1d8 (diff)
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
Diffstat (limited to 'channels/misdn')
-rw-r--r--channels/misdn/isdn_lib.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/channels/misdn/isdn_lib.c b/channels/misdn/isdn_lib.c
index b0e9477d0..bb4da6921 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);