Merged revisions 82249 via svnmerge from
authorChristian Richter <christian.richter@beronet.com>
Tue, 11 Sep 2007 16:15:10 +0000 (16:15 +0000)
committerChristian Richter <christian.richter@beronet.com>
Tue, 11 Sep 2007 16:15:10 +0000 (16:15 +0000)
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r82249 | crichter | 2007-09-11 18:01:27 +0200 (Di, 11 Sep 2007) | 1 line

fixed a hold/retrieve issue.
........

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@82254 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_misdn.c
channels/misdn/isdn_lib.c

index f56ff99..a8b1086 100644 (file)
@@ -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;
     
index 9f4f57f..aacdc0b 100644 (file)
@@ -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;