]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
freetdm: On alarm off event make sure that we had alarm on before issuing HW UNBLOCK
authorNenad Corbic <ncorbic@sangoma.com>
Wed, 26 Oct 2011 20:34:56 +0000 (16:34 -0400)
committerNenad Corbic <ncorbic@sangoma.com>
Wed, 26 Oct 2011 20:34:56 +0000 (16:34 -0400)
libs/freetdm/src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c

index fbe588961537e573d38f43832971303b47a70ffc..37be742793364e4657f0c5ee698f64fe0b1871c4 100644 (file)
@@ -366,10 +366,12 @@ static void *ftdm_sangoma_ss7_run(ftdm_thread_t * me, void *obj)
                                        if (ftdmchan->alarm_flags != 0) { /* we'll send out block */
                                                sngss7_set_ckt_blk_flag(ss7_info, FLAG_GRP_HW_BLOCK_TX );
                                        }  else { /* we'll send out reset */
-                                               sngss7_clear_ckt_blk_flag( ss7_info, FLAG_GRP_HW_BLOCK_TX );
-                                               sngss7_clear_ckt_blk_flag( ss7_info, FLAG_GRP_HW_BLOCK_TX_DN );
-                                               sngss7_set_ckt_blk_flag (ss7_info, FLAG_GRP_HW_UNBLK_TX);
-                                               SS7_DEBUG("b_alarm_test FLAG_GRP_HW_UNBLK_TX\n");
+                                               if (sngss7_test_ckt_blk_flag(ss7_info, FLAG_GRP_HW_BLOCK_TX )) {
+                                                       sngss7_clear_ckt_blk_flag( ss7_info, FLAG_GRP_HW_BLOCK_TX );
+                                                       sngss7_clear_ckt_blk_flag( ss7_info, FLAG_GRP_HW_BLOCK_TX_DN );
+                                                       sngss7_set_ckt_blk_flag (ss7_info, FLAG_GRP_HW_UNBLK_TX);
+                                                       SS7_DEBUG("b_alarm_test FLAG_GRP_HW_UNBLK_TX\n");
+                                               }
                                        }
                                }
                                usleep(50);