diff --git a/bridge_master.py b/bridge_master.py index 7efd693..efa866b 100644 --- a/bridge_master.py +++ b/bridge_master.py @@ -363,15 +363,6 @@ def deactivate_all_dynamic_bridges(system_name): ### MODIFIED: Core logic updated to handle special TGIDs (9990-9999) correctly with SINGLE_MODE def rule_timer_loop(): - for _sys_name in list(systems.keys()): - try: - for _slot_id in (1, 2): - _s = systems[_sys_name].STATUS[_slot_id] - if _s['RX_TYPE'] != HBPF_SLT_VTERM or _s['TX_TYPE'] != HBPF_SLT_VTERM: - return - except (KeyError, TypeError, AttributeError): - continue - logger.debug('(ROUTER) routerHBP Rule timer loop started') _now = time() _remove_bridges = deque() @@ -379,6 +370,8 @@ def rule_timer_loop(): # Mantener registro de bridges dinámicos activos por sistema _active_dynamic_bridges = {} + _debug_msgs = [] + for _bridge in list(BRIDGES): _bridge_used = False @@ -411,9 +404,9 @@ def rule_timer_loop(): if _system['SYSTEM'] not in _active_dynamic_bridges: _active_dynamic_bridges[_system['SYSTEM']] = [] _active_dynamic_bridges[_system['SYSTEM']].append((_bridge, _system)) - logger.debug('(ROUTER) Conference Bridge ACTIVE (INFINITE TIMER): System: %s Bridge: %s, TS: %s, TGID: %s', _system['SYSTEM'], _bridge, _system['TS'], int_id(_system['TGID'])) + _debug_msgs.append('(ROUTER) Conference Bridge ACTIVE (INFINITE TIMER): System: %s Bridge: %s, TS: %s, TGID: %s' % (_system['SYSTEM'], _bridge, _system['TS'], int_id(_system['TGID']))) else: - logger.debug('(ROUTER) Conference Bridge INACTIVE (no change): System: %s Bridge: %s, TS: %s, TGID: %s', _system['SYSTEM'], _bridge, _system['TS'], int_id(_system['TGID'])) + _debug_msgs.append('(ROUTER) Conference Bridge INACTIVE (no change): System: %s Bridge: %s, TS: %s, TGID: %s' % (_system['SYSTEM'], _bridge, _system['TS'], int_id(_system['TGID']))) elif _system['TO_TYPE'] == 'OFF': if _system['ACTIVE'] == False: # Activar inmediatamente sin timer @@ -422,7 +415,7 @@ def rule_timer_loop(): logger.info('(ROUTER) Conference Bridge ACTIVATED (NO TIMEOUT): System: %s, Bridge: %s, TS: %s, TGID: %s', _system['SYSTEM'], _bridge, _system['TS'], int_id(_system['TGID'])) else: _bridge_used = True - logger.debug('(ROUTER) Conference Bridge ACTIVE (no change): System: %s Bridge: %s, TS: %s, TGID: %s', _system['SYSTEM'], _bridge, _system['TS'], int_id(_system['TGID'])) + _debug_msgs.append('(ROUTER) Conference Bridge ACTIVE (no change): System: %s Bridge: %s, TS: %s, TGID: %s' % (_system['SYSTEM'], _bridge, _system['TS'], int_id(_system['TGID']))) else: # COMPORTAMIENTO ORIGINAL (SINGLE MODE ACTIVADO o bridges estáticos o TGIDs especiales) if _system['TO_TYPE'] == 'ON': @@ -438,7 +431,7 @@ def rule_timer_loop(): _bridge_used = True logger.info('(ROUTER) Conference Bridge ACTIVE (ON timer running): System: %s Bridge: %s, TS: %s, TGID: %s, Timeout in: %.2fs,', _system['SYSTEM'], _bridge, _system['TS'], int_id(_system['TGID']), timeout_in) elif _system['ACTIVE'] == False: - logger.debug('(ROUTER) Conference Bridge INACTIVE (no change): System: %s Bridge: %s, TS: %s, TGID: %s', _system['SYSTEM'], _bridge, _system['TS'], int_id(_system['TGID'])) + _debug_msgs.append('(ROUTER) Conference Bridge INACTIVE (no change): System: %s Bridge: %s, TS: %s, TGID: %s' % (_system['SYSTEM'], _bridge, _system['TS'], int_id(_system['TGID']))) elif _system['TO_TYPE'] == 'OFF': if _system['ACTIVE'] == False: if _system['TIMER'] < _now: @@ -451,16 +444,19 @@ def rule_timer_loop(): logger.info('(ROUTER) Conference Bridge INACTIVE (OFF timer running): System: %s Bridge: %s, TS: %s, TGID: %s, Timeout in: %.2fs,', _system['SYSTEM'], _bridge, _system['TS'], int_id(_system['TGID']), timeout_in) elif _system['ACTIVE'] == True: _bridge_used = True - logger.debug('(ROUTER) Conference Bridge ACTIVE (no change): System: %s Bridge: %s, TS: %s, TGID: %s', _system['SYSTEM'], _bridge, _system['TS'], int_id(_system['TGID'])) + _debug_msgs.append('(ROUTER) Conference Bridge ACTIVE (no change): System: %s Bridge: %s, TS: %s, TGID: %s' % (_system['SYSTEM'], _bridge, _system['TS'], int_id(_system['TGID']))) else: if _system['SYSTEM'][0:3] != 'OBP': _bridge_used = True elif _system['SYSTEM'][0:3] == 'OBP' and _system['TO_TYPE'] == 'STAT': _bridge_used = True - logger.debug('(ROUTER) Conference Bridge NO ACTION: System: %s, Bridge: %s, TS: %s, TGID: %s', _system['SYSTEM'], _bridge, _system['TS'], int_id(_system['TGID'])) + _debug_msgs.append('(ROUTER) Conference Bridge NO ACTION: System: %s, Bridge: %s, TS: %s, TGID: %s' % (_system['SYSTEM'], _bridge, _system['TS'], int_id(_system['TGID']))) if _bridge_used == False: _remove_bridges.append(_bridge) + + if _debug_msgs: + logger.debug('\n'.join(_debug_msgs)) for _bridgerem in _remove_bridges: del BRIDGES[_bridgerem]