diff options
author | root <root@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-09-27 13:01:41 +0000 |
---|---|---|
committer | root <root@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-09-27 13:01:41 +0000 |
commit | 8bc90f4489d202be55ada37b5674775b2a15f471 (patch) | |
tree | 90c498ef7649782a0e66f5daf8fe4058b3fc6f91 /channels | |
parent | c0c87c56a59bab183e130ebb990850f326285ed0 (diff) |
automerge commit
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.2-netsec@43773 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels')
-rw-r--r-- | channels/chan_misdn.c | 16 | ||||
-rw-r--r-- | channels/misdn/isdn_lib.c | 15 | ||||
-rw-r--r-- | channels/misdn/isdn_lib.h | 4 |
3 files changed, 9 insertions, 26 deletions
diff --git a/channels/chan_misdn.c b/channels/chan_misdn.c index d94b33690..111a2e121 100644 --- a/channels/chan_misdn.c +++ b/channels/chan_misdn.c @@ -102,7 +102,7 @@ int misdn_jb_empty(struct misdn_jb *jb, char *data, int len); enum misdn_chan_state { - MISDN_NOTHING, /*!< at beginning */ + MISDN_NOTHING=0, /*!< at beginning */ MISDN_WAITING4DIGS, /*!< when waiting for infos */ MISDN_EXTCANTMATCH, /*!< when asterisk couldnt match our ext */ MISDN_DIALING, /*!< when pbx_start */ @@ -1651,8 +1651,6 @@ static int misdn_call(struct ast_channel *ast, char *dest, int timeout) else chan_misdn_log(2,port,"NO OPTS GIVEN\n"); - ch->state=MISDN_CALLING; - r=misdn_lib_send_event( newbc, EVENT_SETUP ); /** we should have l3id after sending setup **/ @@ -1673,6 +1671,8 @@ static int misdn_call(struct ast_channel *ast, char *dest, int timeout) ast->hangupcause=16; if (newbc->nt) stop_bc_tones(ch); + + ch->state=MISDN_CALLING; return 0; } @@ -1974,9 +1974,9 @@ static int misdn_hangup(struct ast_channel *ast) bc=p->bc; - if (ast->_state == AST_STATE_RESERVED) { + if (ast->_state == AST_STATE_RESERVED || p->state == MISDN_NOTHING) { /* between request and call */ - ast_log(LOG_DEBUG, "State Reserved => chanIsAvail\n"); + ast_log(LOG_DEBUG, "State Reserved (or nothing) => chanIsAvail\n"); MISDN_ASTERISK_TECH_PVT(ast)=NULL; cl_dequeue_chan(&cl_te, p); @@ -3724,10 +3724,10 @@ cb_events(enum event_e event, struct misdn_bchannel *bc, void *user_data) cb_log(1,bc->port," --> found holded ch\n"); if (ch->state == MISDN_CONNECTED ) { misdn_transfer_bc(ch, holded_ch) ; + hangup_chan(ch); + // release_chan(bc); + break; } - hangup_chan(ch); - release_chan(bc); - break; } stop_bc_tones(ch); diff --git a/channels/misdn/isdn_lib.c b/channels/misdn/isdn_lib.c index ea7c20849..43f3e1ed3 100644 --- a/channels/misdn/isdn_lib.c +++ b/channels/misdn/isdn_lib.c @@ -991,12 +991,6 @@ int setup_bc(struct misdn_bchannel *bc) } else if ( bc->hdlc ) { cb_log(2, stack->port," --> HDLC Mode\n"); -#ifdef ACK_HDLC - bc->ack_hdlc=(sem_t*)malloc(sizeof(sem_t)); - if ( sem_init((sem_t*)bc->ack_hdlc, 1, 0)<0 ) - sem_init((sem_t*)bc->ack_hdlc, 0, 0); -#endif - pid.protocol[1] = ISDN_PID_L1_B_64HDLC ; pid.protocol[2] = ISDN_PID_L2_B_TRANS ; pid.protocol[3] = ISDN_PID_L3_B_USER; @@ -2475,7 +2469,6 @@ int handle_bchan(msg_t *msg) #endif free_msg(msg); - return 1; case DL_DATA|RESPONSE: #if MISDN_DEBUG @@ -3231,7 +3224,6 @@ int misdn_lib_send_event(struct misdn_bchannel *bc, enum event_e event ) /*holded_bc->upset=0; holded_bc->active=0;*/ bc_state_change(holded_bc,BCHAN_CLEANED); - cb_event( EVENT_NEW_BC, bc, holded_bc); } break; @@ -3940,13 +3932,6 @@ int misdn_lib_tx2misdn_frm(struct misdn_bchannel *bc, void *data, int len) cb_log(9, stack->port, "Writing %d bytes 2 mISDN\n",len); r=mISDN_write(stack->midev, buf, frm->len + mISDN_HEADER_LEN, TIMEOUT_INFINIT); -#ifdef ACK_HDLC - if (bc->hdlc && bc->ack_hdlc) { - cb_log(4,stack->port,"Awaiting Acknowledge [%d]\n",len); - sem_wait((sem_t*)bc->ack_hdlc); - cb_log(4,stack->port,"Acknowledged\n"); - } -#endif return 0; } diff --git a/channels/misdn/isdn_lib.h b/channels/misdn/isdn_lib.h index f79bc2ad0..44f60dc7e 100644 --- a/channels/misdn/isdn_lib.h +++ b/channels/misdn/isdn_lib.h @@ -58,7 +58,7 @@ enum tone_e { -#define MAX_BCHANS 30 +#define MAX_BCHANS 31 enum bchannel_state { BCHAN_CLEANED=0, @@ -211,8 +211,6 @@ struct misdn_bchannel { /* int b_addr; */ int layer_id; - void *ack_hdlc; - int layer; /*state stuff*/ |