diff --git a/channels/chan_misdn.c b/channels/chan_misdn.c index f56ff99d9ba28d4a08da52f5ed4226179573cc0c..a8b108626a494a3dbe35d3d63a43b4ff83b3e11f 100644 --- a/channels/chan_misdn.c +++ b/channels/chan_misdn.c @@ -4517,7 +4517,7 @@ cb_events(enum event_e event, struct misdn_bchannel *bc, void *user_data) if (FD_ISSET(ch->pipe[1], &wrfs)) { chan_misdn_log(9, bc->port, "writing %d bytes 2 asterisk\n", bc->bframe_len); if (write(ch->pipe[1], bc->bframe, bc->bframe_len) <= 0) { - chan_misdn_log(-1, bc->port, "Write returned <=0 (err=%s) --> hanging up channel\n", strerror(errno)); + chan_misdn_log(0, bc->port, "Write returned <=0 (err=%s) --> hanging up channel\n", strerror(errno)); stop_bc_tones(ch); hangup_chan(ch); @@ -4585,7 +4585,7 @@ cb_events(enum event_e event, struct misdn_bchannel *bc, void *user_data) struct ast_channel *hold_ast; if (!ch) { - chan_misdn_log(4, bc->port, " --> no CH, searching in holded"); + chan_misdn_log(4, bc->port, " --> no CH, searching in holded\n"); ch = find_holded_l3(cl_te, bc->l3_id, 1); } @@ -4607,9 +4607,11 @@ cb_events(enum event_e event, struct misdn_bchannel *bc, void *user_data) if (hold_ast) { ast_moh_stop(hold_ast); } - - if (misdn_lib_send_event(bc, EVENT_RETRIEVE_ACKNOWLEDGE) < 0) + + if (misdn_lib_send_event(bc, EVENT_RETRIEVE_ACKNOWLEDGE) < 0) { + chan_misdn_log(4, bc->port, " --> RETRIEVE_ACK failed\n"); misdn_lib_send_event(bc, EVENT_RETRIEVE_REJECT); + } } break; diff --git a/channels/misdn/isdn_lib.c b/channels/misdn/isdn_lib.c index 9f4f57fa03b1d3f8e7d7152d50fda8e8b96cd7d0..aacdc0ba44d06d99f49ccade62e3624b67c166ce 100644 --- a/channels/misdn/isdn_lib.c +++ b/channels/misdn/isdn_lib.c @@ -1816,6 +1816,7 @@ handle_event_nt(void *dat, void *arg) free(hold_bc); bc->holded=0; + bc->b_stid=0; } } @@ -2849,7 +2850,6 @@ static int handle_mgmt(msg_t *msg) case SSTATUS_L1_DEACTIVATED: cb_log(3, 0, "MGMT: SSTATUS: L1_DEACTIVATED \n"); stack->l1link=0; - clear_l3(stack); break;